第一个机器学习实例:垃圾邮件分类器。
什么是机器学习:有任务,为了完成任务需要有经验和指标。经验从训练数据中获取。指标用于衡量任务完成的怎么样。
为什么要使用ML:传统的算法其实是规则,很难维护。
但是机器学习,可能会揭示出人类未曾意识到的关联型,帮助我们理解问题。
引出:数据挖掘:应用机器学习技术挖掘海量数据,发现并非立见端倪的模式。
1.机器学习的分类
(1)监督学习、非监督学习、半监督学习和强化学习。
(2)在线学习和批量学习
(3)基于实例的学习和基于模型的学习
<以上可以任意组合>
1.1第一组分类
1.1.1监督学习:需要有标签。
分类任务:垃圾分类
回归任务:给定很多汽车的体征,预测汽车的价格。
<分类回归没有明显的界限:即分类问题可以用回归方法计算。>
例如:逻辑回归用于分类,因为可以输出“属于某个类别的概率的值”
常用方法:
K_NN
线性回归
逻辑回归
支持向量机
决策树和随机森林
神经网络
1.1.2无监督学习——无标签
举例:
博客的访客记录。分析访客的特性或者归类;
异常检测:信用卡异常交易(自动从数据集中移除异常值)
关联规则学习——啤酒和尿不湿的故事。
常见算法:
聚类算法:
k-means
分层聚类分析
最大期望算法
可视化和降为——特征提取
pca
kernel pca
局部线性嵌入lle()
t-sne
关联规则学习
apriori
eclat
通常比较好的方法是,先使用降维,减少训练数据集的维度,正在将其提供给另一个机器学习算法。
1.1.3半监督学习——处理大量未标记数据和少量标记数据
案例:
照片托管服务。先进行聚类,然后人类给每个类别指定一个标签,然后就完成了。
常见方法:
通常是监督学习和半监督学习结合。
1.1.4强化学习
目的:随着时间的推移获得最大回报。
1.2批量学习和在线学习
1.2.1批量学习——系统使用所有可用的数据进行训练。
当你的系统需要应对快速变化的数据(股票等),需要一个更具响应力的解决方案。(部署完后,每隔一走更新一次模型)
1.2.2在线学习
可以循序渐进的给系统提供数据,可以是单独训练,也可以是小批量进行训练。
对于这类系统,需要接收持续的数据流。同时对数据流的变化,需要作出快速的反应。
新的数据实例一旦经过学习,可以丢掉。
算法每次都只加载一部分数据,重复进行,知道样本训练完。(其实是离线完成的)
1.3基于实例的学习和基于模型的学习
1.3.1基于实例的学习
死记硬背——具有相似度来判别。
1.3.2基于模型的学习
有一个案例。
步骤:学习数据、选择模型、使用训练数据进行训练(搜索模型,使loss最小化)、进行推理。
2.机器学习的挑战
2.1关于数据的
训练数据不足。(对于复杂问题而言,数据比算法更有效)
训练数据不具备代表性。
样本少,将会出现采样噪声(非代表性数据被选中) ——采用偏差(采样到非代表性数据)
质量差的数据。(存在异常值、噪声、错误)
异常值——丢掉或者修复
缺省值——整体忽略、部分忽略、补充。
2.2关于特征
无关特征——数据集中存在足够多的相关特征,较少的无关特征才能学习。
可以采用:特征选择/特征提取/创造新额特征。。
训练数据过度拟合。
简化模型
收集很多的数据
较少训练数据的噪声。
训练数据拟合不足。
选择一个跟多参数的模型
提供更好额特征集
减少模型的约束。