机器学习部分
一、特色工程
1. 特征归一化
1)什么是特征归一化?
归一化数值类型的特征可以将所有特征统一到大致相同的数值范围内。
2)为什么特征归一化?
为了消除数据特征之间量纲的影响,需要将特征归一化,使不同指标之间具有可比性。例如,如果使用米饭,分析一个人的身高和体重对健康的影响(m)和千克(kg)作为一个单位,身高特征将在1.6~1.8m体重特征在50~1000之间kg在这个范围内,分析的结果显然倾向于体重特征的体重特征。为了获得更准确的结果,有必要将特征归一化(Normalization)处理,使每个指标处于处于相同的值级。
3)特征归一化常用的方法
- 线性函数归一化(Min-Max Scaling)。对原始数据进行线性转换,使结果映射到[0,1]范围,实现原始数据等比缩放。
- 零均值归一化(Z-Score Normalization)。将原始数据映射到均值为0、标准差为1的分布上。
4)归一化处理适用模型
- 应用程序集成模型。在实际应用中,通过梯度降解的模型通常需要集成,包括线性回归、逻辑回归、支持向量机、神经网络等模型。
- 不使用归一化模型。比如决策树。
2. 增强图像样本
1)在图像分类任务中,缺乏训练数据会带来什么问题?
当培训数据不足时,表明模型从原始数据中获得的信息较少。在这种情况下,为了确保模型的效果,需要更多的先验信息。具体到图像分类任务,缺乏培训数据的问题主要体现在过拟合,即模型在培训样本中的效果可能很好,但测试集中的泛化效果不好。
2)如何缓解数据量不足造成的问题?
- 随机旋转、平移、缩放、切割、填充、左右翻转等。在一定程度上,这些变化对应于同一目标在不同角度的观察结果。
- 添加噪声扰动图像中的像素,如胡椒盐噪声、高斯白噪声等。
- 颜色变换。
- 改变图像的亮度、清晰度、对比度、锐度等。
3. 什么是监督学习,什么是非监督学习?
1)监督学习。监督学习是利用已知正确答案的例子来训练网络。已知数据和相应的标签训练预测模型,并将输入数据映射到标签上。
2)非监督学习。在非监督学习中,数据不是特别识别的,适用于有数据集但没有标签的情况。学习模型是推断数据的一些内部结构。
4. 非监督学习的主要应用场景
1)监督学习:回归分类:
2)非监督学习:聚类:
二、模型评估
1. 回归问题模型评价指标?
- 平均绝对误差(Mean Absolute Deviation):单个观测值与算术平均值的偏差的绝对值的平均。
- 平均误差:从单个样本到平均值的平方平均值。
- MAD(中位数绝对偏差):与数据中值绝对偏差的中值。
- R2决定系数:趋于1,模型越好;趋于0,模型越差。
2. 分类问题模型评估指标?
查准率(Precision):正确数量的分类 / (正确数量的分类 多分类数量),范围[0,1]。简单来说就是分类对不对。
召回率(Precision):正确数量的分类 / (正确数量的分类 分类数量少),范围[0,1]。简单来说就是分类不完整。
F1得分:2 * 查询率 * 召回率 / (查准率 召回率), 范围[0, 1] ,查准率和召回率综合考虑。
3. A/B测试
1)什么是A/B测试?
A/B测试是两种模型同时运行并在实际环境中验证其效果的方法。在互联网公司中,A/B 测试是验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B 测试是验证模型最终效果的主要手段。
2)为什么需要?A/B测试?
- 离线评估不能完全消除模型过拟合的影响,因此,离线评估结果不能完全取代在线评估结果。
- 离线评估不能完全恢复在线工程环境。一般来说,离线评估往往不考虑在线环境的延迟、数据丢失、标签数据丢失等。因此,离线评估的结果是理想工程环境的结果。
- 在线系统的某些业务指标无法在离线评估中计算。
3)如何在线A/B测试?
进行A/B测试的主要手段是将用户分成桶,即将用户分成实验组和对照组,对实验组用户实施新模型,对照组用户实施旧模型。在分桶过程中,应注意样品的独立性和采样方法的无偏差,以确保同一用户每次只能分成同一桶,并在分桶过程中选择user_id为了保证桶中的样本无偏,需要一个随机数。
4. 超参数
1)什么是超参数?
超参数是在开始学习过程之前设置的参数,而不是通过训练获得的参数。
2)超参数有哪些调优手段?
① 网格搜索
网格搜索是指搜索范围内的所有点来确定最佳值。如果采用较大的搜索范围和较小的步长,网格搜索很有可能找到全球最佳值。然而,这种搜索方案消耗了大量的计算资源和时间,特别是当超参数需要调整时。因此,在实际应用中,网格搜索方法通常首先使用更广泛的搜索范围和更大的步长来找到全球最佳值的可能位置;然后逐渐缩小搜索范围和步长,以找到更准确的最佳值。这种操作方案可以减少所需的时间和计算量,但由于目标函数一般不突出,很可能会错过整体最优值。
② 随机搜索
随机搜索的想法与网格搜索相似,但不再测试上下边界之间的所有值,而是在搜索范围内随机选择样本点。其理论基础是,如果样本点足够大,则可以通过随机采样找到全球最佳值或其近似值。随机搜索通常比网格搜索更快,但就像网格搜索的快速版本一样,其结果无法保证。
③ 验证曲线和学习曲线
- 验证曲线:根据不同的评估系数确定超参数的优缺点。
- 学习曲线:根据训练数据的规模确定算法的优缺点。
3)常用超参数对模型性能的影响
① 学习率
学习率过高导致无法收敛,过小导致收敛缓慢
② 超过损失函数部分的参数
部分损失函数超过参数的变化对结果非常敏感,而部分损失函数对结果影响不大。过程中,建议参考论文的推荐值,并对推荐值的数量级进行最大和最小值调试。
③ 批样本数量
训练速度训练速度慢,过小导致收敛不稳定
④ 丢弃率
较小的丢弃率可以提高精度,但可能会导致过拟合
⑤ 卷积核大小
卷积核尺寸的增加意味着参数的增加,模型参数在同一条件下也相应增加。尽量选择小卷积核。
⑥ 模型深度
在相同的条件下,增加深度意味着模型具有更多的参数和更强的拟合能力。深度越深,参数越多,时间和硬件资源越高。
5. 欠拟合和过拟合
1)什么是欠拟合,过拟合?
欠拟合指的是模型在训练和预测时表现都不好的情况;过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现很好,但在测试集和新数据上的表现较差。
2)如何避免过拟合?
- 扩展样本数据。使用更多的训练数据是解决拟合问题最有效的方法,因为更多的样本可以让模型学习更有效的特征,减少噪声的影响。
- 降低模型的复杂性。当数据较少时,模型过于复杂是产生过拟合的主要因素。适当降低模型的复杂性可以避免模型过度拟合的采样噪声。例如,减少神经网络模型中的网络层数和神经元数;减少树的深度,在决策树模型中剪枝。
- 正则化方法。在模型参数中加入一定的正则约束,如在损失函数中加入权值的大小。
- 集成学习方法。集成学习是将多个模型集成在一起,以降低单个模型的过拟合风险。
- 在树结构中,树枝被剪掉。
- 减少训练迭代次数。
- 加入神经网络dropout操作层。
- 主动添加噪声数据样本。
3)如何避免欠拟合?
- 添加新的特征。当特征不足或现有特征和本标签的相关性不强时,模型容易出现欠拟合。
- 增加模型复杂度。简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。
- 减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。
6. 什么是置信概率?
置信概率(Confidence Probability)是用来衡量推断靠程度的概率,该值越大说明推断结果确定性越大,该值越小说明推断结果不确定性越大。
7. 什么是交叉验证
交叉验证指将含有N个样本的数据集,分成K份,每份含有N/K个样本。选择其中1份作为测试集,另外K-1份作为训练集,测试集就有K种情况。将K种情况下,模型的泛化误差取均值,得到模型最终的泛化误差。
交叉验证的作用是为了得到更为稳健可靠的模型,对模型的泛化误差进行评估。
8. 列举解决类别不均衡问题的方法
1)扩大数据集。增加包含小类样本数据的数据,更多的数据能得到更多的分布信息。
2)对大类数据欠采样。减少大类数据样本个数,使与小样本个数接近。
3)使用新评价指标。如果当前评价指标不适用,则应寻找其他具有说服力的评价指标。
4)选择新算法。不同的算法适用于不同的任务与数据,应该使用不同的算法进行比较。
5)数据代价加权。例如当分类任务是识别小类,那么可以对分类器的小类样本数据增加权值,降低大类样本的权值,从而使得分类器将重点集中在小类样本身上。
9. 什么是L1,L2正则化
机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作 L1-norm 和L2-norm,中文称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项,所谓"惩罚"是指对损失函数中的某些参数做一些限制。范数的表达式为: ∣ ∣ x ∣ ∣ p = ( ∑ ∣ x i ∣ p ) 1 p ||x||_p=(\sum|x_i|^p)^{\frac{1}{p}} ∣∣x∣∣p=(∑∣xi∣p)p1 当p=1时,是L1范数,其表示某个向量中所有元素绝对值的和
当p=2时,是L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式
正则化通过降低模型的复杂性, 达到避免过拟合的问题,原因是:(1)而加入正则能抑制系数过大的问题;(2)从贝叶斯的角度来分析, 正则化是为模型参数估计增加一个先验知识,先验知识会引导损失函数最小值过程朝着约束方向迭代。
10. 神经网络权重初始值如何设置?
在神经网络的学习中,权重的初始值特别重要。实际上,设定什么样的权重初始值,经常关系到神经网络的学习能否成功。
1)权重初始值不能设置为0
如果把权重初始值全部设为0,在误差反向传播法中,所有的权重值都会进行相同的更新,神经网络将无法正常学习。比如,在2层神经网络中,假设第1层和第2层的权重为0。这样一来,正向传播时,因为输入层的权重为0,所以第2层的神经元全部会被传递相同的值。第2层的神经元中全部输入相同的值,这意味着反向传播时第2层的权重全部都会进行相同的更新。因此,权重被更新为相同的值,并拥有了对称的值(重复的值)。这使得神经网络拥有许多不同的权重的意义丧失了。为了防止“权重均一化”(严格地讲,是为了瓦解权重的对称结构),必须随机生成初始值。
2)隐藏层激活值的分布
使用一个包含5层的神经网络,每层有100个神经元。然后,用高斯分布随机生成1000个数据作为输入数据,并把它们传给5层神经网络,观察激活值的分布并绘制直方图,从而反映激活值的分布情况。
上图显示的是标准差为1的随机权重激活值分布。由图可见,各层激活值呈偏向0和1的分布,偏向0和1的数据分布会造成反向传播中梯度的值不断变小,最后消失。这个问题称为梯度消失(gradient vanishing)。将参数初始值的标准差设置为0.01,各层激活值分布如下图所示:
由图可见,当初始化权重参数时,标准差为0.01,激活值集中在0.5附近分布。虽然没有出现梯度消失情况,但激活值的分布有所偏向,说明在表现力上会有很大问题。因为如果有多个神经元都输出几乎相同的值,那它们就没有存在的意义了。
Xavier Glorot和Yushua Bengio等人的论文《Understanding the difficulty of training deep feedforward neural networks》(2010年)中推荐的权重初始值(俗称“Xavier初始值”)。现在,在一般的深度学习框架中,Xavier初始值已被作为标准使用。为了使各层的激活值呈现出具有相同广度的分布,论文建议,如果前一层的节点数为n,则初始值使用 1 n \frac{1}{\sqrt n} n 1标准差为的分布。使用Xavier初始值后,前一层的节点数越多,要设定为目标节点的初始值的权重尺度就越小。
由图可见,Xavier初始值,后面的隐藏层的分布呈稍微歪斜的形状。如果用tanh函数(双曲线函数)代替sigmoid函数,这个稍微歪斜的问题就能得到改善,呈漂亮的吊钟型分布。
Xavier初始值同样适合Relu激活函数,但当激活函数使用ReLU时,一般推荐使用ReLU专用的初始值,也就是Kaiming He等人推荐的初始值,也称为“He初始值”。当前一层的节点数为n时,He初始值使用标准差为 2 n \sqrt{\frac{2}{n}} n2 的高斯分布。可以直观理解为,ReLU的负值区域的值为0,为了使它更有广度,所以需要2倍的系数。
由上图可知,当“std = 0.01”时,各层的激活值非常小。神经网络上传递的是非常小的值,说明逆向传播时权重的梯度也同样很小。使用Xavier初始值,随着层的加深,偏向一点点变大,层次较深时会出现梯度消失问题。而当初始值为He初始值时,各层中分布的广度相同。由于即便层加深,数据的广度也能保持不变,因此逆向传播时,也会传递合适的值。
三、回归问题
1. 线性回归
1)什么是线性回归
线性回归是指:通过数据样本,找到一个最佳拟合数据样本的线性模型,并用于预测。线性方程的一般表达形式为: y = w 0 + w 1 x y = w_0 + w_1x y=w0+w1x 其中, x x x和 y y y为已知, w 0 , w 1 w_0, w_1 w0,w1是要经过学习获得的参数。
2)什么情况下使用线性回归
- 数据样本呈线性分布。在二维平面中,线性分布的特征是,数据呈一个狭长的条状分布,并且没有明显弯曲。
- 已知模型为线性模型。
3)线性回归的特点
① 优点
- 思想简单,实现容易。建模迅速,对于小数据量、简单的关系很有效。
- 是许多强大的非线性模型的基础。
- 线性回归模型十分容易理解,结果具有很好的可解释性,有利于决策分析。
- 蕴含机器学习中的很多重要思想。
② 缺点
- 对于非线性数据或者数据特征间具有相关性多项式回归难以建模。
- 难以很好地表达高度复杂的数据。
4)多元回归
多元回归是线性回归的推广,含有一个变量称为线性回归,含有多个变量称为多元回归。多元回归的表达式为: y = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n y = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n y=w0+w1x1+w2x2+...+wnxn 只有一个变量的时候,模型是平面中的一条直线;有两个变量的时候,模型是空间中的一个平面;有更多变量时,模型将是更高维的。
2. 多项式回归
1)什么是多项式回归?
多项式回归是指使:根据样本数据,用高次多项式模型来最佳程度拟合样本的回归方法。多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。多项式回归模型一般表达式为: y = w 0 + w 1 x + w 2 x 2 + w 3 x 3 + . . . + w n x n y = w_0 + w_1x + w_2x^2 + w_3x ^ 3 + ... + w_nx^n y=w0+w1x+w2x2+w3x3+...+wnxn
2)什么情况下使用多项式回归?
在回归分析中有时会遇到线性回归的直线拟合效果不佳,如果发现散点图中数据点呈多项式曲线时,可以考虑使用多项式回归来分析。
3)多项式回归的特点
① 优点
- 添加高阶项的时候,也增加了模型的复杂度。随着模型复杂度的升高,模型的容量以及拟合数据的能力增加
② 缺点
- 需要一些数据的先验知识才能选择最佳指数
- 如果指数选择不当容易出现过拟合
3. 决策树回归
1)什么是决策树
决策树(Decision Tree)的核心思想是:相似的输入必然产生相似的数据(同因同果)。决策树通过把数据样本分配到树状结构的某个叶子节点来确定数据集中样本所属的分类。决策树可用于回归和分类。当用于回归时,预测结果为叶子节点所有样本的均值。
我们使用“熵”来度量系统的混乱或有序程度。随着子表的划分,信息熵越来越小,信息越来越纯,数据越来越有序(同一个子节点下的数据越来越相同或相似)。信息熵表达式为: H = − ∑ i = 1 n P ( x i ) l o g 2 P ( x i ) H = -\sum_{i=1}^{n}{P(x_i)log_2P(x_i)} H=−i=1∑nP(xi)log2P(xi) 其中, P ( x i ) P(x_i) P(xi)是某个分类的概率。当n的分类越大,H的值越大;当n=1时,信息熵为0.在构建决策树时,首先选择信息增益率大的属性作为分支判断的依据。
2)决策树的特点
① 优点
- 简单易懂,容易解释,可视化,适用性广;
- 可用于分类、回归问题。
② 缺点
-
容易过拟合;
-
数据中的小变化会影响结果,不稳定;
-
每一个节点的选择都是贪婪算法,不能保证全局最优解。
3)什么情况下使用决策树
- 适合与标称型(在有限目标集中取值)属性较多的样本数据
- 具有较广的适用性,当对模型不确定时可以使用决策树进行验证
4)随机森林
随机抽取部分样本和随机抽取部分特征相结合构建多棵决策树,这样不仅削弱了强势样本对预测结果的印象,同时削弱了强势特征的影响,提高了模型的泛化能力。
四、分类问题
1. 二元分类
1)什么是二元分类
二元分类又称逻辑回归,是将一组样本划分到两个不同类别的分类方式。
2)如何实现二元分类
逻辑回归属于广义线性回归模型(generalized linear model),使用线性模型计算函数值,再通过逻辑函数将连续值进行离散化处理。逻辑函数(又称sigmoid函数)表达式为: y = 1 1 + e − t y= \frac{1}{1+e^{-t}} y=1+e−t1 该函数能将 ( − ∞ , + ∞ ) (-\infty, +\infty) (−∞,+∞)的值压缩到(0, 1)区间,通过选取合适的阈值转换为两个离散值(大于0.5为1,小于0.5为0)。
3. 朴素贝叶斯分类
1)贝叶斯定理
贝叶斯定理描述为: P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A|B) = \frac{P(A)P(B|A)}{P(B)} P(A∣B)=P(B)P(A)P(B∣A) 其中, P ( A ) P(A) P(A)和 P ( B ) P(B) P(B)是A事件和B事件发生的概率,这两个事件是独立的,不相互影响的(朴素的含义); P ( A ∣ B ) P(A|B) P(A∣B)称为条件概率,表示B事件发生条件下,A事件发生的概率。 P ( A ) P(A) P(A)也称为先验概率, P ( A ∣ B ) P(A|B) P(A∣B)也称为后验概率。先验概率主要根据统计获得,后验概率利用贝叶斯定理计算后并根据实际情况进行修正。其公式推导过程: P ( A , B ) = P ( B ) P ( A ∣ B ) P ( B , A ) = P ( A ) P ( B ∣ A ) P(A,B) =P(B)P(A|B)\\ P(B,A) =P(A)P(B|A) P(A,B)=