MG学习SKlearn之路
大家好!这是我第一次写博客,目前的我还是个小白,学习的资源大部分是来源与其他大佬写的博客和网站,目前我只是对其进行自我归纳和总结,有错误的地方请大佬们指出,日后会不定时更新,谢谢大家。
SKlearn自带的数据集预处理
from sklearn import datasets #导入数据集包。
学习过程中常用到的数据集有:
datas=datasets.load_iris()#鸢尾花数据集,特征变量为4
datas=datasets.load_boston()#波士顿房价数据集,datas.shape=[506,13]
datas=datasets.load_digits()#手写字体数据集
数据分割:
X=datas.data#测试数据
y=datas.target#标签数据
from sklearn.model_selection import train_test_split#将数据分为测试集和训练集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)#test_size-0.3,即70%为训练集、30%为测试集
数据的规范化
from sklearn import prepocessing:该包提供有几种不同方式将数据规范化的函数。
(1)X=prepocessing.scale(X)#将均值=0、方差=1;
(2)X=prepocessing.minmax_scale(X,feature_range=(low,high),axis=0,copy=True)#feature_range:缩放范围、axis=0:独立的标准化每个特征(按列);axis=1:标准化每个样本(按行)。数学公式:X=(X-X.min)/(X.max-X.min)*(high-low)+low
本章用到的SKlearn分类模式
#1、
from sklearn.neighbors import KNeighborsClassifier
KNeighborsClassifier.fit(X_test,y_train)#利用k邻近方式训练
#2、
from sklearn.svm import SVC#支持向量机
SVC.fit(X_test,y_train)
交叉验证
常用的交叉验证方法:5折交叉验证:
导入交叉验证包:
from sklearn.model_selection import cross_val_score#引入交叉验证
#选择邻近的5个点
knn=KNeighborsClassifier(n_neighbors=5)
scores=cross_val_score(knn,X,y,cv=5,scoring='accuracy')
scores_mean=scores.mean()#所有评分的均值
cross_val_score方法:对数据集进行多次分割,根据不同的训练集进行模型训练,再通过每次分的测试集进行模型评分;获得scores(numpy.ndarray)类型的评分。
参数:
cv:分割的次数
scoring:评分的方法。'accuracy’表示根据准确度评分
修正过拟合
常用模型调优的函数:
from sklearn.model_selection import validation_curve
from sklearn.model_selection import learning_curve
learning_curve():通过可视化模型判断是否过拟合
validation_curve():通过查看不同参数取值下模型的性能
保存模型
SKlearn有自带的保存模块.
模型保存:
from sklearn.externals import joblib
joblib.dump(model,path)#model:要保存的模型;path:保存路径
加载模型:
model=joblib.load(path)
参考资料
Python之Sklearn使用教程](https://www.jianshu.com/p/6ada34655862)