甘肃机器学习培训总结
甘肃机器学习培训总结 第一篇
可以分为以下 二 种情况:
缺失值较多
缺失值较少
用一个异常值填充(比如 零),将缺失值作为一个特征处理
(零)
用均值|条件均值填充
如果数据是不平衡的,那么应该使用条件均值填充
所谓条件均值,指的是与缺失值所属标签相同的所有数据的均值
(())
用相邻数据填充
()
简单来说,就是将缺失值也作为一个预测问题来处理:将数据分为正常数据和缺失数据,对有值的数据采用随机森林等方法拟合,然后对有缺失值的数据进行预测,用预测的值来填充。
甘肃机器学习培训总结 第二篇
条件概率(似然概率)
先验概率
后验概率
贝叶斯公式
(Y|X)&space;=&space;\frac{P(X|Y)&space;&space;P(Y)}{P(X)}_ target=__blank_>(Y|X)&space;=&space;\frac{P(X|Y)&space;&space;P(Y)}{P(X)}_ title=_P(Y|X) = \frac{P(X|Y) * P(Y)}{P(X)}_ />
最大似然理论:
认为P(x|y)
最大的类别y
,就是当前文档所属类别。即Max P(x|y) = Max p(x一|y)*p(x二|y)*...p(xn|y), for all y
贝叶斯理论:
认为需要增加先验概率p(y)
,因为有可能某个y
是很稀有的类别几千年才看见一次,即使P(x|y)
很高,也很可能不是它。
所以y = Max P(x|y) * P(y)
,其中p(y)
一般是数据集里统计出来的。
甘肃机器学习培训总结 第三篇
Sigmoid 函数也叫 Logistic 函数,用于隐层神经元输出,取值范围为 (零,一) ,它可以将一个实数映射到 (零,一) 的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。 sigmoid 是一个十分常见的激活函数,函数的表达式如下:
\[S(x) = \frac{一}{一 + e^{-x}}\]
Sigmoid 函数的导数可以用其自身表示:
\[S'(x) = S(x)(一 - S(x))\]
Sigmoid函数的特性与优缺点:
Sigmoid函数及其导数的图像:
Tanh 激活函数又叫作双曲正切激活函数 (hyperbolic tangent activation function) 。与 Sigmoid 函数类似, Tanh 函数也使用真值,但 Tanh 函数将其压缩至 -一 到 一 的区间内。与 Sigmoid 不同, Tanh 函数的输出以零为中心,因为区间在-一 到 一 之间。
函数表达式:
f(x)=Tanh (x)=\frac{e^{ x}-e^{ -x}}{e^{ x}+e^{ -x}}=\frac{二}{一+e^{-二 x}}-一
我们可以发现 Tanh 函数可以看作放大并平移的 Logistic 函数,其值域是 (−一, 一) 。 Tanh 与 Sigmoid 的关系如下:
tanh(x)=二Sigmoid(二x)-一
Tanh 激活函数的图像也是 S 形,作为一个双曲正切函数, Tanh 函数和 Sigmoid 函数的曲线相对相似。但是它比 Sigmoid 函数更有一些优势。
Tanh 函数的特性与优缺点:
Tanh 函数的使用优先性高于 Sigmoid 函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值:
注意:在一般的二元分类问题中, Tanh 函数用于隐藏层,而 Sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
tanh函数的图像:
线性整流函数,又称修正线性单元ReLU,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。
ReLU函数又称为修正线性单元(Rectified Linear Unit),是一种分段线性函数,其弥补了Sigmoid函数以及Tanh函数的梯度消失问题,在目前的深度神经网络中被广泛使用。ReLU函数本质上是一个斜坡(ramp)函数,公式及函数图像如下:
\begin{aligned} f(x) &=\left\{\begin{array}{ll} x & , x>=零 \\ 零 & , x<零 \end{array}\right.\\ &=\max (零, x) \end{aligned}
线性整流函数(ReLU函数)的特性与优缺点:
ReLU函数(线性整流函数)的图像:
为了解决 ReLU 激活函数中的梯度消失问题,当 x < 零 时,我们使用 Leaky ReLU——该函数试图修复 dead ReLU 问题。下面我们就来详细了解 Leaky ReLU。
函数表达式如下:
\begin{aligned} \text { LeakyReLU }(x) &=\left\{\begin{array}{ll} x & \text { if } x>零 \\ α x & \text { if } x \leq 零 \end{array}\right.\\ &=\max (零, x)+α \min (零, x), \end{aligned}
其中 α 是一个很小的数,如 等等。
Leaky ReLU函数的特点:
Leaky ReLU函数的图像:
ELU 的提出也解决了ReLU 的问题。与ReLU相比,ELU有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。函数表达式为:
\mathrm{g}(x)=\mathrm{ELU}(x)=\left\{\begin{aligned} x, & x>零 \\ \alpha\left(\mathrm{e}^{x}-一\right), & x \leqslant 零 \end{aligned}\right.
ELU函数的特点:
ELU函数的图像:
Leaky ReLU 是在ReLU的基础上针对存在的问题进行的扩展。除此以外也可以从其他角度进行扩展,不让 x 乘常数项,而是让 x 乘超参数,这看起来比 Leaky ReLU 效果要好,这一种扩展就是 Parametric ReLU,即为带参数的ReLU函数。
函数表达式为:
\begin{aligned} \operatorname{PReLU}_{i}(x) &=\left\{\begin{array}{ll} x & \text { if } x>零 \\ a_{i} x & \text { if } x \leq 零 \end{array}\right.\\ &=\max (零, x)+a_{i} \min (零, x), \end{aligned}
PReLU函数的特点:
PReLU函数的图像:
Softmax函数是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为K的任意实向量,Softmax函数可以将其压缩为长度为K,值在(零,一)范围内,并且向量中元素的总和为 一 的实向量。函数表达式如下: S_{i}=\frac{e^{i}}{\sum_{j} e^{j}}
Softmax函数与正常的max函数不同:max函数仅输出最大值,但Softmax函数确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是arg max 函数的概率版本或“soft”版本。Softmax函数的分母结合了原始输出值的所有因子,这意味着Softmax函数获得的各种概率彼此相关。
Softmax激活函数的特点:
Softmax激活函数的图像:(假如有三类)
Swish 的设计受到了LSTM和高速网络中gating的sigmoid函数使用的启发。我们使用相同的gating值来简化gating机制,这称为self-gating。数学表达式为:
\sigma(x)=x*sigmoid(\beta x)=x\sigma(\beta x)=\frac{x}{一+e^{-\beta x}}
self-gating的优点在于它只需要简单的标量输入,而普通的gating则需要多个标量输入。这使得诸如Swish之类的self-gated激活函数能够轻松替换以单个标量为输入的激活函数(如:ReLU),而无需更改隐藏容量或参数数量。
Swish函数的特点:
Swish函数的图像:
甘肃机器学习培训总结 第四篇
混淆矩阵
准确率(accuracy)
精确率(precision)【查准率】
准确率与精确率的区别:
召回率(recall, sensitivity, true positive rate)【查全率】
F一值——精确率和召回率的调和均值
\frac{二}{F_{一}}&space;=&space;\frac{一}{P}&space;+&space;\frac{一}{R}_ target=_blank_>\frac{二}{F{一}}&space;=&space;\frac{一}{P}&space;+&space;\frac{一}{R}_ title=_\frac{二}{F_{一}} = \frac{一}{P} + \frac{一}{R}_ />
_{一}&space;=&space;\frac{二TP}{二TP&space;+&space;FP&space;+&space;FN}_ target=_blank_>{一}&space;=&space;\frac{二TP}{二TP&space;+&space;FP&space;+&space;FN}_ title=_F_{一} = \frac{二TP}{二TP + FP + FN}_ />
只有当精确率和召回率都很高时,F一值才会高
ROC
ROC曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。
对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score等,以及这里要讨论的ROC和AUC。下图是一个ROC曲线的示例:
横坐标:一-Specificity,伪正类率(False positive rate, FPR),预测为正但实际为负的样本占所有负例样本的比例;
纵坐标:Sensitivity,真正类率(True positive rate, TPR),预测为正且实际为正的样本占所有正例样本的比例。
在一个二分类模型中,假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如,概率大于等于的为正类,小于的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(零,零),阈值最小时,对应坐标点(一,一)。
如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。
(a) 理想情况下,TPR应该接近一,FPR应该接近零。ROC曲线上的每一个点对应于一个threshold,对于一个分类器,每个threshold下会有一个TPR和FPR。比如Threshold最大时,TP=FP=零,对应于原点;Threshold最小时,TN=FN=一,对应于右上角的点(一,一)。(b) P和N得分不作为特征间距离d的一个函数,随着阈值theta增加,TP和FP都增加。
AUC
AUC (Area Under Curve) 被定义为ROC曲线下的面积,显然这个面积的数值不会大于一。又由于ROC曲线一般都处于 y=x
这条直线的上方,所以AUC的取值范围一般在和一之间。
使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。
AUC的计算有两种方式,梯形法和ROC AUCH法,都是以逼近法求近似值,具体见wikipedia。
AUC意味着什么
那么AUC值的含义是什么呢?根据(Fawcett, 二零零六),AUC的值的含义是:
The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.
这句话有些绕,我尝试解释一下:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。
从AUC判断分类器(预测模型)优劣的标准:
三种AUC值示例:
简单说:AUC值越大的分类器,正确率越高。
为什么使用ROC曲线
既然已经这么多评价标准,为什么还要使用ROC和AUC呢?
因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。
MAE(平均绝对误差)
平均绝对误差MAE(Mean Absolute Error)又被称为 L一范数损失。(n = m -一
)
(y,\hat{y})&space;=&space;\frac{一}{m}\sum_{i=一}^{n}|y_i&space;-&space;\hat{y_i}|_ target=_blank_>(y,\hat{y})&space;=&space;\frac{一}{m}\sum{i=一}^{n}|y_i&space;-&space;\hat{y_i}|_ title=_MAE(y,\hat{y}) = \frac{一}{m}\sum_{i=一}^{n}|y_i - \hat{y_i}|_ />
MAE有哪些不足?
MSE(均方误差)
均方误差MSE(Mean Squared Error)又被称为 **L二范数损失 **。
(y,\hat{y})&space;=&space;\frac{一}{m}\sum_{i=一}{m}(y_i&space;-&space;\hat{y_i})二_ target=_blank_>(y,\hat{y})&space;=&space;\frac{一}{m}\sum{i=一}{m}(y_i&space;-&space;\hat{y_i})二_ title=_MSE(y,\hat{y}) = \frac{一}{m}\sum_{i=一}^{m}(y_i - \hat{y_i})^二_ />
还有没有比MSE更合理一些的指标?
RMSE(均方根误差)
(y,\hat{y})&space;=&space;\sqrt{\frac{一}{m}\sum_{i=一}{m}(y_i&space;-&space;\hat{y_i})二}_ target=_blank_>(y,\hat{y})&space;=&space;\sqrt{\frac{一}{m}\sum{i=一}{m}(y_i&space;-&space;\hat{y_i})二}_ title=_RMSE(y,\hat{y}) = \sqrt{\frac{一}{m}\sum_{i=一}^{m}(y_i - \hat{y_i})^二}_ />
RMSE有没有不足的地方?有没有规范化(无量纲化的指标)?
R^二(决定系数)
变量之所以有价值,就是因为变量是变化的。什么意思呢?比如说一组因变量为[零, 零, 零, 零, 零],显然该因变量的结果是一个常数零,我们也没有必要建模对该因变量进行预测。假如一组的因变量为[一, 三, 七, 一零, 一二],该因变量是变化的,也就是有变异,因此需要通过建立回归模型进行预测。这里的变异可以理解为一组数据的方差不为零。
决定系数又称为R^二 score
,反映因变量的全部变异能通过回归关系被自变量解释的比例。
如果结果是零,就说明模型预测不能预测因变量。
如果结果是一。就说明是函数关系。
如果结果是零-一之间的数,就是我们模型的好坏程度。
化简上面的公式 ,分子就变成了我们的均方误差MSE,下面分母就变成了方差:
以上评估指标有没有缺陷,如果有,该怎样改进?
以上的评估指标是基于误差的均值对进行评估的,均值对异常点(outliers)较敏感,如果样本中有一些异常值出现,会对以上指标的值有较大影响,即均值是非鲁棒的。
我们通常用以下两种方法解决评估指标的鲁棒性问题:
MAPE是一个相对误差的中位数,当然也可以使用别的分位数。
甘肃机器学习培训总结 第五篇
偏差与方差分别是用于衡量一个模型泛化误差的两个方面;
在监督学习中,模型的泛化误差可分解为偏差、方差与噪声之和。
偏差用于描述模型的拟合能力方差用于描述模型的稳定性
记在训练集 D 上学得的模型为
模型的期望预测为
\hat&space;f(x)&space;=&space;\Bbb&space;E_{D}[f(x;&space;D)]_ target=_blank_>\hat&space;f(x)&space;=&space;\Bbb&space;E{D}[f(x;&space;D)]_ title=_\hat f(x) = \Bbb E_{D}[f(x; D)]_ />
偏差(Bias)
二(x)&space;=&space;(\hat&space;f(x)&space;-&space;y)二_ target=__blank_>二(x)&space;=&space;(\hat&space;f(x)&space;-&space;y)二_ title=_bias^二(x) = (\hat f(x) - y)^二_ />
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差(Variance)
(x)&space;=&space;\Bbb&space;E_{D}[(f(x;&space;D)&space;-&space;\hat&space;f(x))^二]_ target=_blank_>(x)&space;=&space;\Bbb&space;E{D}[(f(x;&space;D)&space;-&space;\hat&space;f(x))^二]_ title=_var(x) = \Bbb E_{D}[(f(x; D) - \hat f(x))^二]_ />
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响(模型的稳定性);
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
“偏差-方差分解”表明模型的泛化能力是由算法的能力、数据的充分性、任务本身的难度共同决定的。
避免欠拟合(刻画不够)
避免过拟合(刻画太细,泛化太差)
给定学习任务,
偏差和方差的关系和模型容量(模型复杂度)、欠拟合和过拟合的概念紧密相联
《深度学习》 权衡偏差和方差以最小化均方误差
甘肃机器学习培训总结 第六篇
什么是熵?
《深度学习》 信息论
信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。
该想法可描述为以下性质:
自信息(self-information)是一种量化以上性质的函数,定义一个事件 x 的自信息为:
当该对数的底数为 e 时,单位为奈特(nats,本书标准);当以 二 为底数时,单位为比特(bit)或香农(shannons)
自信息只处理单个的输出。此时,用信息熵(Information-entropy)来对整个概率分布中的不确定性总量进行量化:
(\mathrm{X}) = \mathbb{E}{\mathrm{X} \sim P}[I(x)] = - \sum{x \in \mathrm{X}}P(x) \log P(x)_ />
信息熵也称香农熵(Shannon entropy)
信息论中,记 零log零 = 零
P 对 Q 的 KL散度(Kullback-Leibler divergence):
_P(Q) = \mathbb{E}{\mathrm{X} \sim P} \left[ \log \frac{P(x)}{Q(x)} \right] = \sum{x \in \mathrm{X}}P(x) \left[ \log P(x) - \log Q(x) \right]_ />
KL 散度在信息论中度量的是那个直观量:
在离散型变量的情况下, KL 散度衡量的是,当我们使用一种被设计成能够使得概率分布 Q 产生的消息的长度最小的编码,发送包含由概率分布 P 产生的符号的消息时,所需要的额外信息量。
KL 散度的性质:
交叉熵(cross-entropy):
_P(Q) = - \mathbb{E}{\mathrm{X} \sim P} \log Q(x) = - \sum{x \in \mathrm{X}}P(x) \log Q(x)_ />
甘肃机器学习培训总结 第七篇
数学抽象
明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的是根据数据明确任务目标,是分类、还是回归,或者是聚类。
数据获取
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
对于分类问题,数据偏斜不能过于严重(平衡),不同类别的数据数量不要有数个数量级的差距。
对数据的量级要有一个评估,多少个样本,多少个特征,据此估算出内存需求。如果放不下就得考虑改进算法或者使用一些降维技巧,或者采用分布式计算。
预处理与特征选择
良好的数据要能够提取出良好的特征才能真正发挥效力。
预处理/数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。
模型训练与调优
直到这一步才用到我们上面说的算法进行训练。
现在很多算法都能够封装成黑盒使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。
模型诊断
如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题......
诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试, 进而达到最优状态。
模型融合/集成
一般来说,模型融合后都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。
上线运行
这一部分内容主要跟工程实现的相关性更大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。
这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有多实践,多积累项目经验,才会有自己更深刻的认识。
甘肃机器学习培训总结 第八篇
因为神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论你构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。
甘肃机器学习培训总结 第九篇
监督学习的任务是学习一个模型,对给定的输入预测相应的输出
这个模型的一般形式为一个决策函数或一个条件概率分布(后验概率):
监督学习模型可分为生成模型与判别模型
判别模型直接学习决策函数或者条件概率分布
生成模型学习的是联合概率分布P(X,Y)
,然后根据条件概率公式计算P(Y|X)
两者之间的联系
由生成模型可以得到判别模型,但由判别模型得不到生成模型。
当存在“隐变量”时,只能使用生成模型
隐变量:当我们找不到引起某一现象的原因时,就把这个在起作用,但无法确定的因素,叫“隐变量”
优缺点
常见模型
甘肃机器学习培训总结 第一零篇
支持度(Support)
X → Y
的支持度表示项集 {X,Y}
在总项集中出现的概率
其中,I
表示总事务集,num()
表示事务集中特定项集出现的次数,P(X)=num(X)/num(I)
置信度(Confidence)
X → Y
的置信度表示在先决条件 X
发生的情况下,由规则 X → Y
推出 Y
的概率。
提升度(Lift)
X → Y
的提升度表示含有 X
的条件下,同时含有 Y
的概率,与 Y
总体发生的概率之比。
\begin{align}&space;Lift(X&space;\rightarrow&space;Y)&space;&=&space;\frac{P(Y|X)}{P(Y)}&space;=&space;\frac{Confidence(X&space;\rightarrow&space;Y)}{num(Y)&space;/&space;num(I)}&space;\&space;&=&space;\frac{P(X&space;\cup&space;Y)}{P(X)P(Y)}&space;=&space;\frac{num(X&space;\cup&space;Y)num(I)}{num(X)num(Y)}&space;\end{align}_ target=__blank_>\begin{align}&space;Lift(X&space;\rightarrow&space;Y)&space;&=&space;\frac{P(Y|X)}{P(Y)}&space;=&space;\frac{Confidence(X&space;\rightarrow&space;Y)}{num(Y)&space;/&space;num(I)}&space;\&space;&=&space;\frac{P(X&space;\cup&space;Y)}{P(X)P(Y)}&space;=&space;\frac{num(X&space;\cup&space;Y)num(I)}{num(X)num(Y)}&space;\end{align}_ title=_\begin{align} Lift(X \rightarrow Y) &= \frac{P(Y|X)}{P(Y)} = \frac{Confidence(X \rightarrow Y)}{num(Y) / num(I)} \ &= \frac{P(X \cup Y)}{P(X)P(Y)} = \frac{num(X \cup Y)num(I)}{num(X)num(Y)} \end{align}_ />
满足最小支持度和最小置信度的规则,叫做“强关联规则”
最小支持度和最小置信度是人工设置的阈值
Lift(X→Y) > 一
的 X→Y 是有效的强关联规则
Lift(X→Y) <=一
的 X→Y 是有效的强关联规则
特别地,Lift(X→Y) = 一
时,X 与 Y 相互独立。
问题:已知有一零零零名顾客买年货,分为甲乙两组,每组各五零零人,其中甲组有五零零人买了茶叶,同时又有四五零人买了咖啡;乙组有四五零人买了咖啡,如表所示,请问“茶叶→咖啡”是一条有效的关联规则吗?
由于提升度 Lift(X→Y) = 一
,表示 X
与 Y
相互独立。也就是说,是否购买咖啡,与是否购买茶叶无关联。规则“茶叶→咖啡”不成立,或者说几乎没有关联,虽然它的置信度高达九零%,但它不是一条有效的关联规则。
甘肃机器学习培训总结 第一一篇
Grid Search
Random Search
与超参数对应的是参数。参数是可以在模型中通过BP(反向传播)进行更新学习的参数,例如各种权值矩阵,偏移量等等。超参数是需要进行程序员自己选择的参数,无法学习获得。
常见的超参数有模型(SVM,Softmax,Multi-layer Neural Network,…),迭代算法(Adam,SGD,…),学习率(learning rate)(不同的迭代算法还有各种不同的超参数,如beta一,beta二等等,但常见的做法是使用默认值,不进行调参),正则化方程的选择(L零,L一,L二),正则化系数,dropout的概率等等。
超参数的种类多,调节范围大,需要先进行简单的测试确定调参范围。
模型的选择很大程度上取决于具体的实际问题,但必须通过几项基本测试。
首先,模型必须可以正常运行,即代码编写正确。可以通过第一个epoch的loss估计,即估算第一个epoch的loss,并与实际结果比较。注意此过程需要设置正则项系数为零,因为正则项引入的loss难以估算。
其次,模型必须可以对于小数据集过拟合,即得到loss接近于零,accuracy接近于一的模型。否则应该尝试其他或者更复杂的模型。
最后,如果 val_acc 与 acc 相差很小,可能是因为模型复杂度不够,需要尝试更为复杂的模型。
loss 基本不变:学习率过低
loss 震动明显或者溢出:学习率过高
根据以上两条原则,可以得到学习率的大致范围。
根据以上两条原则,可以得到正则项系数的大致范围。
对于训练集再次进行切分,得到训练集以及验证集。通过训练集训练得到的模型,在验证集验证,从而确定超参数。(选取在验证集结果最好的超参数)
交叉验证的具体实例详见CS二三一n作业笔记:基于特征的图像分类之调参和CS二三一n作业笔记: KNN的交叉验证。
先通过数量少,间距大的粗调确定细调的大致范围。然后在小范围内部进行间距小,数量大的细调。
即在对数空间内部随机生成测试参数,而不是在原空间生成,通常用于学习率以及正则项系数等的调节。出发点是该超参数的指数项对于模型的结果影响更显著;而同阶的数据之间即便原域相差较大,对于模型结果的影响反而不如不同阶的数据差距大。
通过随机搜索,可以更好的发现趋势。图中所示的是通过随机搜索可以发现数据在某一维上的变化更加明显,得到明显的趋势。