机器学习笔记:概览
什么是机器学习
机器学习是一门能够让编程计算机从数据中学习的计算机科学和艺术。
工程化定义:
一个计算机程序在完成任务T之后,获得经验E,其表现效果为P,如果任务T 的性能表现,也就是用以衡量的P,随着E的增加而增加,可以称之为学习考虑。垃圾邮件过滤的例子为例。
为什么要使用机器学习
-
通过机器学习算法可以简化那些现有解决方案需要大量手动调整或者规则列表超长的问题代码,并且提升执行表现,比如:用传统编程技术编写垃圾邮件过滤器
-
解决传统技术手段根本无法解决的复杂问题,比如:语音识别问题
-
在环境波动中适应新的数据,比如:新写法的垃圾邮件
-
从复杂问题和海量数据中获得洞见,比如:通过研究训练效果优秀的学习算法的数据,了解人类没有发现的数据中的关联性或新趋势
机器学习系统的种类
监督式/无监督式/半监督式学习
标准:是否在人的监督下训练
监督式学习:
- 分类任务: 垃圾邮件过滤
- 回归:汽车价格预测、房价预测
重要的监督学习算法:
- K近邻算法(KNN)
- 线性回归(LR)
- 逻辑回归(LR)
- 支持向量机(SVM)
- 决策树和随机森林(DT RF)
- 一部分神经网络(NN)
无监督式学习:
(异常检测:信用卡欺诈,或者从数据中移除异常值)
聚类算法:(检测相似访客的分组)
-
K-平均算法(K-means)
-
分层聚类分析(HCA)
-
最大期望算法(EM)
可视化和降为(可视化:便于人理解数据怎么组织)(降维:用来做特征提取,减小数据所占空间,提高速度,有可能提高性能)
- 主成分分析(PCA)
- 核主成分分析(Kernel PCA)
- 局部线性嵌入(LLE)
- t-分布随机近嵌入(t-SNE)
关联规则学习(发现数据属性间的联系:比如超市的商品)(Apiori,Eclat)
半监督学习
大量未标记数据和少量已标记数据
大多数半监督算法采用无监督和监督算法的结合:深处信念网络(DBN)基于一种互相堆叠的无监督组件(受限玻尔兹曼机),然后用监督式学习进行微调。
**强化学习:**学习系统,又称为智能体,能够观察环境,做出选择,执行操作,并获得汇报,或者以负面回报的形式获得惩罚。
批量学习和在线学习
标准:看系统是否可以从传入的数据流进行增量学习
批量学习:
必须使用所有的可用数据进行训练,故一般采用离线学习的方式,即先训练系统,然后将其投入生产环境,这时候学习过程停止,只是将所学到的应用出来。但是每次更新数据的时候,重新训练的成本较大。
在线学习:
又称为增量学习,持续接受数据流,并同时对数据流的变化做出快速或自主的反应,可以解决超大数据集的训练问题,需要指出的是,整个训练通常也是离线完成的,“在线学习”具有歧义性,称为增量学习更合适。
基于实例学习与基于模型的学习
是将新的数据匹配和已知数据进行匹配,还是对训练数据进行模型检测,进而建立预测模型。
根据如何泛化来分类
基于实例的学习
将所有的训练数据全部记住,然后根据某种相似度量方式将其泛化到新的实例。
基于模型的学习
构建符合训练数据全部记住,然后根据模型来预测。
比如:
任务:根据人均GDP预测人民生活满意度的例子
模型选择:猜测数据符合线性函数
度量模型的性能表现:定义效用函数(模型有多好)或者成本函数(模型有多差)。