在这篇文章中,总结了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)
# train_data:待划分的样本数据
# train_target:待划分的对应样本数据的样本标签
# test_size:1)浮点数,在0 ~ 1之间,表示样本占比(test_size = 0.3,则样本数据中有30%的数据作为测试数据,记入X_test,其余70%数据记入X_train,同时适用于样本标签);2)整数,表示样本数据中有多少数据记入X_test中,其余数据记入X_train
# random_state:随机数种子,种子不同,每次采的样本不一样;种子相同,采的样本不变(random_state不取,采样数据不同,但random_state等于某个值,采样数据相同,取0的时候也相同,这可以自己编程尝试下,不过想改变数值也可以设置random_state = int(time.time()))
# shuffle:洗牌模式,1)shuffle = False,不打乱样本数据顺序;2)shuffle = True,打乱样本数据顺序
代码举例
x_train, x_test, y_train, y_test = ain_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极端随机数回归
import ExtraTreeRegressor
model_extra_tree_regressor = ExtraTreeRegressor()
PCA降维(保留n个特征)
from sklearn.decomposition import PCA
model_PCA = decomposition.PCA(n_components=n)
y_score = AdaBoost1.predict_proba(X_test)[:,1]
fpr,tpr,threshold = _curve(y_test, y_score)
roc_auc = metrics.auc(fpr,tpr)
ROC曲线可以帮助分析当前选择的模型是否合适
如果生成的图像面积覆盖率达到了80%,一般认为该模型合理,否则建议换更精准的模型再计算
经过训练后,电脑根据测试集得到的标签(结果是它自己认为的)
pred1 = AdaBoost1.predict(X_test)
同上,只不过这个生成的是概率
AdaBoost1.predict_proba(x_test)
将二者同时使用的效果更显著更直观
当模型中含有若干个重要参数,并且不知道如何设定才能让模型最优的时候,需要用到如下这个函数,方便得出参数的最优设定!
del_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)
# 返回参数的最佳组合和对应AUC值
base_model.best_params_, base_model.best_score_
# GridSearchCV 用于系统地遍历模型的多种参数组合,通过交叉验证确定最佳参数。
# estimator 分类器
# cv 默认为3 指定fold个数,即默认三折交叉验证
# n_jobs cpu个数 值为-1时,使用全部CPU;值为1时,使用1个CPU;值为2时,使用2个CPU
# verbose 默认为0 值为0时,不输出训练过程;值为1时,偶尔输出训练过程;值>1时,对每个子模型都输出训练过程
# param_grid 值为列表/字典
# scoring 准确度评价标准
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的常用函数:快来看这里有个传送门!
本文发布于:2024-02-03 02:33:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689883348070.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |