大纲
这篇文章是介绍sklearn库的使用,主要围绕sklearn官网内容进行阐述。包括三个部分的内容:
1.背景——主要介绍sklearn库是干什么的,官网内容板块是怎样的,我们主要从哪块学起;
2.框架——主要从模型使用流程角度出发,阐述sklearn主要实现的内容;
3.API——以从应用出发来说,API是sklearn第一学习目标,这块以操作(包括加载数据-预处理-模型评估等)和算法两个部分为主要划分,以每个操作或算法为小节,介绍每块API的使用。在使用学习路径上,主要以API-examples-user guide这样的路径查看相关资料,以便搞清楚API的使用。
其他就是一些参考资料也附在文章底部,也比较有启发性,可以参考下。
一、背景
sklearn封装了许多机器学习算法,在应用为主理论为辅的学习路径中,学习sklearn是一个不错的选择。
sklearn官网有足够丰富的内容,下面对官网相关板块进行了简单备注。我们主要看API部分,即需要的算法用什么类或函数以及参数是什么。其次,tutorials/user guide/glossary/examples都可以参考看一下。tutorials是机器学习过程的一个简要教程;user guide主要是一些算法的详细解释,不太理解API的某些内容可以进一步看这块;glossary是一些相关术语的解释,可以直接搜不理解的术语;examples则是一些具体的案例,一些主要算法不知道怎么入手可以看案例。如果需要安装sklearn,可以看看installation,Anaconda是预装了科学计算相关包的,如果不用Anaconda,注意sklearn是依赖numpy/scipy/matplotlib这三个包的,需要先安装。
二、框架
从进行机器学习步骤出发,sklearn划分为如下几个模块:
加载数据集——数据预处理——选择和训练模型——评估模型——保存和恢复模型以便使用模型预测
1)加载数据集
数据集要么是在具体项目中需要使用的数据源,要么是公共的数据源。sklearn提供了加载一些公开的数据源库。具体可参考如下使用案例和API介绍。
https://scikit-learn.org/stable/auto_examples/index.html#dataset-examples
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets
2)数据预处理
数据预处理包括降维、数据归一化、特征提取和特征转换(one-hot)等。具体可参考如下使用案例和API介绍。
https://scikit-learn.org/stable/auto_examples/index.html#preprocessing
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing
3)选择和训练模型
这部分直接找相关算法的案例和API即可。
在tutorials的Choosing the right estimator里有一个简单的示意图描述选择模型的简单流程:
4)评估模型
https://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics
5)保存和恢复模型以便使用模型预测
pickle库或sklearn自带的joblib模块。
三、API
首先按官网内容排版备注一下都有哪些模块,哪些模块包括哪些常用的方法。
其次从操作(O)和模型(M)角度分别汇总简单API,便于由此展开了解。进一步直接可用的API可查看【代码API篇】。
1)M_分类_决策树
from sklearn.tree import DecisionTreeClassifier clf = DecisionTreeClassifier(criterion='gini', --设置衡量的系数,有entropy和gini,默认gini splitter='best', --选择分类的策略,best和random,默认best max_depth=5, --设置树的最大深度 min_samples_split=10,-- 区分一个内部节点需要的最少的样本数 min_samples_leaf=5 -- 一个叶节点所需要的最小样本数 max_features=5 --最大特征数 max_leaf_nodes=3--最大样本节点个数 min_impurity_split --指定信息增益的阀值 ) clf= clf.fit(x_train,y_train) -- 拟合训练