Sklearn中的机器学习模型的使用demo
Sklearn的案例demo
·
支持向量机(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的学习网站,介绍的较为全面!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)