支持向量机(SVM)分类:
from sklearn.svm import SVC
# 构建并训练模型
模型 = SVC().fit(X_train, y_train)
# 预测
预测 = 模型.predict(X_test)
# 评估
from sklearn.metrics import classification_report
print(classification_report(y_test,预测))
K Means聚类:
from sklearn.cluster import KMeans
# 进行KMeans聚类
kmeans = KMeans(n_clusters=5, random_state=0).fit(X)
# 预测簇结果
预测簇 = kmeans.predict(X)
# 可视化结果
import matplotlib.pyplot as plt
plt.scatter(X[:,0], X[:,1], c=预测簇, s=50, cmap='viridis')
PCA降维:
from sklearn.decomposition import PCA
# PCA降维
pca = PCA(n_components=2).fit_transform(X)
# 可视化结果
plt.scatter(pca[:,0], pca[:,1], c=y)
逻辑回归分类:
from sklearn.linear_model import LogisticRegression
# 拆分数据
X_train, X_test, y_train, y_test = train_test_split(X, y)
# 训练模型
模型 = LogisticRegression().fit(X_train, y_train)
# 预测
预测 = 模型.predict(X_test)
# 评估
from sklearn.metrics import classification_report
print(classification_report(y_test, 预测))
随机森林分类/回归:
from sklearn.ensemble import RandomForestClassifier
# 构建模型
模型 = RandomForestClassifier(n_estimators=100).fit(X_train, y_train)
# 预测
预测 = 模型.predict(X_test)
# 评估
from sklearn.metrics import r2_score
print("R2 Score: ", r2_score(y_test,预测))
kNN回归:
from sklearn.neighbors import KNeighborsRegressor
# 构建模型
模型 = KNeighborsRegressor(n_neighbors=3).fit(X_train, y_train)
# 预测
预测 = 模型.predict(X_test)
# 评估
from sklearn.metrics import mean_squared_error
print("MSE:", mean_squared_error(y_test,预测))
使用神经网络进行回归预测:
from sklearn.neural_network import MLPRegressor
NN模型 = MLPRegressor().fit(X_train, y_train)
预测值 = NN模型.predict(X_test)
from sklearn.metrics import mean_squared_error
print("NN回归MSE误差:", mean_squared_error(y_test, 预测值))
使用梯度提升树进行分类:
from sklearn.ensemble import GradientBoostingClassifier
gbc模型 = GradientBoostingClassifier().fit(X_train, y_train)
预测类 = gbc模型.predict(X_test)
from sklearn.metrics import classification_report
print(classification_report(y_test,预测类))
使用t-SNE进行降维:
from sklearn.manifold import TSNE
X_tsne = TSNE(n_components=2).fit_transform(X)
plt.scatter(X_tsne[:,0], X_tsne[:,1], c=y)
Sklearn支持pandas和numpy作为训练数据集的类型。
采用pandas和numpy格式的数据集有以下优点:
-
Pandas DataFrame和Series可以很方便地表示和操作表格式数据。
-
Numpy数组是机器学习算法内部直接处理的数据类型,效率高。
具体来说:
-
对于二元/多元分类问题,可以用pandas中的DataFrame,其中一列作为标签(y),其他作为特征(X)。
-
对于回归问题,标签作为DataFrame的一列或Numpy数组,特征也同样表示。
-
对于无监督学习如聚类,仅需要数据集的特征部分,可以直接用Numpy数组。
-
通过调用模型的fit方法,Sklearn会自动识别X和y为numpy格式,训练模型。
import pandas as pd
from sklearn.linear_model import LogisticRegression
df = pd.DataFrame(data)
X = df[[‘feature1’, ‘feature2’]]
y = df['target']
logmodel = LogisticRegression().fit(X, y)
Examples — scikit-learn 1.3.1 documentation
Python机器学习笔记:sklearn库的学习 - 战争热诚 - 博客园 (cnblogs.com)
俩个Sklearn的学习网站,介绍的较为全面!