1.什么是机器学习
机器学习是一门通过编程让计算机从数据中进行学习的科学(和艺术)。
使用机器学习方法挖掘大量数据来帮助发现不太明显的规律,这称作数据挖掘。
2.机器学习的应用实例
-
基于很多性能指标来预测公司下一年的收入
这是一个回归问题(如预测值),需要使用回归模型进行处理,例如线性回归或多项式回归、SVM回归、随机森林回归或者人工神经网络,如果考虑过去的性能指标,可以使用RNN,CNN或者Transformer。
-
检测行用卡诈骗
这是异常检测。
-
基于客户的购买记录来对客户进行分类,对每一类客户设计不同的市场策略
这是聚类问题。
-
基于以前的购买记录给客户推荐可能感兴趣的产品
这是推荐系统,一个办法是将以前的购买记录(和客户的其他信息)输入人工神经网络,从而输出客户最可能购买的产品。这个神经网络是在所有客户的购买记录上训练的。
3.机器学习系统的类型
- 有监督学习、无监督学习、半监督学习和强化学习
- 在线学习和批量学习
- 基于实例的学习和基于模型的学习
3.1有监督学习
提供给算法的包含所需解决方案的训练集称为标签。
另一个典型的任务是通过给定一组称为预测器的特征来预测一个目标数值,这种类型的任务称为回归。
回归问题:在给定输入特征的情况下预测值(通过有多个输入特征,有时有多个输出值)
有监督学习算法:
- k-近邻算法
- 线性回归
- 逻辑回归
- 支持向量机(SVM)
- 决策树和随机森林
- 神经网络
3.2无监督学习
无监督算法
- 聚类算法
k-均值算法
DBSCAN
分层聚类分析(HCA)
- 异常检测和新颖性检测
单类SVM
孤立森林
- 可视化和降维
主成分分析(PCA)
核主成分分析
局部线性嵌入(LLE)
t-分布随机近邻嵌入(t-SNE)
- 关联规则学习
Apriori
Eclat
3.3半监督学习
有些算法可以处理部分已标记的数据。
3.4强化学习
必须自动学习什么是最好的策略,从而随着时间的推移获得最大的回报。
3.5批量学习
在批量学习中,系统无法进行增量学习,即必须使用所有可用数据进行训练。
(需要消费大量的计算机资源)
3.4在线学习
循环渐进地给系统提供训练数据,逐步积累学习成果。
(需要密切监控系统,一旦检测到性能下降,久即使终端学习)
3.5基于实例的学习
系统用心学习这些实例,然后通过使用相似度度量来比较新实例和已经学习的实例(或它们的自己),从而泛化新实例。
3.6基于模型的学习
从一组实例集中实现泛化的另一种方法是构建这些实例的模型,然后使用该模型进行预测。
示例使用Sciki-Learn训练并运行一个线性模型
4.机器学习项目
- 研究数据
- 选择模型
- 使用训练数据进行训练(即前面学习算法搜索模型参数值,从而使成本函数最小化的过程)
- 最后,应用模型对新示例进行预测(称为推断),希望模型的泛化结果不错。
5.机器学习的主要挑战
训练数据的数量不足
训练数据不具代表性
低质量数据
无关特征
过拟合训练数据
解决方案
- 简化模型
- 收集更多的训练数据
- 减少训练数据中的噪音
欠拟合训练数据
解决方案
- 选择一个带有更多参数、更强大的模型
- 给学习算法提供更好的特征集(特征工程)
- 减少模型中的约束(例如,减少正则化超参数)
退后一步
6.测试与验证
将数据分为训练集和测试集,通常将80%的数据用于训练,而保持20%供测试用。