总结一下之前学习谷歌机器学习网站的知识点,顺便安利:develops.google.com/machine-learning/crash-course.
/* 需要翻墙 */
概念解释
首先是 ·标签 & 特征 & 样本 & 模型
标签:需要预测的真实实物,基本线性回归中的 y 变量
(直接结果,如:是否为垃圾邮件)
特征:用于描述数据的输入变量,基本线性回归中的{x1,x2,…}变量
(辅助信息,如:邮件标题,收发件人,路由信息等)
样本:数据的特定实例,x
(既定结果的目标)
-有标签的样本(x,y)->已知结果,可以用于训练模型
-无标签的样本(x,?)->用于对新数据做出预测
模型:可将样本映射到预测的标签,y`
(执行预测的工具,方法)
-回归模型,可预测连续值(多少),解决如1房价预测,2用户点击某广告的概率
-分类模型,可预测离散值(是否),解决如1某个指定邮件是否是垃圾邮件,2判断狗猫鼠的图片
训练Training:训练模型表示通过有标签的样本来学习(确定)所有权重和偏差的理想值。
损失Loss:表示对单个样本而言模型预测的准确度。
深入了解
-
线性回归:一种找到最适合一组点的直线或超平面的方法
(常用的回归损失函数:给定样本L2损失,平方误差=预测值和标签值之差的平方=(观察值 - 预测值)开平方 )=(y - y`)平方
均方误差(MSE):各个样本的所有平方损失之和
·(x,y)表示一个样本,x表示特征集 如年龄,y样本标签,如每分钟鸣叫次数
· prediction(x).权重偏差结合后的函数 -
降低损失 Reducing Loss
新选择的每组超参数都比之前一组参数的误差小一点。
梯度下降法:反复采取小步(梯度步长)迭代进行预测调整。
小批量梯度下降法:每次使用一小部分样本,使得Loss和梯度在整批范围内达到平衡。
Point:训练机器学习模型时首先要对 权重 和 偏差 进行初始猜测,然后反复调整这些猜测,直到获得 损失 可能最低 的权值和偏差为止。
梯度:偏导数的矢量
超参数:用于调整学习速率的按钮(学习速率就是一种超参数)
学习速率:也叫步长
过小:花费太长时间
过大:底部附近弹跳难以找到终点 -
泛化(Generalization)
是指模型很好地拟合以前从未⻅过的新数据(从⽤于创建该模型的同⼀分布中抽取)的能⼒。 -
过拟合:定死了一部分样本的参数划分,但不够准确全面,以后再加入新的测试样本就会出现问题。测试已有的样本可以损失很低,但是新数据很多的时候结果会非常糟糕。
-
应该采取的细则:
1、随机抽取独立同分布(i,i,d)的样本,样本之间互不影响。
2、分布是平稳的,即分布在数据集内不会发生变化。
3、从同一分布的数据划分中抽取样本。 -
置信区间:样本统计量所构造的总体参数的估计区间。
-
验证Validation (另一种划分)
通过划分训练集和测试集,可以判断模型能否很好地泛化到新数据。
每次迭代完都要用测试集验证,然后不断调参,注意不要不知不觉过拟合
特征工程 Feature Engineering
从原始数据中提取特征的过程
- OOV(Out of Vocabulary)分桶:定义一个从特征值(可能的词汇表)到整数的映射。
独热编码(One-hot encoding):按照字典的形式将(如每个街道的名称)映射到 {0,1,…,v-1} 内的某个函数。 ——用以解决特征是字符串的情况。
如其中1表示Main Street,0表示其他{0,0,0…1,0,0},采用布尔值来定义指示性特征而尽量不用“天数,时长”等量值特征。
- 分箱技术(binned):一部分特定情况下用特征值。
特征值处理方法:离群值可以限定在某个上限,大于该上限都按该值处理。
- 特征组合 Feature Crosses:对于不能用一根线直接把特征集划分干净的情况(占绝大多数情况),采用【A×B】的形式,利用其他特征合成新特征。
如:划分一三象限和二四象限,将x轴和y轴结果相乘作为新特征。
对于一些复杂情况
可以采用先分箱,再在特定条件(如城市)进行特征组合(经纬度等)的方式,防止特征组合产生同样的效果。
如果组合过多,即太复杂,该模型会有机会与训练数据中的噪点 过拟合 ,会降低模型在测试数据方面的性能。