按照输出空间不同
1.二元分类Binary classification
目标变量取值只有两种可能性,简单地说就是做判断题,在现实生活中应用非常广泛。银行根据客户资料,判断信用好坏以决定是否发放信用卡/贷款(german credit data);根据邮件内容,判断是否垃圾邮件(spam email);根据病人资料,判断病人是否患癌症(breast cancer)等等。二元分类是机器学习中最基本最核心的问题,许多其他演算法的基础都来自他。
2.多元分类Multiclass classification
简单地说就是做选择题,目标变量是 level > 1的factor。比如判断某种植物所属科目(iris),评估汽车价值高低(car evaluation)等等。
3.回归问题Regression
目标变量是Numeric类型的,取值无限多个点。典型的回归分析问题包括用历史数据做出历年GDP的回归线,用相关变量估计房屋价格(Housing Data Set)等等。
4.结构化预测Structured prediction
目标变量和以上三者都不一样,是一种结构。典型的结构化学习是对一个语言中的分析树(parse tree)。
按照输出标签不同
1. 监督式学习Supervised
所有输入,都有输出标签。就像有个老师告诉你全部问题的答案,哪里该怎么怎么样。
2. 非监督式学习Unsupervised
完全不给标签,自己去学。没有对应于每个观测的标签。典型的问题是聚类问题(Clustering Analysis)比如对客户分群,我们不知道总共有几个客户类型,更不知道每个客户是属于哪个类型。但是可以根据客户资料将一些属性相似的客户分成一群。
3. 半监督式学习Semi-supervised
是监督式学习和非监督式学习的综合,不是所有案例都有标注类型,只有部分输入有输出标签。相当于,老师给你举了几个例子,你通过这些例子自己学习其他输入顺藤摸瓜得出答案。
适用场景:如果取得所有output tag很难或很贵,那么可以采取半监督式学习的方式。
4. 强化学习Reinforcement Learning
输出标签不是直接的对/不对,而是一种奖惩机制(靠不是期待输出的其他输出,以及这个输出好与坏来进行机器学习。)举例来说,训练宠物的时候无法直接告诉它,做出某个手势时想要它干嘛,或者它的反应是对是错。但是可以通过做对了奖励吃的,做错了就凶它的奖惩方法训练。虽然它还是无法和人直接沟通,不明白手势含义,但是渐渐使宠物能对手势做出正确反应。
按照学习方法不同
符号说明
- f(x)是真实函数
- g(x)是学习函数
1.批次学习Batch Learning
把所有资料都直接用于机器学习,比如用所有的点按照OLS拟合出回归线。这是最常见的机器学习方式。 这个过程是一次过的,给一批资料给机器,机器直接学出一个g(x),我们只能祈祷这个g(x)和f(x)是足够接近的。
2.线上学习Online Learning
online并不是指需要上网,而是指对资料的运用增加一步“更新”的工作。比如用一些图像管理的软件可以帮你识别人脸。软件会一个个问你该面孔对应名字。机器学习到的东西g(x)是在一轮轮问题中更新的,每次学习一个观测。目标是g(x)t比上一轮的g(x)t-1的表现还要好,与之前提到的“增强式学习”异曲同工。
3.主动学习Active Learning
比起线上学习更具主动性。主动学习能交互地询问使用者问题,并将获得的结果当做新的数据点。拿之前图像管理的例子来说,主动学习可能会通过算法做出某种图像询问你,该人对应的名字。通常,用在取得label成本很大的场合。