看了无数的理论与知识,总归要落到实际动手实现和解决问题上。而没有工具所有的材料和框架、逻辑、思路都给你,也寸步难行。因此本港台直播们还是得需要合适的编程语言、工具和环境帮助自己在数据集上应用机器学习算法,或者实现自己的想法。对初学者而言,Python和R语言是很好的入门语言,很容易上手,同时又活跃的社区支持,丰富的工具包帮助本港台直播们完成想法。相对而言,似乎计算机相关的同学用Python多一些,而数学统计出身的同学更喜欢R一些。本港台直播们对编程语言、工具和环境稍加介绍: 3.3.1 python python有着全品类的数据科学工具,从数据获取、数据清洗到整合各种算法都做得非常全面。 网页爬虫: scrapy 数据挖掘: pandas:模拟R,进行数据浏览与预处理。 numpy:数组运算。 scipy:高效的科学计算。 matplotlib:非常方便的数据可视化工具。 机器学习: scikit-learn:远近闻名的机器学习package。未必是最高效的,但是接口真心封装得好,几乎所有的机器学习算法输入输出部分格式都一致。而它的支持文档甚至可以直接当做教程来学习,非常用心。对于不是非常高纬度、高量级的数据,scikit-learn胜任得非常好(有兴趣可以看看sklearn的源码,也很有意思)。 libsvm:高效率的svm模型实现(了解一下很有好处,libsvm的系数数据输入格式,在各处都非常常见) keras/TensorFlow:对深度学习感兴趣的同学,也能很方便地搭建自己的神经网络了。 自然语言处理: nltk:自然语言处理的相关功能做得非常全面,有典型语料库,而且上手也非常容易。 交互式环境: ipython notebook:能直接打通数据到结果的通道,方便至极。强力推荐。 3.3.2 R R最大的优势是开源社区,聚集了非常多功能强大可直接使用的包,绝大多数的机器学习算法在R中都有完善的包可直接使用,同时文档也非常齐全。常见的package包括:RGtk2, pmml, colorspace, ada, amap, arules, biclust, cba, descr, doBy, e1071, ellipse等等。另外,值得一提的是R的可视化效果做得非常不错,而这对于机器学习是非常有帮助的。 3.3.3 其开奖直播语言 相应资深程序员GG的要求,再补充一下java和C++相关机器学习package。 Java系列 WEKA Machine Learning Workbench相当于java中的scikit-learn 其开奖直播的工具如Massive Online Analysis(MOA)、MEKA 、 Mallet等也非常有名。 更多详细的应用请参考这篇文章《25个Java机器学习工具&库》 C++系列 mlpack,高效同时可扩充性非常好的机器学习库。 Shark:文档齐全的老牌C++机器学习库。 3.3.4 大数据相关 Hadoop:基本上是工业界的标配了。一般用来做特征清洗、特征处理的相关工作。 spark:提供了MLlib这样的大数据机器学习平台,实现了很多常用算法。但可靠性、稳定性上有待提高。 3.3.5 操作系统 mac和linux会方便一些,而windows在开发中略显力不从心。所谓方便,主要是指的mac和linux在下载安装软件、配置环境更快捷。 对于只习惯windows的同学,推荐anaconda,一步到位安装完python的全品类数据科学工具包。 3.4 基本工作流程 以上本港台直播们基本具备了机器学习的必要条件,剩下的就是怎么运用它们去做一个完整的机器学习项目。其工作流程如下: 3.4.1 抽象成数学问题 明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。 这里的抽象成数学问题,指的本港台直播们明确本港台直播们可以获得什么样的数据,目标是一个分类还是回归或者是聚类的问题,如果都不是的话,如果划归为其中的某类问题。 3.4.2 获取数据 数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。 数据要有代表性,否则必然会过拟合。 而且对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。 (责任编辑:本港台直播) |