大纲

这篇文章是介绍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这三个包的,需要先安装。

【机器学习算法应用和学习_1_基础篇】1.3 sklearn

二、框架


从进行机器学习步骤出发,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里有一个简单的示意图描述选择模型的简单流程:

【机器学习算法应用和学习_1_基础篇】1.3 sklearn

 

4)评估模型

https://scikit-learn.org/stable/modules/classes.html#sklearn-metrics-metrics

5)保存和恢复模型以便使用模型预测

pickle库或sklearn自带的joblib模块。

 

三、API


   首先按官网内容排版备注一下都有哪些模块,哪些模块包括哪些常用的方法。

【机器学习算法应用和学习_1_基础篇】1.3 sklearn

  其次从操作(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)  -- 拟合训练
View Code

相关文章: