基本概念
简单来说,机器学习就是让计算机具有基于数据 的学习能力。通过学习,能对从未进过的数据进行有效的预测。
样本分类
- 有标签的样本:记录的集合, 𝐷={𝐱1,𝐱2,…,𝐱𝑁} ;
- 无标签的样本:样例的集合, 𝐷={(𝐱1,𝑦1),(𝐱2,𝑦2),…,(𝐱𝑁,𝑦𝑁)} 。
数据集
训练样本可以根据用途分为
- 训练集:用于训练模型
- 测试集:用于验证训练后的模型的效果
训练集和测试集的选择:
一般来讲,当数据量很大时,如:100W,可以适当的降低测试集的比例。如:95W训练集+5W测试集。
当数据量比较小时,如1W,可以增大测试集的比例。如:8000训练集+2000测试集,即八比二。
如下图所示
x表示因变量,y表示自变量。x的变化引起y的变化,如机器学习可以研究x(房屋面积)和y(房屋售价)之间的关系。
机器学习分类
机器学习可以四类。
- 监督学习(样本有标签)
- 非监督学习(样本无标签)
- 半监督学习(部分样本有标签,部分样本无标签)
- 强化学习
监督学习
监督学习的目的一般用来预测,如:分类问题、回归问题等。通过带有标签的样本进行训练。
常用的监督学习算法:
- KNN(K近邻)算法
- 线性回归
- 逻辑回归
- SVM(支持向量机)
- 决策树和随机森林
- 神经网络
分类问题
解决预测数据的类别问题:如是否是垃圾邮件等。
回归问题
一般用来解决预测数据的目标值,通过一系列的特征(特征之间的关系可以是线性的也可以是非线性的)来实现。如房价预测问题,给定一些特征,如房子大小、房间数量、地理位置等等,然后预测房子的价格。
非监督学习
非监督学习通常用来解决聚类问题。通过不带标签的样本进行训练。
非监督学习主要任务
- 聚类:聚类将数据根据一定的规则分成多个类,通常是采用相似性。
- 比如对于博客访客的聚类,通过聚类算法,检测相似性访客进行分组,根据访客的属性找到相互间的关系,比如它可能找出访客的职业关系,将访客分为有 40% 的是上班族,有 50% 的是学生
- 降维:简化数据、消除无关或者影响较小的属性特征。具体做法如合并若干相关的特征。
- 例如,汽车的里程数与车龄高度相关,降维算法就会将它们合并成一个,表示汽车的磨损。
- 异常检测:如检测异常的信用卡转账以防欺诈,检测制造缺陷。
- 异常检测的系统使用正常值训练的,当它碰到一个新实例,它可以判断这个新实例是像正常值还是异常值。
- 关联学习:挖掘大量数据以发现属性间有趣的关系。
- 假设你拥有一个超市。在销售日志上运行关联规则,可能发现买了烧烤酱和薯片的人也会买牛排。因此,你可以将这些商品放在一起。
非监督学习常见算法
- K 均值
- 层次聚类分析(Hierarchical Cluster Analysis, HCA)
- 期望最大值
- 可视化和降维
- 主成分分析(Principal Component Analysis, PCA)
- 核主成分分析局部线性嵌入(Locally-Linear Embedding, LLE)
- t-分布邻域嵌入算法(t-distributed Stochastic Neighbor Embedding, t-SNE)
- 关联性规则学习
- Apriori 算法
- Eclat算法
强化学习
增强学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。
通过增强学习,一个智能体应该知道在什么状态下应该采取什么行为。RL是从环境状态到动作的映射的学习,我们把这个映射称为策略。
函数
我们的目的是在训练中,找出使损失函数最小的参数。通过训练和调参实现。
- 损失函数(代价函数)度量模型预测错误的程度,是预测输出 𝑓(𝐗) 和实际输出 𝑌 的非负实值函数,记作 𝐿(𝑌,𝑓(𝐗)) 。
- 平方损失函数
- 𝐿(𝑌,𝑓(𝐗))=(𝑌−𝑓(𝐗))2
- 绝对值损失函数
- 𝐿(𝑌,𝑓(𝐗))=|𝑌−𝑓(𝐗)|
机器学习基本流程
模型(model)、目标(cost function)、优化算法
- Step1:对于一个问题,需要首先建立一个模型,如回归或分类模型;
- step2:通过最小分类误差、最大似然或最大后验概率建立模型的代价函数;
- step3:最优化问题求解
最优化问题求解
下图简述了机器学习中最优化问题求解的流程:
简单来说,就是将学习数据集合测试数据集传给model(学习函数),通过训练,找出使函数最优(识别准确率最高)的参数。
机器学习算法的选择
从start开始根据自己的情况一步步的寻找算法。
- 左上:分类
- 右上:回归
- 左下:聚合
- 右下:降维
机器学习的挑战
- 训练数据的质量
- 训练数据的普适性
- 无关特性
- 如何选出最合适的特征
- 过拟合问题
- 测试环境表现很好,真实数据表现太差。过于关注测试数据,想高度吻合,比如关注一些不重要的特征从而使识别真实物体能力下降。
- 欠拟合问题
- 测试环境表现很差,真实数据表现也很差。通过加强训练次数可以解决。