一、
1-1 welcome
1-2 什么是机器学习——Machine Learning
机器学习尚无明确定义,现有的定义有:
(1)Field of study that gives computers the ability to learn about being explicity (明确地) programmed. ——Arthur Samuel 机器学习做什么
机器学习是一个学习领域,并在没有明确训练的情况下,交给计算机学习的能力。
注:该定义之所以成名,是因为Samuel编写了一个跳棋程序。该程序使计算机自己与自己下棋,通过成百上千次的训练、观察,逐渐学会哪些是好的布局,最终计算机成为一个跳棋高手,尽管其创作者Samuel并不擅长跳棋游戏。
(2)A computer program is said to learn from experience E with respect to some task T and some performance measure P , if its performance on T , as measured by P , improved with experience E. —— Tom Mitchell 良好的学习问题是什么
计算机程序从经验E中学习任务T,并用度量P来衡量性能。条件是它(由P衡量的)关于T的性能随着经验E而提高。
对于跳棋游戏,经验E就是计算机与自己玩10次,1000次的跳棋;任务T就是玩跳棋的任务;性能度量P就是与新对手玩跳棋时赢的概率。
后面将会讲不同类型的学习算法,主要有两类:监督学习(Supervised learning)和非监督学习(Unsupervised learning)。
监督学习:我们教计算机如何做事情。
非监督学习:计算机自己学习。
其他的学习算法,例如增强学习(Reinforcement learning)和推荐系统(recommender systems)。
1-3 监督学习——Supervised Learning
本节讲述机器学习的最普通类型是什么,哪些是监督学习。
例1:预测房屋价格
例子,假设想要预测房屋价格,绘制了下面这样的数据集。水平轴上,不同房屋的尺寸是平方英尺,在竖直轴上,是不同房子的价格,单位时(千万$)。给定数据,假设一个人有一栋房子,750平方英尺,他要卖掉这栋房子,想知道能卖多少钱。
那么学习算法能做的事是什么呢?可能是根据数据画一条直线或者说用一条直线拟合数据。看上去,可能会卖150K美元。
但是,这不是唯一的学习算法,可能有更好的。例如,不是用一条直线拟合数据,而是用一个二次函数或二阶多项式来拟合数据,这样效果可能会更好。在这种情况下,该房子可能会卖到200K美元。
后面要讨论的就是如何选择,决定用直线还是二次函数进行拟合。
这是监督学习的很好的例子,监督学习是指我们给算法一个数据集,并且给定正确答案。也就是说,我们给定一个房屋数据集,在这个数据集中的每个例子,我们都给出正确的价格,也即这个房子卖出的实际价格。算法的目的就是给出更多的正确答案,例如对待售房子,假如想要给待售的房子估价,这也称为回归问题(Regression : Predict continuous value output——price)。之所以称为回归问题,是因为其预测连续的输出值,即价格。
例2:估计肿瘤性质
另一个例子,假设想要看医疗记录,并且想设法预测乳腺癌是恶性的还是良性的。假设某人发现了一个乳腺瘤,在乳腺上有个z肿块,恶性瘤是危险的、有害的;良性瘤是无害的。
假设在数据集中,水平轴是瘤的尺寸,竖直轴是1或0,也可以是Y或N。在已知肿瘤样例中,恶性的标为1,良性的标为0。那么,如下,蓝色的样例便是良性的,红色的是恶性的。
假设一个人得了乳腺癌(即图中紫红色箭头指示的样例),机器学习的任务就是估计该肿瘤的性质,是恶性的还是良性的。
引入一个更专业的术语,这就是一个分类问题(calssification problem)。
Classification refers to the fact that here we're trying to predict a discrete value output : zero or one , malignant or benign .
分类是指预测一个连续的输出值,0或1,恶性或良性。
在分类问题中,可以输出多于两个值。在实际例子中,可能有三中类型的乳腺癌。因此,要预测离散值0,1,2,3,其中0是良性的。1、2、3分别代表癌症1,癌症2,癌症3。可以用另一种方法来表示这些数据,用不同的符号集来绘制这组数据。假设瘤的尺寸是用来预测恶性或良性的特征。用不同的符号表示良性或恶性,或说反例和正例。我们可以用圈表示良性,继续用红叉表示恶性,把数据集映射到这条实线上。
1-4 非监督学习 —— Unsupervised Learning
在上节的监督学习当中,所有的样本都被标为正样本或负样本,即良性或恶性。因此监督学习的样本,已经知道了明确的“正确答案”,即是良性还是恶性。
而在无监督学习中,给定的样本没有“正确答案”,即标签,所有的数据都是一样的。无监督学习的任务是从给定的数据集中,找出可能具有的结构。
对于上图中的数据,无监督学习算法可能将其分为两类,这就是聚类算法(Clustering Algorithm)。
现举一个聚类算法的例子,Google搜索中,将所有的新闻收集到一起,然后将其分类。
在基因组学中的应用,基因芯片,给定一组不同的个体,检查每个个体是够拥有某个特定的基因。运行一个聚类算法,将不同的个体归入不同的类。
形象来说,就是我们有一堆数据,不知道这些数据有什么类型,希望算法能自动找出可能的类型,并自动将其分类。即将相似的聚合在一类。
再举一些监督学习和无监督学习的例子:
无监督:用于管理计算机集群,在一个计算机管理中心,找出哪些计算机在进行着协同工作,就可以让数据中心更高效的工作。
无监督:用于社交网络的分析,若知道某人的各种账号的好友,例如QQ、微信、FaceBook等,就能知道哪些好友是一个好友组,哪些仅仅是互相认识的好友。
无监督:很多公司有大型的客户信息数据库,给出一个客户数据集,自动找出不同的市场分割,并自动将客户分到细分市场中,从而在不同的细分市场中进行更有效的销售。。在这里事先并不知道有哪些细分市场。