赞
踩
机器学习即Machine Learning,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。目的是让计算机模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断完善自身的性能。简单来讲,机器学习就是人们通过提供大量的相关数据来训练机器。
- 人工智能:人工智能涵盖范围最广,任何学习都可以叫做人工智能,它关注的问题和方法也是最复杂,包括知识推理、逻辑规划以及机器人等方面。人工智能又可分为:弱人工智能(AlphaGo只会下棋不会辨别猫狗)、强人工智能(人类能干的脑力活动,机器都能)、超人工智能(几乎所有领域都比人类的大脑聪明)。
- 机器学习:实现人工智能的方法,需要手动设计特征和模型,并学习数据分布。计算机利用已有的数据(经验),得出了某种模型,并利用此模型预测未来的一种方法。
- 深度学习:侧重于从大量数据中直接学习高维、复杂的数据特征。原本是从机器学习的神经网络子算法分支发展出来的一系列成果,知识体系一脉相承,因为过于火热,所以另起名字“单飞”了。
机器学习按照任务分类:
- 回归模型:预测某个无法枚举的数值,例如明天的股价。
- 分类模型:将样本分为两类或者多类,例如信用风险识别中的异常识别。
- 结构化学习模型:输出的不再是向量,而是其他结构,例如将给定的长文本聚集成短的总结。
机器学习按照学习方式划分:
- 有监督学习:如果训练样本带有标签即为有监督学习,即通过已有的训练样本(即已知数据以及其对应的输出)来训练网络从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果,对输出结果进行简单的判断从而实现分类的目的,那么这个模型也就可以对未知数据进行分类。
- 半监督学习:如果训练样本部分有标签,部分无标签则是半监督学习。半监督学习在训练阶段结合了大量未标记的数据和少量标签数据。与使用所有标签数据的模型相比,使用训练集的训模型在训练时可以更为精准,而且训练成本更低。
- 无监督学习:如果训练样本全部无标签,则是无监督学习。例如聚类算法。详细地讲,就是根据样本间的相似性对样本集进行聚类试图使类内差距最小化,类间差距最大化。
- 强化学习:强化学习是智能体(Agent)通过与环境进行交互获得的奖项来指导自己的行为,最终目标是使智能体获得最大的奖赏。与监督学习不同的是,强化学习中由环境提供的强化信号是对产生动作的好坏做一种评价,而不是告诉强化学习系统如何去产生正确的动作。
- 迁移学习:迁移学习是运用已存有的知识或者数据对不同但有关联的领域问题进行求解的机器学习方法。主要目的是通过迁移已有的知识或者数据来解决目标领域中有标签样本数据比较少甚至没有的学习问题。
判别式模型和生成式模型:
- 判别方法:由数据直接学习决策函数Y=f(X),或者由条件分布概率P(X|Y)作为预测模型为判别模式。常见的判别模型有:线性回归、boosting、SVN、决策树、感知机、线性判别分析(LDA)、逻辑斯蒂回归等算法。
- 生成方法:由数据学习x和y的联合概率密度分布函数P(Y,X),然后通过贝叶斯公式求出概率分布P(Y|X)作为预测的模型为生成模型。常见的生成模型有朴素贝叶斯、隐马尔克可夫模型、高斯混合模型、文档主题生成模型(LDA)等。
框架体系 内在逻辑 算法 回归算法 线性回归 单变量线性回归算法、多变量线性回归算法、岭回归、Lasso回归等 分类算法 从线性回归到分类 逻辑回归算法 基于后验概率分类 贝叶斯分类算法 基于概率、损益值的分类 决策树分类及其集成学习算法 K均值算法、层次聚类
K临近算法、支持向量机 基于仿生物技术的分类 人工神经网络 无监督算法 聚类 K均值算法、层次聚类
数据集(样本集):一组数据的集合被称为一个“数据集”,其中每一条单独的数据,使关于一个事件或对象的描述,称为一个“样本”或“示例”。
- 训练集:帮助我们训练模型,简单的说就是通过训练集的数据让我们确定拟合曲线的参数。它是总的数据集中用来训练模型的部分。根据数量的大小,通常只会取数据集中的一部分来当训练集。
- 测试集:为了测试已经训练好的模型的精确度,用来测试、评估模型泛化能力的部分,不会用在模型训练部分。
- 验证集:也叫做开发集,用来做模型选择,即做模型的最终优化及确定的,用来辅助我们的模型的构建,即训练超参数,可选;也是比较特殊的一部分数据,主要为了防止训练出来的模型只对训练集有效,也是用来调整模型具体参数的,不参与训练。
- 三者比例:机器学习(60%,20%,20%;70%,10%,20%)深度学习(98%,1%,1% (假设百万条数据))。
维度:维度指的是样本的数量或特征的数量,一般无特别说明,指的是特征的数量。除了索引之外,一个特征是一维,两个特征是二维,n个特征是n维。对于数组和Series来说,维度就是方法shape返回值的长度。对图像来说,维度就是图像中特征向量的数量。
降维:机器学习中的“降维”,指的是降低特征矩阵中特征的数量。而降维的目的是为了让算法运算更快,效果更好或者是为了更好的数据可视化。
标签:标签是要预测的事物,即简单线性回归中的y变量。有时根据数据是否有标签,也把数据分为有标签数据和无标签数据。
特征:特征是输入变量,反应事件或对象在某些方面的表现或性质,也称“属性”。即简单线性回归中的x变量。简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征。
特征向量:空间中的每个点都对应一个坐标向量,通常把组成样本的坐标向量称为一个“特征向量”。特征向量可以理解为是坐标轴,一个特征向量定义一条直线,是一维,两个相互垂直的特征向量定义一个平面,即一个直角坐标系,就是二维,三个互相垂直的特征向量定义一个空间,即一个立方直角坐标系,就是三维。三个以上的特征向量相互垂直,定义人眼无法看见,也无法想象的高维空间。
模型:简单地可以理解为定义了特征与标签之间关系的一种函数。就好像观察到大风和闪电,就会预测将会下雨。而模型就是通过已知的数据和目标,通过调节算法参数,即训练数据,最后得到针对这样的数据映射出预测结果。至于“训练的是什么”,“参数是什么”,这依赖于所选取的模型“模型”。而训练的结果简单来说就是得到一组模型参数,最后使用这些参数的模型来完成任务。
分类:分类即确定一个点的类别,是一个有监督学习过程,即目标样本有哪些类别是已知的,通过分类就是把每一个样本分到对应的类别之中。由于必须事先知道各个类别的信息,所有待分类的样本都是有标签的,因此分类算法也有了其局限性,当上述条件无法满足时,就需要尝试聚类分析。常用的分类算法是KNN。虽然大家都不喜欢被分类,被贴上标签,但数据研究的基础正是给数据“贴标签”进行分类。类别分得越精准,得到的结果越有价值。
回归:简单来说,连续变量的预测或定量输出是回归,而如果要预测的值是离散的即一个个标签或定型输出则称为分类,例如,预测明天的气温是多少度,这是一个回归任务,预测明天是阴、晴还是雨,就是一个分类任务。
二分类:对只涉及两个类别的分类任务,可以称为“二分类”,通常称其中一个类为“正类”,另外一个为“负类”。若涉及多个类别时,则称为“多分类”。
聚类:聚类是机器学习中一种重要的无监督算法,它可以将数据点归结为一系列特定的组合。理论上归为一类的数据点具有相同的特性,而不同类别的数据点则具有不相同的属性。在数据科学中,聚类会从数据中发掘出很多分析和理解的视角,让我们更深入地把握数据资源的价值,并据此指导生产生活。常用的聚类算法:K均值聚类、均值漂移算法、基于密度的聚类算法、利用高斯混合模型进行最大期望估计和凝聚层次聚类。
监督学习和无监督学习:根据训练数据是否拥有标记信息,学习任务可大致分为两大类:监督学习和无监督学习,分类和回归属于前者代表,聚类则是后者代表。
泛化能力:泛化能力是指模型利用新的没见过的数据而不是用于训练的数据做出正确的预测的能力。泛化能力针对的其实是学习方法,它用于衡量该学习方法学习到的模型在整个样本空间上的表现。
偏差:偏差反应的是模型在样本上的输出与真实值之间的误差,即算法的预测的平均值和真实值的关系,偏差越大,越偏离真实数据,表明模型的拟合能力越弱。可以通过引入更多的相关特征、采用多项式特征和减少正则化参数 来降低高偏差。
方差:方差反应的是模型每一次输出结果与模型输出期望之间的误差,即不同数据集上的预测值和所有数据集上的平均预测值之间的关系,用来衡量随机变量或一组数据时离散程度的度量,方差越大,数据的分布越分散,表明了数据越不稳定。可以通过采集更多的样本数据、减少特征数量,取出非主要的特征和增加正则化参数来降低高方差。
归纳偏好:归纳偏好是机器学习算法在学习过程中对某种类型假设的偏好,通俗来讲就是“什么模型更好”这么一个问题。在机器学习算法中,对某些属性可能更加有“偏好”,或者说更加在乎,给的权重更大,这将导致我们更偏向于得到这种模型的这么一个问题。机器学习中常见的归纳偏置有最大条件独立性、最小描述长度、最少特征数、最大边界和最近邻居等。
过拟合:过度拟合是指创建的模型与训练数据非常匹配,过分依赖训练数据,在训练集上表现好,但是在测试集上效果差,也就是说在已知的数据集和中非常好,但是在添加一些新的数据进行来训练效果就会差很多,造成这样的原因是考虑因素太多,超出自变量的维度过多。通常具有低偏差和高方差,以至于模型无法对新数据进行正确的预测。
欠拟合:欠拟合是指创建的模型与训练数据匹配不完全,即未能很好地学习训练数据中的关系,模型拟合不够,在训练集上表现效果差,没有充分的利用数据,预测的准确度低,通常具有高偏差和低方差,以至于模型不能很好地预测新数据。
过拟合产生的原因:
- 在训练时经常会出现过拟合的问题,具体表现是在训练数据上误差渐渐减小,可是在验证集上的误差反而逐渐增大。详细来讲就是在训练初期,由于训练不足,学习器的拟合能力不够强,偏差比较大。
- 随着训练程度的加深,学习器的你和能力逐渐增强,训练数据的扰动也能够渐渐被机器学到。而充分训练后,学习器的拟合能力已非常强,训练数据的轻微扰动都会导致学习器发生显著变化,进而产生过拟合。
过拟合和欠拟合的原因:
- 欠拟合指模型不能在训练集上获得足够低的训练误差,往往是由于特征维度过少,导致拟合的函数无法满足训练集,导致误差较大。
解决欠拟合的方法:
- 添加新的特征:当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘组合特征等新的特征,往往能够取得更好的效果。
- 增加模型复杂度:简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。
- 减小正则化项的系数:正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。
解决过拟合的方法:
- 获得更多的训练数据:使用更多的训练数据是解决过拟合问题最有效的手段,因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。
- 降维:即丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA)。
- 集成学习方法:集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险。
- 正则化:正则化(regularization)的技术,保留所有的特征,但是减少参数的大小,它可以改善或者减少过拟合问题。
正则化:
正则化:
可以看到在正则化的限制之下, 正则化给出的最优解 是使解更加靠近原点,也就是说 正则化能降低参数范数的总和。
正则化给出的最优解是使解更加靠近某些轴,而其他的轴为0,所以 正则化能使得到的参数稀疏化。
Elastic Net(弹性网络):
为正则化系数,调整正则化项与训练误差的比例,。
为比例系数,调整 正则化与 正则化的比例。
衡量模型泛化能力的评价标准就是性能度量,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。在性能度量时,回归问题和分类问题用的指标往往不同,所以需要分开讨论。
- 损失函数(Loss Function)度量单样本预测的错误程度,损失函数值越小,模型就越好。常用的损失函数包括:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等。
- 代价函数(Cost Function)度量全部样本集的平均误差。常用的代价函数包括均方误差、均方根误差、平均绝对误差等。
- 目标函数(Object Function)代价函数和正则化函数,最终要优化的函数。
(1)均方误差:
(2)均方根误差:均方差误差是观测值与真值偏差的平方和与观测次数m比值的平方根,用来衡量观测值同真值之间的偏差。如果存在个别偏离程度非常大的离群点时,即使离群点数量非常少,也会让RMSE指标变得很差。
(3)和方误差:
(4)Mean Absolute Error(MAE):直接计算模型输出与真实值之间的平均绝对误差。
(5)平均绝对百分比误差(MAPE):不仅考虑预测值与真实值的误差,还考虑了误差与真实值之间的比例,比RMSE具有更好的鲁棒性。
(6)平均平方百分比误差:
(7)决定系数:
越接近1,说明模型拟合的越好。
其中, 和 分别表示第 个样本的真实值和预测值, 为样本个数。
预测为真 预测为假 真实为真 TP FN 真实为假 FP TN (1)准确率(A)
(2)精确率(P)
(3)召回率(R)
(4)真正例率(TPR,正例被判断为正例的概率)
(5)假正例率(FPR,反例被判断为正例的概率)
(7)综合评价指标(F,F-Measure)
在评价的时候,当然是希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,只搜索出了一个结果,那么Precision就是100%,但是Recall为1/6就很低;而如果我们抽取10个,那么比如Recall是100%,但是Precision为6/10,相对来说就会比较低。
P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score):
当a=1时,就变成了常见的F1评价指标:
(8)错误率和准确率
e=1n∑ni=0I(f(xi≠yi))
acc=1−e
(1)均一性:类似于精确率,一个簇中只包含一个类别的样本,则满足均一性。其实也可以认为就是正确率(每个聚簇中正确分类的样本数占该聚簇总样本数的比例和)。
p=1k∑ki=1N(Ci==Ki)N(Ki) (2)完整性:类似于召回率,同类别样本被归类到相同簇中,则满足完整性(每个聚簇中正确分类的样本数占该类型的总样本数比例的和)。
r=1k∑ki=1N(Ci==Ki)N(Ci) (3)V-measure:均一性和完整性的加权平均。
V=(1+β)2∗prβ2∗p+r (4)轮廓系数:
样本
i 的轮廓系数:s(i)=b(i)−a(i)max{a(i),b(i)} 簇内不相似度:计算样本
i 到同簇其它样本的平均距离为a(i) ,应尽可能小。簇间不相似度:计算样本
i 到其它簇Cj 的所有样本的平均距离b(i) ,应尽可能大。轮廓系数
s(i) 值越接近1表示样本i 聚类越合理,越接近-1,表示样本i 应该分类到另外的簇中,近似为0,表示样本i 应该在边界上;所有样本的s(i) 的均值被成为聚类结果的轮廓系数。假设数据集被拆分为4个簇,样本
i 对应的a(i) 值就是所有C1 中其他样本点与样本i 的距离平均值;样本对应的b(i) 值分两步计算,首先计算该点分别到C2 ,C3 和C4 中样本点的平均距离,然后将三个平均值中的最小值作为b(i) 的度量。(5)轮廓系数:调整兰德系数数据集
S 共有N 个元素,两个聚类结果分别是:X={X1,X2,...,Xr} ,Y={Y1,Y2,...,Ys} , 和 的元素个数为: 。记nij=|Xi∩Yi| 。
ARI=∑i,jC2nij−[(∑iC2ai)⋅(∑iC2bi)]/C2n12[(∑iC2ai)+(∑iC2bi)]−[(∑iC2ai)⋅(∑iC2bi)]/C2n ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见特征工程在一个机器学习项目中的重要位置。
定义:是把原始数据转变为模型的训练数据的过程。
目的:获取更好的训练数据特征,使得机器学习模型逼近这个上限。
作用:使模型的性能得到提升。
内容:特征选择/提取、特征降维、特征构建等。
在原始数据集中的特征的形式不适合直接进行建模时,使用一个或多个原特征构造新的特征可能会比直接使用原有特征更为有效。
数据规范化:数据规范化主要是用来解决数据的量纲不同的问题,使不同的数据转换到同一规格。
- 提升模型精度:不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。
- 加速模型收敛:最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。
常见的无量钢化方法有标准化和区间缩放法:
- 标准化的假设前提是特征值服从正态分布,标准化后,其转换成标准正态分布。处理后的数据均值为0,方差为1。数据标准化为了不同特征之间具备可比性,经过标准化变换之后的特征数据分布没有发生改变。当数据特征取值范围或单位差异较大时,最好是做一下标准化处理。
- 归一化利用了边界值信息,将特征的取值区间缩放到某个特点的范围,例如[0,1]等。数据归一化的目的是使得各特征对目标变量的影响一致,会将特征数据进行伸缩变化,所以数据归一化是会改变特征数据分布的。
需要进行数据归一化/标准化:线性模型,如基于距离度量的模型包括KNN(K近邻)、K-means聚类、感知机和SVM。另外,线性回归类的几个模型一般情况下也是需要做数据归一化/标准化处理的。
不需要进行数据归一化/标准化:决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感(以C4.5为例,决策树在进行节点分裂时主要依据数据集D关于特征x的信息增益比,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益),如随机森林、XGBoost、LightGBM等树模型,以及朴素贝叶斯,以上这些模型一般不需要做数据归一化/标准化处理。
理论上,标准化适用于服从正态分布的数据,目前很多工程依赖大数据,所以在样本足够多的情况下,工程师往往直接使用标准化对数据进行无量纲化预处理。在深度学习里,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。
标准化:它会将原始数据映射到均值为0、标准化为1的分布上。如果不进行数据标准化,有些特征(值很大)将会对损失函数影响更大,使得其他值比较小的特征重要性降低。因此,数据标准化可以使得每个特征的重要性更加均衡。
x′=x−μσ
归一化适用于数据量比较小的工程,对数值类型的特征做归一化可以将所有特征都统一到一个大致相同的数值区间内,就是利用两个最值进行缩放。
x′=x−minmax−min
序号编码,二进制编码,哑编码与独热编码
如果某一列数据是一些特征,例如中国、美国、德国这种国家属性(性别、血型等只在有限选项内取值的特征),那就无法直接将这种信息应用到回归或分类里,所以要对数据进行哑编码或者独热编码,目的就是针对定性的特征进行处理然后得到可以用来训练的特征。
【序号编码】例如成绩,可以分为:低、中、高三挡,并且存在高>中>低排序关系。可以使用3、2、1分别表示。
【二进制编码】例如血型:A、B、AB、O,可用二进制数:00,01,10,11 分别表示。
哑编码与独热编码的区别主要是:哑编码任意去除一个状态位。这两种方式将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点,使得特征之间的距离计算更加合理。
【哑编码与独热编码】假设有一个特征国家,有中国、美国、德国、法国四种可能取值,那么独热编码会用一个四维的特征向量表示该特征,其中每个维度对应一个国家,也叫作状态位,独热编码保证四个状态位有一个位置是1,其余是0。而哑编码的只需要三个状态位,当三个状态位都是0时,根据既不是中国又不是美国、德国的逻辑,就可以确认是法国了。
缺失值处理
缺失值补充最常用的方法是:均值、就近补齐、K最近距离填充等方法。有时候缺失值也是一种特征,可以补充一列将将数据确实与否赋值为0、1,但这个需要根据实际情况判断。
(1)如果缺失值较多时,可以直接舍弃该列特征,否则可能会带来较大的噪声,从而对结果造成不良影响。
(2)如果缺失值较少时(如果少于10%),可以考虑对缺失值进行填充:
- 用一个异常值填充并将缺失值作为一个特征处理(比如0或-99999)。
- 用均值或者条件均值填充,如果数据是不平衡的,那么应该使用条件均值填充,条件均值指的是与缺失值所属标签相同的所有数据的均值。
- 用相邻数据填充。
- 利用插值算法。
- 数据拟合,就是将缺失值作为一个预测问题来处理。简单来讲就是将数据分为正常数据和缺失数据,对有值的数据采用随机森林等方法拟合,然后对有缺失值的数据用预测值来填充。
定量特征二值化:设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。
分箱:一般在建立分类模型时,需要对连续变量离散化,特征离散化后,模型会更稳定,降低了模型过拟合的风险。
转换特征构造:
相对于聚合特征构造依赖于多个特征的分组统计,通常依赖于对于特征本身的变换。转换特征构造使用单一特征或多个特征进行变换后的结果作为新的特征。
常见的转换方法有单调转换(幂变换、log变换、绝对值等)、线性组合、多项式组合、比例、排名编码和异或值等。
此外,由于业务的需求,一些指标特征也需要基于业务理解进行特征构造。
- 基于单价和销售量计算销售额。
- 基于原价和售价计算利润。
- 基于不同月份的销售额计算环比或同比销售额增长/下降率。
提取对象:原始数据(特征提取一般是在特征选择之前)
提取目的:自动地构建新的特征,将原始数据转换为一组具有明显物理意义(比如几何特征、纹理特征)或者统计意义的特征。
主成分分析法(PCA):PCA 是降维最经典的方法,它旨在是找到数据中的主成分,并利
用这些主成分来表征原始数据,从而达到降维的目的。PCA 的思想是通过坐标轴转换,寻找数据分布的最优子空间。PCA是一个将数据变换到新坐标系统中的线性变换,使得任何数据投影的第一大方差在第一个坐标(第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。
PCA主要目的是为让映射后得到的向量具有最大的不相关性。详细地讲就是PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方法的重要性。
(1)计算相关系数矩阵
为原变量 与 的相关系数,其计算公式为:
(2)计算特征值与特征向量
解特征方程 ,用雅克比法(Jacobi)求出特征值,并使其按大小顺序排列 ;特征值 对应的单位特征项向量为 。
(3)计算主成分贡献率及累计贡献率
对应单位特征向量 就是主成分 的关于原变量的系数,即 。
贡献率:
累计贡献率:
一般累计贡献率达到 85%~95% 的特征值 所对应的第1、第2、...、第m个主成分 。
(4)计算主成分载荷
主成分载荷是反应主成分 与变量 之间的相互关联程度。
,需要的注意的是实际应用时,指标的量纲住住不同,所以在主成分计算之前应先消除量纲的影响。将变量标准化后再计算其协方差矩阵。
独立成分分析(ICA):ICA独立成分分析,获得的是相互独立的属性。ICA算法本质寻找一
个线性变换 本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。