《机器学习系统设计》是一本不错的机器学习实战入门的书籍。第一章介绍了用于机器学习的Python相关工具,接下来分别用实战型例子讲解聚类、分类、回归、模式识别、降维等机器学习的主要的几种方法。
机器学习就是教机器自己来完成任务,机器学习的目标就是通过若干示例让机器学会完成任务。
像其他工程一样,设计一个机器学习系统工作一般花在一些极其平凡的任务上:
(1)读取和清洗数据;
(2)探索和理解输入数据;
(3)分析如何最好地将数据呈现给学习算法;
(4)选择正确的学习算法和模型;
(5)正确地评估性能。
分类是一种监督性学习(需要样本进行训练),书中第二章从最简单的肉眼观察方法,讲到K邻近算法和分类树方法。
聚类是一种无监督学习,书中第三章一种比较典型的聚类方法——K均值(质心移动法)。
主题模型不同于聚类,而是把对象放入几个组(叫做主题)中。
分类、聚类和主题模型是主流的机器学习模型,是机器学习的基础知识,只有融会贯通这些基础知识才能在遇到更有挑战性地问题时能见招拆招。
设计机器学习系统免不了要对系统进行提升,我本基本有如下选择:
(1)增加更多数据:也许我们没有为学习算法提供足够数据,因此增加更多的训练数据即可。
(2)考虑模型复杂度:也许模型还不够复杂,或者已经太复杂了。例如在K邻近算法中 ,我们可以降低K值,使得较少的近邻被考虑进去,从而更好地预测不平滑数据。我们也可以提高K值,来得到相反的结果。
(3)修改特征空间:也许我们的特征集合并不好。例如,我们可以改变当前特征的范围,或者设计新的特征。又或者,如果一些特征和另外一些特征是别名关系,可以删除一些特征。
(4)改变模型:也许XX算法并不适合我们的问题,无论我们让模型变得有多复杂,无论特征空间会边得多负杂,它永远也得不到良好的预测结果。
逻辑回归是一种分类方法,当他处理基于文本的分类任务时,功能非常强大。
朴素贝叶斯是一种分类方法,也许是最优美的有实际效用的机器学习算法之一了,尽管名字叫做朴素,但是当你看到其分类的实际效果时,你会发现并不是那么朴素。他对无关特征的处理能力十分强悍,无关特征会被自然地过滤掉。用它进行机器学习和预测的时候,速度都非常快,而且并不需要很大的存储空间。(之所以称作朴素,是因为有一个能让贝叶斯方法最优工作的假设:所有特征需要相互独立。而实际应用中,这种情况很少出现。尽管如此,在实践中,即使在独立假设并不成立的情况下,他仍然能达到很高的正确率。
关回归预测模型中首先介绍a kind old method——普通最小二乘法回归(Ordinary Least Squares,OLS)。有时候为了避免过拟合用到了岭回归、Lasson法和弹性网(他们是最前沿的回归方法)。
Apriori算法在形式上会将一些集合当作输入,并返回这些集合中出现频率非常高的子集。Apriori的目标就是寻找一个高支持度的项集。其解决的经典问题是购物篮问题(挖掘购买A的人可能还会购买什么)。当然,购物篮问题也可以尝试用基于概率的关联规则挖掘方法。
涉及到语音、音乐等样本的机器学习系统则略显不同,因为他们的描述值并不是那么明显(比如花朵分类问题中,对特征的描述花瓣数量、花朵颜色等都比较明确),而对于一段长3分钟的MP3歌曲,显然我们不能用MP3数据的每一bit来表示。书中介绍了一种基于音乐频率的分类方法(FFT)——一种可以从音频中提取频率强度的方法(快速傅里叶变换)。但是FFT仅仅是一个方向,却正确率不高!其实对于音乐分类已经有人遇到同样的问题,并成功解决了,甚至有一个每年举办的会议专门用来解决音乐分类问题。这个组织是由音乐信息检索国际协会(ISMIR)组织的。很明显自动音乐体裁分类是音乐信息检索的一个子领域。在AMGC中一个应用比较多的音乐体裁分类方法就是梅尔倒频谱系数(MFCC)技术。梅尔倒频谱(MFC)会对声音的功率谱进行编码,它是通过对信号谱的对数进行傅里叶变换得到的。
而涉及到图像、视频的机器学习系统则又和之前不同,这方面甚至直接独立出来单独研究。