机器学习特征选取时需要所有数据吗

点击阅读原文
机器学习之数据清洗与特征提取
7月11日 发布,来源:
导语:本文详细的解释了机器学习中,经常会用到数据清洗与特征提取的方法PCA,从理论、数据、代码三个层次予以分析。
机器学习,这个名词大家都耳熟能详。虽然这个概念很早就被人提出来了,但是鉴于科技水平的落后,一直发展的比较缓慢。但是,近些年随着计算机硬件能力的大幅度提升,这一概念慢慢地回到我们的视野,而且发展速度之快令很多人刮目相看。尤其这两年,阿法狗在围棋届的神勇表现,给人在此领域有了巨大的遐想空间。
所谓机器学习,一般专业一点的描述其是:机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习这门技术是多种技术的结合。而在这个结合体中,如何进行数据分析处理是个人认为最核心的内容。通常在机器学习中,我们指的数据分析是,从一大堆数据中,筛选出一些有意义的数据,推断出一个潜在的可能结论。得出这个不知道正确与否的结论,其经过的步骤通常是:
1、预处理:把数据处理成一些有意义的特征,这一步的目的主要是为了降维。
2、建模:这部分主要是建立模型(通常是曲线的拟合),为分类器搭建一个可能的边界。
3、分类器处理:根据模型把数据分类,并进行数据结论的预测。
本文讲的主要是数据的预处理(降维),而这里采用的方式是PCA。
PCA的个人理论分析:
假设有一个学生信息管理系统,里面需要存储人性别的字段,我们在数据库里可以有M、F两个字段,用1、0分别代表是、否。当是男学生的时候其中M列为1,F列为0,为女生时M列为0,F列为1。我们发现,对任意一条记录,当M为1,F必然为0,反之也是如此。因此实际过程,我们把M列或F列去掉也不会丢失任何信息,因为我们可以反推出结论。这种情况下的M、F列的关联比是最高的,是100%。
再举另外一个例子,小明开了家店铺,他每天在统计其店铺的访问量V和成交量D。可以发现,往往V多的时候,D通常也多。D少的时候,V通常也很少。可以猜到V和D是有种必然的联系,但又没有绝对的联系。此时小明如果想根据V、D来衡量这一天的价值,往往可以根据一些历史数据来计算出V、D的关联比。拍脑门说一个,如果关联比大于80%,那么可以取VD其中任意一个即可衡量当天价值。这样就达到了降维的效果。
当然降维并非只能在比如说2维数据[V,D]中选取其中的1维[V]作为特征值,它有可能是在V+D的情况下,使得对[V, D]的关联比最大。
但是PCA思想就是如此。简单点说:假设有x1、x2、x3…xn维数据,我们想把数据降到m维,我们可以根据这n维的历史数据,算出一个与x1…xn相关m维数据,使得这个m维数据对历史数据的关联比达到最大。
假设我们有一组二维数据
如果我们必须使用一维来表示这些数据,又希望尽量保留原始的信息,你要如何选择?
这个问题实际上是要在二维平面中选择一个方向,将所有数据都投影到这个方向所在直线上,用投影值表示原始记录。这是一个实际的二维降到一维的问题。
那么如何选择这个方向才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散,这样投影的范围越大,在做分类的时候也就更容易做分类器。
以上图为例,可以看出如果向x轴投影,那么最左边的两个点会重叠在一起,中间的两个点也会重叠在一起,于是本身四个各不相同的二维点投影后只剩下两个不同的值了,这是一种严重的信息丢失。同理,如果向y轴投影中间的三个点都会重叠,效果更糟。所以看来x和y轴都不是最好的投影选择。直观来看,如果向通过第一象限和第三象限的斜线投影,则五个点在投影后还是可以区分的。
我们希望投影后投影值尽可能分散,那什么是衡量分散程度的统计量呢,显然可以用数学上的方差来表述。
通常,为了方便计算,我们会把每个点都减去均值,这样得到的点的均值就会为0.这个过程叫做均一化。均一化后:
于是上面的问题被形式化表述为:寻找一个基,使得所有数据变换为这个基上的坐标表示后,方差值最大。
我们跳出刚才的例子,因为很容易把刚才的结论推广到任意纬度。要求投影点的方差最大值所对应的基u,这时有两种方法来求解:
假设有个投影A:
显然刚才说的方差V可以用来表示:
而投影A = 原始数据X . U;
这样方差可以表示为:
求这个方差的最大值,我们可以用拉格朗日插值法来做
L(u,λ)为:
令导数为0:
这样问题就转换成求X.XT的特征值和特征向量,问题就迎刃而解了。
同时我们可以知道,特征值和特征向量有很多个,当λ最大的时候所对应的特征向量,我们把它叫作主成份向量。如果需要将m降维为n,只需要去前n大的特征值所对应的特征向量即可。
对于上面二维降成一维的问题来说,找到那个使得方差最大的方向就可以了。不过对于更高维,首先我们希望找到一个方向(基)使得投影后方差最大,当我们找第二个方向(基)的时候,为了最大可能还原多的信息,我们显然不希望第二个方向与第一个方向有重复的信息。这个从向量的角度看,意味这一个向量在另一个向量的投影必须为0.
这时候我们思路就很明了:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段本身的方差则尽可能大。
还是假设我们原始数据为A
我们做一个处理A.AT得到:
我们发现要是能找到一个基使得这个矩阵变成一个,除了斜对角外,其余全是0的话,那这个基就是我们需要的基。那么问题就转换成矩阵的对角化了。
先说一个先验知识:
在线性代数上,我们可以知道实对称矩阵不同特征值对应的特征向量必然正交。对一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e1,e2,?,en。
组合成矩阵的形式如图:
由上结论又有一个新的结论就是,对于实对称矩阵A,它的特征向量矩阵为E,必然满足:
有了这个先验知识,我们假设原始数据A,基为U,投影后的数据为Y。则有Y=UA。根据上面所说的要是投影后的矩阵Y的Y.YT为一个对角阵,那么就有:
要是Y.YT为对角阵,那么只需要U是A.AT的特征向量即可,那么问题最终还是转换为求AAT的特征向量。
代码实现:
刚才说了两种PCA的计算思路,我们简单看下代码的实现吧,由于matlab自带了求特征向量的函数,这边使用matlab进行模拟。
我们用测试数据试试:
当我们只保留0.5的成分时,newA从3维降到1维,当进行还原时,准确性也会稍微差些
当我们保留0.9的成分时,newA从3维降到2维,当进行还原时,还原度会稍微好些。
当我们保留0.97的成分时,就无法降维了。这时候就可以100%还原了。
总结一下:
我们在做机器学习的数据分析的时候,由于数据集的维度可能很高,这时候我们需要对数据进行降维。本文从各个方向介绍了一下降维的经典方法PCA,也从代码的角度告诉了怎么降维的过程。实际操作可能会比较简单,但是原理个人觉得还是有学习的地方的。
我要该,理由是:
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)机器学习-特征选择 Feature Selection 研究报告
来源:博客园
注: 这个报告是我在10年7月的时候写的(博士一年级),最近整理电脑的时候翻到,当时初学一些KDD上的paper的时候总结的,现在拿出来分享一下。
毕竟是初学的时候写的,有些东西的看法也在变化,看的人可以随便翻翻,有错指正我。
重点部分:是第3章和第4章对应的两篇paper,具体可以在参考文献里找到,当时还算比较新。
 
 如引用务必请注明本文出自:
 
