解决机器学习问题,最困难的部分通常是找到合适的算法模型,不同的算法模型适合于不同类数据和不同的问题。
scikit-learn提供的主要功能就是主要关注数据建模,而非加载、操作、数据统计, 这些任务有NumPy、Pandas就足够了。
下图为用户的数据问题,提供尝试选择算法模型的指南。
image.pngscikit-learn 主要提供了以下功能:
- 测试数据集,sklearn.datasets模块提供了乳腺癌、kddcup 99、iris、加州房价等诸多开源的数据集
- 降维(Dimensionality Reduction): 为了特征筛选、统计可视化来减少属性的数量。
- 特征提取(Feature extraction): 定义文件或者图片中的属性。
- 特征筛选(Feature selection): 为了建立监督学习模型而识别出有真实关系的属性。
- 按算法功能分类,分为监督学习:分类(classification)和回归(regression),以及非监督学习:聚类(clustering)。sklearn提供了很全面的算法实现,详细算法清单http://scikit-learn.org/stabl...。
- 聚类(Clustring): 使用KMeans之类的算法,给未标记的数据分类。
- 交叉验证(Cross Validation): 评估监督学习模型的性能。
- 参数调优(Parameter Tuning): 调整监督学习模型的参数以获得最大效果。
- 流型计算(Manifold Learning): 统计和描绘多维度的数据
Scikit-learn进行计算的主要步骤为:
- 数据获取、预处理。
- 可选的降维过程。如果原始数据的维度比较大, 需要先找出真正跟预测目标相关的属性。
- 学习以及预测的过程。
- 反复学习的过程。通过增加样本、调优参数、更换算法等各种方式,提高预测的准确率。
下一篇通过上面介绍的理论处理一个实际问题。
参考
Python机器学习工具:Scikit-Learn介绍与实践
基于 Python 和 Scikit-Learn 的机器学习介绍
网友评论