在机器学习和数据挖掘的应用中,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 分别进行下载即可。
![](https://i-blog.csdnimg.cn/blog_migrate/c9ba6e8dba26f1693a289833a1027398.png)