Scikit-learn(Sklearn)常用函数详解大全
在这篇文章中,总结了sklearn模块常用的函数,建议收藏!
因为会持续更新!
文章目录
- Scikit-learn(Sklearn)常用函数详解大全
- 自带的数据集
-
- 分割测试集数据和训练集数据
- 方法选择
-
- 交叉验证最优参数(神好用!)
- 模型准确率和评估报告模块
- 使用模型的一般步骤及注意事项
- 总结
自带的数据集
from sklearn.datasets import load_boston
清空sklearn环境下所有数据
datasets.clear_data_home()
经典的数据集
波士顿房价数据(回归)
load_boston
威斯康辛州乳腺癌数据(分类)
load_breast_cancer
糖尿病数据(回归)
load_diabetes
手写数字数据(分类)
load_digits
鸢尾花数据(分类)
load_iris
体能训练数据集(多变量回归)
load_linnerud
可在线下载的大规模数据集 脸部照片数据集
fetch_olivetti_faces
红酒数据举个栗子
wine = load_wine()
wine.data
wine.target
import pandas as pd
pd.concat([pd.DataFrame(wine.data), pd.DataFrame(wine.target)], axis = 1)
分割测试集数据和训练集数据
from sklearn import model_selection
代码原型及详解
X_train, X_test, y_train, y_test = train_test_split(train_data, train_target, test_size, random_state,shuffle)
代码举例
x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y, test_size = 0.3, random_state = 1234)
方法选择
如果做分类问题,只需将Regression替换成Classifier即可
线性回归
from sklearn.linear_model import LinearRegression
model_linear_regression = LinearRegression()
SVM回归
from sklearn import svm
model_svm = svm.SVR()
决策树回归
from sklearn import tree
model_decision_tree_regression = tree.DecisionTreeRegressor()
KNN回归
from sklearn import neighbors
model_k_neighbor = neighbors.KNeighborsRegressor()
随机森林回归(20棵树)
from sklearn import ensemble
model_random_forest_regressor = ensemble.RandomForestRegressor(n_estimators=20)
Adaboost回归(50棵数)
from sklearn import ensemble
model_adaboost_regressor = ensemble.AdaBoostRegressor(n_estimators=50)
GBRT回归
from sklearn import ensemble
model_gradient_boosting_regressor = ensemble.GradientBoostingRegressor(n_estimators=100)
Bagging回归
from sklearn import ensemble
model_bagging_regressor = ensemble.BaggingRegressor()
ExtraTree极端随机数回归
from sklearn.tree import ExtraTreeRegressor
model_extra_tree_regressor = ExtraTreeRegressor()
PCA降维(保留n个特征)
from sklearn.decomposition import PCA
model_PCA = decomposition.PCA(n_components=n)
生成ROC曲线
y_score = AdaBoost1.predict_proba(X_test)[:,1]
fpr,tpr,threshold = metrics.roc_curve(y_test, y_score)
roc_auc = metrics.auc(fpr,tpr)
ROC曲线可以帮助分析当前选择的模型是否合适
如果生成的图像面积覆盖率达到了80%,一般认为该模型合理,否则建议换更精准的模型再计算
预测函数
经过训练后,电脑根据测试集得到的标签(结果是它自己认为的)
pred1 = AdaBoost1.predict(X_test)
同上,只不过这个生成的是概率
AdaBoost1.predict_proba(x_test)
将二者同时使用的效果更显著更直观
交叉验证最优参数(神好用!)
当模型中含有若干个重要参数,并且不知道如何设定才能让模型最优的时候,需要用到如下这个函数,方便得出参数的最优设定!
from sklearn.model_selection import GridSearchCV
举个栗子和对应的解释
max_depth = [3,4,5,6]
params1 = {'base_estimator__max_depth':max_depth}
base_model = GridSearchCV(estimator = ensemble.AdaBoostClassifier(base_estimator = DecisionTreeClassifier()),
param_grid= params1, scoring = 'roc_auc', cv = 5, n_jobs = 4, verbose = 1)
base_model.fit(X_train[predictors],y_train)
base_model.best_params_, base_model.best_score_
模型准确率和评估报告模块
from sklearn import metrics
首先使用predict函数对x_test生成预测值
pred1 = AdaBoost1.predict(X_test)
再通过y_test和预测值生成准确率和评估报告
print('模型的准确率:',metrics.accuracy_score(y_test, pred1))
print('模型的评估报告:',metrics.classification_report(y_test, pred1))
还有一种更简单的生成准确率和方法
clf = tree.DecisionTreeClassifier()
clf = clf.fit(x_train, y_train)
score = clf.score(x_test, y_test)
使用模型的一般步骤及注意事项
- 首先要生成模型,或者可以说是模型的实例化
clf = tree.DecisionTreeClassifier()
- 实例化后才能进行训练,也有的人认为这一步是数据和模型的适配
clf = clf.fit(x_train, y_train)
- 若是归一化处理 有两种方式
transform(x_train)
fit_transform(x_train)
其中若是transform则需要先fit
若是fit_transform则不用实现fit,即将这两步合为一步
- 然后再做其他处理,生成准确率或者评估报告之类的
总结
sklearn是python机器学习必不可少的模块,省去了大量的数学公式,让代码变得十分简洁。需搭配上Pandas,Numpy等一些数据处理模块使用。笔者同样总结了Pandas,Numpy的常用函数:快来看这里有个传送门!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)