在python的世界中,科学计算和机器学习的标配就是:sklearn+numpy+pandas+scipy+matplotlib,其中numpy和pandas的作用大同小异,scipy主要是仿真计算中包含了很多有用的数学函数,matplotlib模块主要是做数据的可视化工作,比如在机器学习中经典的分类和聚类问题中,通过数据的可视化手段可以实现直观的观察到样本数据的分类或者聚类情况,从而调整阈值或者其他参数信息,为模型的训练和优化提供了很好的调整依据。sklearn模块的话相信很多人都使用过,这个模块里面几乎囊括了所有的常见的机器学习方法,特征工程方法,可以说是一个入手机器学习实践的不二选择,真的很强大,虽然相对于深度学习的一些框架诸如:TensorFlow、Theano、Kreas等尚存在一定的差距,但是就机器学习的算法本身而言已经足够出色了。
在sklearn官网可以找到所有你需要的介绍
sklearn内置了几乎所有常用的机器学习算法,但是这并不意味着这个很容易掌握和使用,每一个模型或者函数都有很多参数需要设置,想要熟练掌握的话,必然离不开官方文档的帮助,遇上问题要先看文档
看不懂或者不喜欢英文没关系这里是中文手册
sklearn的安装可以参考这里
写这篇博文的目的不在于仔细去讲解sklearn的使用方法也不是说特征工程的相关方法,而是我在学习的时候发现很多最开始以为是机器学习的问题的时候可能做了一段时间后却发现是数据挖掘的问题,让人突然觉着本末倒置的感觉,都说工欲善其事必先利其器,这是真的,现在的很多问题都不是单纯的特征工程+机器学习的解决思路,更多的是一个数据挖掘的问题,但是我自己也是一个门外汉,并不是很懂这些,在我看来:
一个数据挖掘的整体流程,主要包括
如何定义好自己的问题
数据的分析、处理
机器学习模型的训练和测试
模型的自学习、优化、更新
而在实现时,通俗的讲为:
对数据进行各种预处理(抽样,去噪等)
特征抽取与量化
训练模型
利用模型对预测数据进行预测
根据预测结果计算精度以及其他的衡量指标包括:准确率、召回率、F值、ROC曲线等
之前我的一篇博文python实现完整的特征工程,实践论文中的分类模型和方法用于恶意页面的分类与识别已经讲到了我做过的一些事情,不过主要是集中在了特征工程这里,但是没有给出来sklearn之后具体的模型使用方法,这里我在网上找到了一个可以参考的使用方法,很简单,但是解决了需要解决的问题。
相信这是一个很好的工具,不过真正使用好离不开文档,强烈建议无论遇上什么问题都要多看勤看文档,相关的参考链接都在上面给出来了。