在机器学习和数据挖掘的应用中,scikit-learn 是一个功能强大的 Python 包,内置了很多机器学习模块,也提供一些实验数据集。

特点:

  • 简单有效的数据挖掘和数据分析工具
  • 可供所有人访问,并可在各种环境中重复使用
  • 基于 NumPy、SciPy 和 matplotlib 构建
  • 开源,可用于商业 -  BSD许可证

 

sklearn可用于分类(classification)、回归(regression)、聚类(clustering)、维度下降(dimensionality reduction)、模型选择(model selection)、预处理(preprocessing)等。

分类

确定对象属于哪个类别。

应用:垃圾邮件检测、图像识别等。

算法:SVM,最近邻,随机森林,...

 

回归

预测与对象关联的连续值属性。

应用:药物反应、股票价格等。

算法:SVR,岭回归,Lasso,...

 

聚类

将类似对象自动分组到集合中。

应用:客户细分、分组实验结果等。

算法:k-Means,谱聚类,均值漂移,...

 

维度下降

减少要考虑的随机变量的数量。

应用:可视化、提高效率等。

算法:PCA,特征选择,非负矩阵分解,...

 

模型选择

比较,验证,选择参数和模型。

目标:通过参数调整提高准确性。

模块:网格搜索,交叉验证,指标

 

预处理

特征提取和规范化。

应用:转换输入数据(如文本)以与机器学习算法一起使用。

模块:预处理,特征提取等。

 

传统机器学习:利用特征工程(feature engineering),人为对数据进行清洗处理。

传统机器学习库 sklearn 可让使用者自行对数据进行处理,比如特征选择、压缩维度、转换格式等。

 

sklearn 中的模块都是高度抽象化的,所有分类器基本可以在3 - 5行内完成,所有转换器(如scaler、transformer)也都有固定的格式。这种抽象化虽限制了使用者的自由度,但增加了模型的效率,可通过使用 pipeline 来降低批量化、标准化的难度。

sklearn 主要适合中小型机器学习项目(对硬件要求低,在CPU上就可以完成),尤其是那种数据量不大且需要使用者手动对数据进行处理后,并选择合适模型的项目。

 

关于sklearn的尝试可以基于这样的运行环境:Anaconda + Jupyter Notebook

先下载并安装好Anaconda软件,创建一个名为“ test ”的环境,再在这环境下安装 Jupyter Notebook,然后搜索 Python 和 scikit-learn 分别进行下载即可。

test环境下scikit-learn搜索及下载
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