1 介绍
在计算机视觉、模式识别、数据挖掘很多应用问题中,我们经常会遇到很高维度的数据,高维度的数据会造成很多问题,例如导致算法运行性能以及准确性的降低。特征选取(Feature Selection)技术的目标是找到原始数据维度中的一个有用的子集,再运用一些有效的算法,实现数据的聚类、分类以及检索等任务。
特征选取的目标是选择那些在某一特定评价标准下的最重要的特征子集。这个问题本质上是一个综合的优化问题,具有较高的计算代价。传统的特征选取方法往往是独立计算每一个特征的某一得分,然后根据得分的高低选取前k个特征。这种得分一般用来评价某一特征区分不同聚类的能力。这样的方法在二分问题中一般有不错的结果,但是在多类问题中很有可能会失败。
基于是否知道数据的lebal信息,特征提取方法可以分为有监督和无监督的方法。有监督的的特征提取方法往往通过特征与label之间的相关性来评估特征的重要性。但是label的代价是高昂的,很难在大数据集上进行计算。因此无监督的特征提取方法就显得尤为重要。无监督的方法只利用数据本身所有的信息,而无法利用数据label的信息,因此要得到更好的结果往往更困难。
特征选取是一个热门的研究领域,近年来很多相关工作[2][3][4]被提出,使得特征选取越来越多的受到关注;另外一些关于数据谱分析以及L1正则化模型的研究,也启发了特征选取问题一些新的工作的开展。并且,随着计算机与网络的发展,人们越来越多的关注大规模数据的处理问题,使得研究与应用能够真正衔接在一起。因此无监督的特征选取方法的研究显得更加重要。在本报告中,我们重点关注无监督的特征提取方法。
 
 
2 特征选取相关工作
特征选取方法也可以分为包装(Wrapper)类方法与过滤(Filter)类方法。包装类型的方法,经常使用到的算法是聚类。有很多算法同时考虑数据的特征提取以及聚类,为了找到一些特征能够更好的提高数据聚类的性能。然而包装类型的算法往往具有较高的计算代价,因此很难被运用到大规模的数据挖掘分析工作中。
过滤类型的方法相对来说比较常见,也很容易得到扩展。最大方差(Maximum Variance)的方法也许是其中最简单,但也十分有效的算法。该方法本质上是将数据投影到最大方差的方向上。PCA[6]也使用相同的思想,但是它使用转换了的特征,而不是原始数据特征的一个子集。
虽然最大方差的标准可以有效的找到特征来表示数据,但是却不能很好地区分数据。Laplacian Score算法可以有效的提取出那些体现数据潜在流形结构的特征;Fisher Score算法可以有效的区分数据,它给最有效区分数据点(不同类数据点尽可能的分开,而同一类的数据点尽可能的聚在一起)的特征赋予最高的分值。
 
 
2.1 降维方法
特征选取算法和降维算法有着非常密切的联系,很多算法的设计都来源于一些经典的降维算法,下面简单介绍几种常见的降维算法(特征选取本质上也是一种降维)。
Principal Component Analysis[6](PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。具体实现步骤如下:
X是矩阵,P表示维度,N表示数据个数。Y是矩阵,d表示降维后的维度,N表示数据个数。
步骤1:先对数据进行中心化预处理,
步骤2:取协方差矩阵最大的d个特征值对应的特征向量作为投影方向W
步骤3:降维后 ,数据由P维降低到d维
将PCA的通过Kernel的方法,也可以运用在非线性降维中,即KPCA[10]。
Laplacian Eigenmaps[8]的直观思想是希望相互间有关系的点(如在一个图中相连的点)在降维后的空间中尽可能的靠近。Laplacian Eigenmaps可以反映出数据内在的流形结构。算法具体实现步骤:
步骤1:构建图
使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。
步骤2:确定权重
确定点与点之间的权重大小,例如选用热核函数来确定,如果点i和点j相连,那么它们关系的权重设定为:
(1)
另外一种可选的简化设定是如果点i,j相连,权重为1,否则权重为0。
步骤3:特征映射
计算拉普拉斯矩阵L的特征向量与特征值:
(2)
其中D是对角矩阵,,。
使用最小的m个非零特征值对应的特征向量作为降维后的结果输出。
Locally linear embedding[7](LLE)是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。
使用LLE将三维数据映射到二维之后,映射后的数据仍能保持原有的数据流形,说明LLE有效地保持了数据原有的流行结构。
但是LLE在有些情况下也并不适用,如果数据分布在整个封闭的球面上,LLE则不能将它映射到二维空间,且不能保持原有的数据流形。那么我们在处理数据中,首先假设数据不是分布在闭合的球面或者椭球面上。
LLE算法认为每一个数据点都可以由其近邻点的线性加权组合构造得到。算法的主要步骤分为三步:(1)寻找每个样本点的k个近邻点;(2)由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值。具体的算法流程如下:
步骤1:
算法的第一步是计算出每个样本点的k个近邻点。例如采用KNN的策略,把相对于所求样本点距离(常用欧氏距离)最近的k个样本点规定为所求样本点的 个近邻点,k是一个预先给定值。
步骤2:
计算出样本点的局部重建权值矩阵W,首先定义重构误差:
(3)
以及局部协方差矩阵C:
(4)
其中表示一个特定的点,它的的K个近邻点用表示。
于是,目标函数最小化:
(5)
其中,得到:
(6)
步骤3:
将所有的样本点映射到低维空间中。映射条件满足如下所示:
(7)
限制条件:,,上式可以转化为:
(8)
其中:
要使损失函数值达到最小, 则取Y为M的最小m个非零特征值所对应的特征向量。在处理过程中,将M的特征值从小到大排列,第一个特征值几乎接近于零,那么舍去第一个特征值。通常取第2到m+1间的特征值所对应的特征向量作为输出结果。
 
 
 
 
本文接下来重点介绍无监督多聚类特征选取[5](第3章)和无监督特征选取PCA[1](第4章)两个新提出的特征选取算法。
3 无监督多聚类特征选取
特征选取的一般问题是不考虑数据本身的结构的,而事实上很多数据本身具有多聚类结构特征,一个好的特征选取方法应该考虑到下面两点:
l 所选取的特征应该可以最好地保持数据的聚类结构特征。最近一些研究表明一些人为产生的数据存在着内在的数据流行结构,这个因素应该被考虑在聚类算法中。
l 所选取的特征应该可以覆盖数据中所有可能的聚类。因为不同的特征维度在区分不同的聚类时具有不同的效果,所以如果选取的特征仅仅可以区分某一些聚类而不能区分所有的聚类是不合适的。
3.1 谱嵌入聚类分析
在第2章中讨论过Laplacian Eigenmaps,假设,是公式(2)的特征向量。Y的每一行是一个数据点的降维表示。其中K是数据的内在维度,每一个体现数据在该维度(可以理解成一个主题,或者是一个概念)上的数据分布。当使用聚类分析时,每一个可以体现数据在这一个聚类上的分布。因此K往往可以设定成数据聚类的个数。
3.2 学习稀疏系数
在得到Y之后,我们可以衡量每一个内在维度的重要性,也就是Y的每一列,同时可以衡量每一个特征区分数据聚类的能力。
给定一个,通过最小化拟合错误,可以找到一个相关的特征子集,如下:
(9)
其中是一个M维度的向量(X是N*M维矩阵),表示L1-norm。包含了用来近似时每一个特征的系数。由于L1-norm的性质,当足够大时,的某些系数将会变为0。因此,我们可以选取一些最相关的特征子集。公式(9)本质上是一个回归问题,称作LASSO。
3.3 特征选取
我们需要从M个特征的数据中选取d个特征。对于一个含有K个聚类的数据来说,我们可以用上面提到的方法来计算出K个系数的系数向量,每一个的非零元素个数为d(对应d个特征)。显然,如果把所有选取的特征都用上,很有可能会大于d个特征。于是,使用下面这种简单的策略来选取出d个特征。
定义每一个特征的MCFS score,如下
(10)
将所有的特征根据他们MCFS score降序排列,选取前d个特征。
3.3 计算复杂度分析
算法的计算复杂度从下面几点分析:
l P-近邻图需要步来构建,同时需要步来找到找到每一个点的p个近邻
l 在构建好p-近邻图的基础上,需要计算公式(2)的前k个特征向量,利用Lanczos algorithm需要时间
l 使用LARs来解公式(9),限制是,需要时间,因此我们需要的时间来计算K聚类的问题
l 前d个特征选取需要的时间
考虑,以及p固定为一个常数5,MCFS算法的总的复杂度是。
 
 
 
 
 
4 无监督特征选取PCA
PCA是一种重要的线性降维算法,广泛运用在社会、经济、生物等各种数据上。在第2章中简单讨论过PCA,这里我们从另外一种角度来描述PCA。
4.1 子空间选取
给定一个数据矩阵,m为数据个数,n为数据维度。令是数据降维后的维度(特征数),并假设A的列经过中心化。于是,PCA返回的是矩阵A的前k个left singular vectors(一个的矩阵)并且将数据投影到列向量所在的子空间中。
令为子空间的投影矩阵,于是最佳投影实际上是在所有可能的K维子空间中,最小化:
(11)
我们希望找到一种高效的(关于m和n多项式时间内)无监督的特征选取算法,能够挑选出k个特征,使得PCA只作用在这k个特征上的结果和作用全部特征上的结果很接近。为了定义这个接近程度,令C是一个矩阵,只包含有从A中选取出来的特征。通过计算下面的差,来衡量特征选取的好坏:
(12)
这里代表投影矩阵(投影到的列空间张成的K维空间中),表示矩阵的伪逆。这等价于Column Subset Selection Problem(CSSP)问题。
在现代统计数据分析中,从高维数据中选取出原始的特征(feature selection)比选取出经过操作后的特征(feature extraction)在很多等方面都更有优势。
4.1 两阶段CSSP
在这一节中,介绍一种两阶段的CSSP。具体步骤如下:
算法1:
Input: 矩阵A,整数k
Output:矩阵C,包含A中的k列
1. 起始设置
l 计算A的前k个right singular vectors,表示成
l 计算采样概率对每一个j
l 令
2. 随机阶段
l 对于,,第j列的概率为,放缩因子是
l 生成采样矩阵,放缩矩阵
3. 确定阶段
l 选取矩阵的k列,生成采样矩阵
l 返回A的k列,也就是返回
4. 重复第2步和第3步40次,返回使得最小的列
具体来看,算法1先要计算A每一列的概率,,概率分布依赖于A的前k个right singular vectors ,写成:
(13)
由上式可以知道,只要得到就可以算出,而本算法的时间复杂度主要取决于计算所有的所花费的时间。
在随机阶段,算法1随机地选择中的列,作为下一阶段的输入。对于,,第j列的概率为。如果第j列被选择,则放缩因子等于。因此在这个阶段的末尾,我们将得到中的列,以及它们相应的放缩因子。因为随机采样,一般会不等于c;然而很大概率下,不会比c大很多。为了当便表示选出的列和放缩因子,我们使用下面的形式:
首先定义一个的采样矩阵,初始值为空值,当第j列被选中时就将加到中。然后定义对角放缩矩阵,当第j列被选取时,的第j个对角元素是。因此,随机阶段的输出结果就是。
在确定阶段,从上一个阶段挑选出来的列中选取k列,实际上就是定义了一个采样矩阵,在这个阶段之后,就得到了矩阵作为最后的结果。
 
 
 
 
 
 
 
6 参考文献
[1] Boutsidis, C., Mahoney, M. W., Drineas, P. Unsupervised feature selection for principal components analysis. In Proceeding of the 14th ACM SIGKDDinternational conference on Knowledge discovery and data mining, .
[2] Yu, L., Ding, C., Loscalzo, S. Stable feature selection via dense feature groups. In Proceeding of the 14th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 1.
[3] Forman, G., Scholz, M., Rajaram, S. Feature shaping for linear SVM classifiers. In Proceedings of the 15th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 8.
[4] Loscalzo, S., Yu, L., Ding, C. Consensus group stable feature selection. In Proceedings of the 15th ACM SIGKDDinternational conference on Knowledge discovery and data mining, 6.
[5] D,Cai, C,Zhang,X,He. Unsupervised Feature Selection for Multi-Cluster Data.To be appeared in SIGKDD2010.
[6] Smith, L. I. A tutorial on principal components analysis. Cornell University, USA. .
[7] Roweis, S. T., Saul, L. K. Nonlinear dimensionality reduction by locally linear embedding. Science. 00):2323.
[8] Belkin, M., Niyogi, P. Laplacian eigenmaps and spectral techniques for embedding and clustering. Advances in neural information processing systems. -592.
[9] Tenenbaum, J. B., Silva, V., Langford, J. C. A global geometric framework for nonlinear dimensionality reduction. Science. 00):2319.
[10] Scholkopf, B., Smola, A. J., Muller, K. R. Kernel principal component analysis. Lecture notes in computer science. 3-588.
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动推荐|关于机器学习算法 你必须了解的几点内容!
我的图书馆
推荐|关于机器学习算法 你必须了解的几点内容!
“全球人工智能”拥有十多万AI产业用户,10000多名AI技术专家+2000多名AI创业企业高管+1000多名AI产业投资者核心用户来自:北大,清华,中科院,麻省理工,卡内基梅隆,斯坦福,哈佛,牛津,剑桥......以及谷歌,腾讯,百度,脸谱,微软,阿里,海康威视,英伟达......等全球名校和名企。-&数-&-&来源:wired 作者:Yael Gavish摘要:&对学习算法进行分类是基于构建模型时所需的数据:数据是否需要包括输入和输出或仅仅是输入,需要多少个数据点以及何时收集数据。根据上述分类原则,可以分为4个主要的类别:监督学习、无监督学习、半监督学习和强化学习。我们上次已经讨论了机器学习能够影响的业务类型。现在,让我们来回顾一下你需要了解的技术术语,这样你才能高效地与数据科学团队进行合作,并协助他们,让他们的工作成果可以对你的业务产生尽可能大的影响(或至少让你知道他们在说什么)。第一、算法、模型和数据从概念层面上来讲,我们正在构建一个机器,给这个机器一组输入数据,然后通过找到数据中的模式并从中学习,能够产生某种预期的输出。一种非常常见的情况就是让机器在一组输入数据中查找,然后产生相对应的输出数据。机器在输入数据中识别出模式,并创建一组复杂的规则,然后将其应用于以前从未见过的输入并产生所需的输出。例如,给定房屋的面积、地址和房间数(输入),我们来预测房屋的销售价格(输出)。假设我们有10000组这样的数据,包括房屋的面积、地址、房间数量,以及销售价格。则机器会基于这些数据“训练”自己,即识别出房间面积、地址、房间数影响房屋价格的模式,这样,只要我们给出一个从未见过的房子的3个输入项,就可以预测出房子的价格了。数据科学家的作用是找到给定输入并能够获得预期输出的最佳机器。她有多个模板,对于机器来说,称之为**算法**。从这些模板中生成的解决具体问题的机器被称为**模型**。模板有各种不同的选项和设置,可以通过调整这些选择和设置来从同一模板生成不同的模型。还可以使用不同的模板或调整相同模板的设置来生成多个模型,以便测试出哪个模型能提供最佳结果。请注意,模型输出只是在一定概率上对决策是正确的或者有用的。模型并不是100%正确的,而是根据模型所看到的大量数据而进行的“最佳猜测”。模型看到的数据越多,提供有用输出的可能性就越大。数据科学家用来“训练”机器的已知输入和输出集合(即让模型识别数据中的模式并创建规则)叫做“**训练集**”。该数据用于与一个或多个“模板”一起创建用于解决问题的一个或多个模型。记住,即使只使用了一个“模板”(算法),也可以通过调整某些选项来从同一模板生成多个模型。在得到了几个“训练过”的模型之后,就必须对它们进行检查,看看它们是否能正常工作,哪一个最有效。用来检查的一组新的数据称为“**验证集**”。将验证集作为输入,然后运行模型,查看哪一个模型输出的结果最接近验证集的输出。在我们上面的例子中,就是看哪一种模型预测出来的房屋的价格与实际售价最接近。在这个阶段中,需要有一组新的数据来作为验证集,因为这些模型是根据训练集创建的,所以它们在训练集上能够工作得很好,不会给出真实的结果。一旦验证了哪种模型性能最佳并选择了最优者,我们的数据科学家就需要确定该模型的实际性能,也就是说,这个最好的模型在解决问题方面到底好到什么程度。再一次,我们需要另外一个新的数据集,因为模型在训练集和验证集上都能表现良好!这最后一个数据集称为“**测试集**”。在我们的例子中,系统会检查对于用测试集作为输入预测出来的房价有多接近测试集的实际价格。第二、“学习”的类型应用于解决机器学习问题的算法类型取决于你所拥有的数据。对学习算法进行分类是基于构建模型时所需的数据:数据是否需要包括输入和输出或仅仅是输入,需要多少个数据点以及何时收集数据。根据上述分类原则,可以分为4个主要的类别:监督学习、无监督学习、半监督学习和强化学习。1、监督学习我们在上一节中详细讨论的案例描述了我们所说的“监督学习”。这种学习类型需要有大量**标记数据**示例,即由输入和相应的输出组成的数据。在我们的房屋价格示例中,“标记”是指用模型预测的结果来对输入进行标记。在监督学习算法中可以看到标记数据(也称为“**参考标准**”数据),从这些数据中学习并根据这些实例进行预测。他们需要大量的标记数据:虽然数据的数量取决于用例,但几百个数据点是最起码的。使用监督学习解决的两个经典问题是:回归。根据其他明显的数据集对变量产生的影响来推断未知变量的值。在时间预测中有两个常见用途。例如,我们之前的那个根据位置和面积等变量来预测住宅价格的例子,以及预测未来价格,例如,根据历史和目前的价格数据,预测房屋从现在到一年以后的价格。回归是一种统计方法,它用于确定自变量(你已拥有的数据)与其所需预测值的因变量之间的关系。分类。确定实体属于多个类别中的哪一个类别。这可以是一个二元分类,例如,确定某个帖子是否会像病毒一样传播(是/否);也可以是多标签分类,例如,在产品照片上标记合适的类别(可能有数百个类别)。2、无监督学习在无监督学习中,算法在试图识别数据中模式的时候,无需使用预期结果来标记数据集。数据是“未标记的”,即没有附加任何有意义的标记。通过无监督学习方法可以解决一些经典问题:聚类给定某个相似性标准,找出哪些与其他另外一个更相似。使用聚类的一个领域是文本搜索,例如,返回的搜索结果包含了很多非常相似的文档。聚类可用来将它们进行分组,让用户更方便地识别出差异较大的文档。关联。根据某种关系将对象分类到不同的桶中,这样,桶中某个物体的存在预示着另一个物体也存在。比如类似于“买了xxx的人也买了yyy”这样的推荐问题:如果对大量的购物车进行分析,则可以看出,购物车中商品xxx的存在很有可能暗示着产品yyy也在购物车中,那么,你可以立即向将产品xxx放入购物车的人推荐产品yyy。异常检测在需要标记和处理的数据中识别意外模式。标准的应用范围包括了对复杂系统的欺诈检测和健康监测。3、半监督学习这是监督学习和无监督学习混合的结果,在这种“学习”中,算法需要一些训练数据,但是比监督学习的要少很多(可能要差一个数量级)。其算法可以是在监督学习和无监督学习中使用的方法的扩展:分类、回归、聚类、异常检测等等。4、强化学习算法以有限的数据集开始,在学习的同时,还可以获得更多关于其预测的反馈信息,以进一步改善学习效果。正如你所看到的,除了要解决的问题类型外,你所拥有的数据量也会影响到你所能使用的学习方法。这也适用于另一种方式:你需要使用的学习方法可能需要比你现在拥有的更多的数据,这样才能有效地解决你的问题。我们稍后再讨论这个。第三、其他常见的“流行语”在你的工作中,还会遇到其他一些术语。了解他们与我们今天谈论到的类别之间的关系很重要。1、深度学习与上面的那些定义并没有什么关系。它只是应用特定类型的系统来解决学习问题,其解决方案可以是监督的,也可以是无监督的,等等。人工神经网络(ANN)是一种学习系统,它试图通过不同层上的“神经”网络来模拟我们大脑的工作方式。神经网络至少有一个输入层(即数据被摄入网络的一组神经元),一个输出层(将结果传递出来的神经元)以及两者之间的一个或多个层,称为“隐藏层”(真正做计算工作的层)。深度学习只是使用具有多个隐藏层的神经网络来完成学习任务。如果你曾经使用过这样的网络,恭喜你,你也可以合理地扔掉这个时髦术语了!2、集合方法或**综合学习**是使用多个模型来获得结果,这样比利用单个模型获得的结果要更好。这些模型可以采用不同的算法,或是使用不同参数的相同算法。比如,对于某种类型的预测,你有一组模型,每一个模型都能产生一个预测,有一些处理方法能够平衡不同的预测结果,并决定应该输出什么样的组合。集合方法通常用于监督学习(它们在预测问题中非常有用),但也可以用于无监督学习。你的数据科学团队可能会测试这些方法,并在适当的时候使用它们。3、自然语言处理(NLP)是计算机科学领域的一门研究机器理解语言的学科。不是所有类型的NLP都使用机器学习。例如,如果我们生成一个“标签云”(一个词出现在文本中的次数的视觉表示法),这就不涉及学习。对语言和文字的更加复杂的分析和理解往往需要机器学习。这里有一些例子:关键字生成。理解正文的主题并自动为其创建关键字。语言歧义。从一个词或一句句子的多种可能的解释中确定相关的含义。情绪分析理解在文字中表达出来的情绪的积极或者消极的程度。命名实体提取在文本中识别公司、人员、地点、品牌等等;当这些名称并不特殊时,要提取出来就会特别困难(例如,公司“微软”比公司“目标”更容易识别,因为“目标”是英文中的一个单字)。NLP不仅用于机器学习领域里面向语言的应用,例如chatbots,它也被广泛用于准备和预处理数据,这样,这些数据才能成为许多机器学习模型的有用输入。我们稍后在讨论这个。请注意:上面的定义是为了表达其主要思想,让大家更易理解;对于详细的科学定义,请参考其他来源。第四、如何针对问题选择解决方案用机器学习来实现的战略目标将决定许多下游决策。为了确保你的数据科学团队能为业务生成正确的解决方案,了解一些基本的机器学习概念及其对业务目标的影响是非常重要的。1、算法的选择在问题定义上的一个小变动可能需要有一个完全不同的算法来解决,或者至少要使用不同的数据输入来构建不同的模型。一个能够为用户识别照片类型的约会网站可以使用无监督学习技术(比如聚类)来识别常见的主题。而如果要向特定的某个人推荐潜在的约会对象,则网站可能要使用基于输入的监督学习,输入数据需具体到个人,例如他们已经看过的照片。2、特征的选择机器学习模型识别数据中的模式。输入到模型中的数据被组织成特征(也称为变量或属性):这些特征都是相关的、大部分独立的数据片段,描述了你想要预测或识别的现象的某些方面。以前文提到的那家希望优先考虑贷款申请人外展服务的公司为例。如果我们将问题定义为“根据客户转换的可能性优先考虑”,我们将会得到包括类似客户对公司各种外展活动的响应率等特征。如果我们将问题定义为“优先考虑最可能偿还贷款的客户”,我们就不会得到这些特征,因为它们与评估客户的可能性无关。3、目标函数的选择目标函数是你要优化的目标,或者是模型试图预测的结果。例如,如果你向用户推荐他们可能感兴趣的商品,则模型的输出可能是用户在看到商品时点击该商品的概率,也可能是用户购买商品的概率。目标函数的选择主要取决于业务目标,在这个例子中,你对用户的参与感兴趣(目标函数可能是点击或停留的时间)还是对营业收入感兴趣(目标函数是购买)?另一个要考虑的关键因素是数据的可用性:对于要学习的算法,你必须提供大量“标记”为正(用户看到并点击的产品)或负(用户看到的产品,但没有点击)的数据点。
TA的最新馆藏[转]&
喜欢该文的人也喜欢}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信