一、基本概念
(1)数据集划分:
数据集:在机器学习任务中使用的一组数据
训练集:训练过程中使用的数据集
测试集:使用其进行预测的过程称为测试,使用的数据集称为测试集
交叉验证集:用于衡量训练过程中模型的好坏
(2)偏差/方差
偏差:衡量算法的期望预测与真实值之间的偏差成都,反映了模型本身的拟合能力。
方差:衡量同等大小的训练集的变动导致模型学习的变化,刻画了数据扰动所导致的影响。
模型越复杂,拟合能力就越好,模型的偏差就越好、方差大、过拟合;方差越小、模型过于简单、偏差大、欠拟合。
(3)算法分类
有监督学习:分类和回归,是预测问题的两种主要类型,分类的输出是离散的类别只,回归的输出是连续数值。
无监督学习:聚类,以相似性为基础,同一聚类中的对象相似度较高而不同聚类中的对象相似度较小。
(4)抽样方法
简单随机抽样:在简单随机抽样中,总体所有成员被选为样本的概率是相等的。
分层抽样:将总体分成不同的子群,然后对所有的子层进行随机抽样。
系统抽样:首先将总体中各单位按一定顺序排列,根据样本容量要求确定抽选间隔,然后随机确定起点,每隔一定的间隔抽取一个单位,以得到所需要的样本。
整群抽样:整群地抽选样本单位,对被抽选的各群进行全面调查的一种抽样。例:检验某种零件的质量时,不是逐个抽取零件,而是随机抽若干盒(每盒装有若干个零件),对所抽各盒零件进行全面检验。
(5)凹凸函数
凸集:若集合中任意两点连线上的点都在该集合中,则称该集合为凸集。
凹集:非凸集。函数的凹凸是由函数“上方”集合的凹凸性决定的,该集合为凸集则该函数为凸函数,相反该集合为凹集则该函数为凹函数。
凸函数:简单理解为在函数图像上任取两点,如果函数图像在这两点之间的部分总在连接着两点的线段上方,则为凸函数。
凹函数:简单理解为在函数图像上任取两点,如果函数图像在这两点之间的部分总在连接这两点的线段的下方,则为凹函数。
(6)超参数
学习模型中一般有两种参数,一种可以从学习中得到,为参数,另一中无法从数据里面得到,只能考人的经验来设定,这类参数叫做超参数。
模型超参数具体特征:常应用于估计模型参数的过程中;通常由实践者直接指定;可以使用启发式方法来设置;根据给定的预测建模问题而调整。
超参数举例:训练审计忘了的学习速率、迭代次数、批次大小、激活函数、神经元数量、支持向量机的C和𝜎超参数、K邻近中的K;
(7)超参数搜索
一般过程:划分数据集为训练集、验证集、测试集;在训练集上根据模型的性能指标对模型参数进行优化;在验证集上根据模型的性能指标对模型的超参数进行搜索(网络搜索、随机搜索);步骤2、3、交替迭代进行,最终确定模型的参数和超参数,并在测试集中评价模型的优劣。
二、最优化模型
(1)最优化模型概念
最优化问题指寻求最优解过程,打分函数为目标函数;最优化方法是机器学习中训练模型的基础,很大一部分内容就是通过最优化方法找到最合适的参数,使得模型的目标函数最优。
最优化问题定义:在给定约束条件下,选择最优的参数和使得目标函数最大化/最小化;
最优化问题三个基本要素:目标函数(用来衡量结果好坏)、参数值(未知因子且需要通过数据来确定)、约束条件(需要满足的限制条件)
注意:目标函数必须是凸函数才能保证优化后获得的最优结果是全局最优而不是局部最优,否则需要进行凸优化。
(2)凸优化
凸优化定义:满足两个条件才需要我们做凸优化处理:约束条件为凸集,目标函数为凸函数;
非凸优化问题转化为凸优化问题的方法:修改目标函数,使之转化为凸函数;抛弃一些约束条件,使新的可行域为凸集并且包含原可行域。
(3)损失函数(Loss function)
损失函数:用来估量模型的预测值与真实值的不一致成都,是一个非负实值函数。损失函数越小,模型的鲁棒性越好。
损失函数是经验风险函数的核心也是结构风险函数的重要组成部分。模型的风险结构通常包括风险项和正则项。
0-1损失函数:当预测错误时,损失函数值为1,预测正确时,损失函数值不考虑预测值和真实值的误差程度,只要预测错误预测错误差一点和差很多都一样。
平方损失函数(最小二乘法):预测值与真实值差的平方和;基本原则为最优拟合曲线应该使得所有点到回归直线的距离和最小,通常使用欧几里得距离进行距离的度量。常被用于线性回归中,将回归的问题转化为了凸优化的问题。
最小二乘法在线性回归中假设样本和噪声服从高斯分布(中心极限定理),最后通过极大虽然估计(MLE)可以推导出最小乘子式。当求取均方误差(MSE)时,对平方损失函数求平均可以用来作为衡量回归模型的指标。
绝对值函数:意义与平方损失函数相似,只不过取了绝对值,差距不会被平方缩放。
对数损失函数:用到极大似然估计的思想,由于损失函数(log函数)是递增的函数,P越大函数值越大,进而预测正确的概率越高,其损失值越小,因此公式前加负号取反。
对数函数的应用:逻辑回归的损失函数就是对数函数,假设样本服从伯努利分布,然后求得满足该分布的似然函数,接着用对数求极值。
指数损失函数(Exponential Loss)主要用于Boosting算法中的Adaboost算法,向前分布算法的特例,是一个加和模型。
铰链损失函数(Hinge Loss)主要用于SVM,有时候也被称为最大边界损失(max-margin loss)
(4)在最优化模型分类
根据约束条件分类:无约束优化、等式约束的优化、不等式约束的优化
无约束优化:求解方法主要有解析法和直接法;直接法为费马定理(Fermat);解析法主要有梯度下降法、牛顿法。最常用的方法为梯度下降法,主要应用的算法为线性回归、逻辑回归、神经网络等。
梯度下降常用方法三种:批量梯度下降(BGD)、随机梯度下降(SGD)、小批量梯度下降(MBGD);
等式约束优化:主要解决方法为消元法和拉格朗日乘子法。拉格朗日乘子法将约束条件放到目标函数中,从而将有约束优化问题转为无约束优化问题。待约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数。常常会结合拉格朗日对偶法将不易求解的优化问题转化为易求解的优化。
不等式约束优化:主要通过KKT条件(Karush-Kuhn-Tucker Condition)将其转化成无约束优化问题求解。KKT三条件:条件1拉格朗日乘子(λ)求导为0的条件;条件2h𝑗 (x)=0,(j=1,2,…,m);条件3:λg𝑖(x)=0,(i=1,2,…,m),λ≥0;
SVM算法线性优化同时使用拉格朗日乘子法和KKT条件优化。
(5)正则化:
奥卡姆剃刀原理:在所有能解释数据的模型中,越简单的越靠谱。
正则化分为L1正则化和L2正则化。(L2)W的二次平方回归叫做岭回归,(L1)W的绝对值回归项叫做Lasso回归。
L1、L2正则化区别:
岭回归中的L2正则项能将一些W变成很小的值,而Lasso回归中的正则项得到的w是稀疏的;
Lasso回归会趋向于减少特征数量,相当于删除提特征,类似于降维,二岭回归会把一些这种权重调小,这些特征都是接近于0,因此Lasso回归在特征选择时候有用,而岭回归就只是一种规则化。
在所有特征中如果只有少数特征起重要作用的情况下,选择Lasso回归比较合适,它能自动选择特征。而大部分特征都能起作用而且作用很平均,那么岭回归更合适。
(6)超参数调优工具:
GridSearchCV:
尝试当前超参数值列表的每一种组合,并根据交叉验证分数选择最佳组合。缺点:会尝试所有的组合,所以需要很多时间;优点:能够选出范围内最好的超参数
RandomizedSearchCV:
尝试一系列值的随机组合,必须定义迭代次数。它擅长测试范围广泛的值,通常它会很快达到非常好的组合,但是它不能保证给出最佳参数组合,因为并不是所有的参数值都会被尝试过,推荐用于大数据集或者要调整的参数很多的情形。
三、模型评估与选择
(1)模型评估概念
训练集误差:训练误差/经验误差;新样本上误差:泛化误差,机器学习目的:泛化误差小的学习器,然而实际应用中职能使得训练误差尽量小。所以在构建模型时要拆分数据集。
在训练过程中使用验证数据集来评估模型并据此更新超参数,训练结束中使用测试数据集评估训练好的模型性能。
(2)数据集拆分
拆分为三类,训练数据集(构建机器学习模型);验证数据集(辅助构建模型,用于构建过程中评估模型,为模型提供无偏估计,进而调整模型超参数);测试数据集(用来评估训练好的模型性能)
数据集划分方法:留出法、K-折交叉验证法、自助法。方法应用前提假设:数据集是随机抽取且独立同分布、分布是平稳且不会随时间发生变化;始终从同一分布中抽取样本。(其中请勿对测试数据集进行训练)
留出法(hold-out):将数据集划分为互斥的集合,一个为训练集一个为测试集,通常选择70%作为训练集,30%作为测试集。需要保持划分后集合数据分布的一致性。
交叉验证法:将数据集划分为K各大小相同的互斥子集,同样尽可能保持数据分布一致性,即才有用分层抽样方式获得这些子集。目的:通常结果对训练数据好,训练数据之外的拟合程度较差,用于评价模型的泛化能力从而进行模型选择。
使用单独的测试集或者验证集局限性:无法完全展现评估结果不确定性、增加模型性能评估偏差、分割的测试集样本规模太小、可能需要每一个可能存在的数据点来确定模型值、测试集具备极大的不确定性、重采样方法可对模型在未知样本上的性能进行更合理的预测。在实际应用中,会选择K折交叉验证法的方式来评估模型,其偏差低、性能评估变化小。
K折交叉验证法:思想:每次用K-1个子集的并集作为训练集,余下子集作为测试集,最终返回K次测试结果的均值。K常用取值为5,10,20;一般用于模型调优,找到使得模型泛化性能最优的超参数。如果训练集相对较小则增大K值,若训练集相对较大,则减小K值。
自助法:给定包含m个样本的数据集D,每次随机从其中选出一个样本放D’,且样本放回D中,重复执行m次生成m个样本的数据集D’。
(3)回归模型评估
均方误差(Mean Squared Error,MSE):预测连续值问题,MSE越小说明预测模型描述实验数据具有更好精确度;
均方根误差(Root Mean Squard Error,RMSE):标准误差是均方误差的算术平方根。标准误差能够很好地反 映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。
平均绝对误差(Mean Absolute Error,MAE):平均绝对误差是绝对误差的平均值,平均绝对误差能更好地反映预测值误差的实际情况。
R-squared:𝑅2介于0~1之间,越接近1,回归拟合效果越好,一般认为超过0.8的模型拟合优度比较高。
调整R-squared(Adjusted R-Square):n是样本数量,p是特征数量。Adjusted R-Squared抵消样本数量对R-Squared的影响,做到了真正的0~1,越大越好。
(4)分类模型评估
混淆矩阵概念:𝑃:正元组,感兴趣的主要类的元组。𝑁:负元组,其他元组。
TP:真正例,被分类器正确分类的正元组。𝑇𝑁:真负例,被分类器正确分类的负元组。
𝐹𝑃:假正例,被错误地标记为正元组的负元组。𝐹𝑁:假负例,被错误地标记为负元组的正元组。
精度/错误率:最常用在分类问题中,即预测离散值的问题;错误率是预测错误的样本数占样本总数的比例,又被称为汉明损失(Hamming loss)。精度则是分类正确的样本数占样本总数的比例,又被称为预测准确率(Accuracy)。错误率+精度 = 1
查准率/查全率:查准率(precision):在所判别的正例结果中,真正正例的比例。可表示为:TP/(TP+FP)。查准率表示分类算法预测是否分类为1中实际为0的误报成分(真正例样本数/预测结果是正例的样本数)。查全率(Recall):又被称为召回率,是指分类器预测为正例的样本占实际正例样本的比例。可表示为:TP/(TP+FN)。查全率则表示算法预测是否漏掉了一些该分为1的,却被分为0的成分,也就是漏报的(真正例样本数/真实是正例的样本数)。
综合评价(F-Score):β用于调整权重,当β = 1时两者权重相同,简称为F1 – Score,此时精确率和召回率都很重要,权重相同。若认为Precision更重要,则减小β。若认为Recall更重要,则增大β。
PR曲线:PR曲线是描述查准率/查全率变化的曲线,以查准率(precision)和查全率(recall)分别作为纵、横轴坐标。
ROC曲线:ROC曲线与PR曲线十分类似,都是按照排序的顺序逐一按照正例预测,不同的是ROC曲线以“假正例率”(False Positive Rate,简称FPR)为横轴,以“真正例率”(True Positive Rate,简称 TPR)为纵轴,ROC偏重研究基于测试样本评估值的排序好坏。
ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。
AUC面积:进行模型的性能比较时,若一个学习器A的ROC曲线被另外一个学习器B的ROC曲线完全包住,则称B的性能优于A。若A和B的曲线发生了交叉,则谁的曲线与坐标轴围成的面积大,谁的性能更优。ROC曲线下的面积定义为AUC(Area Under ROC Curve)。
AUC越大,证明分类的质量越好,AUC为1时,证明所有正例排在了负例前面,AUC为0时,所有的负例排在了正例的前面。
(5)聚类模型评估
评价方式一般分为两类:分析外部信息(能看得见的直观信息,聚类结束后的类比号)、分析内部信息(熵、纯度这类数学评价指标,例如误差平方和(SSE)、手肘法(Elbow method)、轮廓系数法(Silhouette Coefficient));
误差平方和(SSE):SSE是所有样本的聚类误差,代表了聚类效果的好坏。
手肘法核心思想:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和SSE自然会逐渐变小。当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状。
轮廓系数(Silhonette):适用于实际类别信息未知的情况,对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。轮廓系数的取值范围是[-1,1],同类别样本距离越相近且不同类别样本距离越远时,轮廓系数越高。
(6)关联模型评估
支持度(SUPPORT):表示某个项集出现的频率,也就是包含该项集的交易数与总交易数的比例。支持度为集合在总项集中出现的概率。
置信度(CONFIDENCE):表示当A项出现时B项同时出现的频率。换言之,置信度指同时包含A项和B项的交易数与包含A项的交易数之比。置信度表示在先决条件A发生的情况下,由关联规则A-B推出B的概率。
提升度(LIFT):指A项和B项一同出现的频率,但同时要考虑这两项各自出现的频率。提升度反映了关联规则中的A与B的相关性,提升度大于1且越高表明正相关性越高,提升度小于1且越低表明负相关性越高,提升度等于1表明没有相关性。负值表示商品之间具有相互排斥的作用。
杠杆率(Leverage):和提升度类似的概念,但使用的不是比率而是使用差。杠杆率测量的是,A和B在数据集 中一起出现的概率与A和B相互统计独立(statistically independent)时一起出现的概率,这两者的差(difference)。当A和B相互统计独立时,杠杆率为0。如果A和B具有某种关系,杠杆率将大于0。较大的杠杆率表示A和B之间有更强的联系。
确信度(Conviction):表示A出现而B不出现的概率,也就是规则预测错误的概率。确信度也用来衡量A和B的独立性,这个值越大,A、B越关联,A、B的独立性越小。