Day6_sklearn库

参考代码链接:https://pan.baidu.com/s/161frrWN8hEf9mQvVgxuaZg    提取码:cz4v

1,sklearn简介

简介:

​ Python中在机器学习任务中用得最多的的第三方库之sklearn。通俗的理解,sklearn中已经帮我们写好了很多模块,这些模块我们可以直接拿来做数据预处理,特征选择,建立模型和调节参数,sklearn的学习我们这次分模块来讲,本节我们学习sklearn的通常的一般的使用方式,也就是后边几个模块的同时怎么一起使用的,其中包括数据标准化,交叉验证,建立模型和保存模型。

特点:

简单高效的数据挖掘环境中和数据分析工具;让每个人都能在复杂重复使用;建立在numpy,scipy,matplotlib库之上。

安装命令:

pip install scikit-learn

2,常规使用模式

导包——加载数据——数据预处理——选择算法训练数据——测试数据——预测结果写入.csv中

3,数据标准化

存在的问题:

如果某个特征的方差比其他特征大几个数量级,那么他就在学习算法中占据主导位置,导致学习器对其他特征有所忽略。

概念:

标准化:先对数据进行去中心化,再除以特征的标志差,对数据进行缩放

实现方式:

数据标准化通过sklearn中preprocessing.scale()的方法实现

4,交叉验证

交叉验证的思想

就是重复的使用数据,再把得到的样本数据进行切分,组合为不同的训练集和验证集,用训练集来训练模型,用验证集评估模型预测的好坏

简单的交叉验证:

随机的将样本分为两部分(如0.7训练,0.3测试),然后用训练集来训练模型,在验证集上验证模型及参数;接着再把样本打乱,重新选择训练集和验证集,重新训练验证,最后选择损失函数评估最优的模型和参数。

K折交叉验证:

随机将样本数均分为K份,每次随机选择其中的K-1份作为训练集,剩下的1份作为验证集。当这一轮完成后,重新随机选择K-1份来训练数据,若干轮后选择损失函数评估最优的模型和参数。

留一交叉验证:

K折交叉验证的一种特例。此时k=n(样本的个数),每次选择n-1个样本进行训练,留一个样本进行验证模型的好坏(适合样本量非常少的时候)

扫描二维码关注公众号,回复: 6204978 查看本文章

boostrapping自助验证:

这种方法也是随机森林训练样本采用的方法。

在n个样本中随机放回抽样m个样本作为一棵树的一个训练集,这种采用会大约有1/3的样本不被采到,这些不被采到的样本就会被作为这棵树的验证集。

#k折交叉验证

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score //导入交叉验证

#加载数据
iris = load_iris()
X = iris.data
y = iris.target

#训练数据
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3)

knn = KNneighborsClassifier(n_neighbors=5)#选择邻近的5个数据
scores = cross_val_score(knn,X,y,cv=5,scoring='accuracy')
#5折交叉验证,评分方式为accuracy
print(scores)#每组的评分结果

print(scores.mean())#平均评分结果

5,过拟合问题

过拟合的问题是因为模型过于复杂,对于训练数据能很好的拟合,却不能正确的处理测试数据,从一个角度说,学到了一些样本数据一些非通用信息,使得模型的泛化效果不好。

learning_curve():判断(可视化)模型是否过拟合

validation_curve():查看在参数不同的取值下模型的性能

6,保存模型

目的:

为了节约时间,方便将模型迁移

模型的保存和加载:

1,从sklearn中导入自带模块

from sklearn.externals import joblib

2,保存模型

joblib.dump(model,'sklearn_save/clf.pkl')

3,重新加载模型

model2 = joblib.load('sklearn_save/clf.pkl')

7,小结

1,加载数据集

自己的数据或者网上的数据或者sklearn自带数据

2,数据预处理

降维,数据归一化,特征提取,特征转换

3,选择模型并训练

直接查看api找打需要的方法,直接调用即可,其中可能需要调参

4,模型评分

使用模型自带的score()方法,或使用sklearn指标函数,或自己的评价方法

5,模型的保存

猜你喜欢

转载自blog.csdn.net/qq_44621510/article/details/90115638