在分类算法中 “训练”这一汉蒙名词术语分类词典是什么意思

酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
在听到人们谈论机器学习的时候,你是不是对它的涵义只有几个模糊的认识呢?你是不是已经厌倦了在和同事交谈时只能一直点头?让我们改变一下吧!
本指南的读者对象是所有对机器学习有求知欲但却不知道如何开头的朋友。我猜很多人已经读过了&机器学习&的维基百科词条,倍感挫折,以为没人能给出一个高层次的解释。本文就是你们想要的东西。
本文目标在于平易近人,这意味着文中有大量的概括。但是谁在乎这些呢?只要能让读者对于ML更感兴趣,任务也就完成了。
何为机器学习?
机器学习这个概念认为,对于待解问题,你无需编写任何专门的程序代码,遗传算法(generic algorithms)能够在数据集上为你得出有趣的答案。对于遗传算法,不用编码,而是将数据输入,它将在数据之上建立起它自己的逻辑。
举个例子,有一类算法称为分类算法,它可以将数据划分为不同的组别。一个用来识别手写数字的分类算法,不用修改一行代码,就可以用来将电子邮件分为垃圾邮件和普通邮件。算法没变,但是输入的训练数据变了,因此它得出了不同的分类逻辑。
机器学习算法是个黑盒,可以重用来解决很多不同的分类问题。
&机器学习&是一个涵盖性术语,覆盖了大量类似的遗传算法。
两类机器学习算法
你可以认为机器学习算法分为两大类:监督学习和无监督学习。两者区别很简单,但却非常重要。
假设你是一名房产经纪,生意越做越大,因此你雇了一批实习生来帮你。但是问题来了&&你可以看一眼房子就知道它到底值多少钱,实习生没有经验,不知道如何估价。
为了帮助你的实习生(也许是为了解放你自己去度个假),你决定写个小软件,可以根据房屋大小、地段以及类似房屋的成交价等因素来评估你所在地区房屋的价值。
你把3个月来城里每笔房屋交易都写了下来,每一单你都记录了一长串的细节&&卧室数量、房屋大小、地段等等。但最重要的是,你写下了最终的成交价:
这是我们的&训练数据&。
我们要利用这些训练数据来编写一个程序来估算该地区其他房屋的价值:
这就称为监督学习。你已经知道每一栋房屋的售价,换句话说,你知道问题的答案,并可以反向找出解题的逻辑。
为了编写软件,你将包含每一套房产的训练数据输入你的机器学习算法。算法尝试找出应该使用何种运算来得出价格数字。
这就像是算术练习题,算式中的运算符号都被擦去了:
天哪!一个阴险的学生将老师答案上的算术符号全擦去了。
看了这些题,你能明白这些测验里面是什么样的数学问题吗?你知道,你应该对算式左边的数字&做些什么&以得出算式右边的答案。
在监督学习中,你是让计算机为你算出数字间的关系。而一旦你知道了解决这类特定问题所需要的数学方法后,你就可以解答同类的其它问题了。
无监督学习
让我们回到开头那个房地产经纪的例子。要是你不知道每栋房子的售价怎么办?即使你所知道的只是房屋的大小、位置等信息,你也可以搞出很酷的花样。这就是所谓的无监督学习。
即使你不是想去预测未知的数据(如价格),你也可以运用机器学习完成一些有意思的事。
这就有点像有人给你一张纸,上面列出了很多数字,然后对你说:&我不知道这些数字有什么意义,也许你能从中找出规律或是能将它们分类,或是其它什么-祝你好运!&
你该怎么处理这些数据呢?首先,你可以用个算法自动地从数据中划分出不同的细分市场。也许你会发现大学附近的买房者喜欢户型小但卧室多的房子,而郊区的买房者偏好三卧室的大户型。这些信息可以直接帮助你的营销。
你还可以作件很酷的事,自动找出房价的离群数据,即与其它数据迥异的值。这些鹤立鸡群的房产也许是高楼大厦,而你可以将最优秀的推销员集中在这些地区,因为他们的佣金更高。
本文余下部分我们主要讨论监督学习,但这并不是因为无监督学习用处不大或是索然无味。实际上,随着算法改良,不用将数据和正确答案联系在一起,因此无监督学习正变得越来越重要。
老学究请看:还有很多其它种类的机器学习算法。但初学时这样理解不错了。
太酷了,但是评估房价真能被看作&学习&吗?
作为人类的一员,你的大脑可以应付绝大多数情况,并且没有任何明确指令也能够学习如何处理这些情况。如果你做房产经纪时间很长,你对于房产的合适定价、它的最佳营销方式以及哪些客户会感兴趣等等都会有一种本能般的&感觉&。强人工智能(Strong AI)研究的目标就是要能够用计算机复制这种能力。
但是目前的机器学习算法还没有那么好&&它们只能专注于非常特定的、有限的问题。也许在这种情况下,&学习&更贴切的定义是&在少量范例数据的基础上找出一个等式来解决特定的问题&。
不幸的是,&机器在少量范例数据的基础上找出一个等式来解决特定的问题&这个名字太烂了。所以最后我们用&机器学习&取而代之。
当然,要是你是在50年之后来读这篇文章,那时我们已经得出了强人工智能算法,而本文看起来就像个老古董。未来的人类,你还是别读了,叫你的机器仆人给你做份三明治吧。
让我们写代码吧!
前面例子中评估房价的程序,你打算怎么写呢?往下看之前,先思考一下吧。
如果你对机器学习一无所知,很有可能你会尝试写出一些基本规则来评估房价,如下:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price_per_sqft = 200
if neighborhood == &hipsterton&:
price_per_sqft = 400
elif neighborhood == &skid row&:
price_per_sqft = 100
price = price_per_sqft * sqft
if num_of_bedrooms == 0:
price = price & 20000
price = price + (num_of_bedrooms * 1000)
return price
假如你像这样瞎忙几个小时,也许会取得一点成效,但是你的程序永不会完美,而且当价格变化时很难维护。
如果能让计算机找出实现上述函数功能的办法,这样岂不更好?只要返回的房价数字正确,谁会在乎函数具体干了些什么呢?
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = &computer, plz do some math for me&
return price
考虑这个问题的一种角度是将房价看做一碗美味的汤,而汤中成分就是卧室数、面积和地段。如果你能算出每种成分对最终的价格有多大影响,也许就能得到各种成分混合起来形成最终价格的具体比例。
这样可以将你最初的程序(全是疯狂的if else语句)简化成类似如下的样子:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price += num_of_bedrooms * .213
price += sqft *
price += neighborhood * 2.
price += 201.
return price
请注意那些用粗体标注的神奇数字&&.213,,2.,和201.。它们称为权重。如果我们能找出对每栋房子都适用的完美权重,我们的函数就能预测所有的房价!
找出最佳权重的一种笨办法如下所示:
首先,将每个权重都设为1.0:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price += num_of_bedrooms * 1.0
price += sqft * 1.0
price += neighborhood * 1.0
price += 1.0
return price
将每栋房产带入你的函数运算,检验估算值与正确价格的偏离程度:
运用你的程序预测房屋价格。
例如:上表中第一套房产实际成交价为25万美元,你的函数估价为17.8万,这一套房产你就差了7.2万。
再将你的数据集中的每套房产估价偏离值平方后求和。假设数据集中有500套房产交易,估价偏离值平方求和总计为86,123,373美元。这就反映了你的函数现在的&正确&程度。
现在,将总计值除以500,得到每套房产的估价偏离平均值。将这个平均误差值称为你函数的代价。
如果你能调整权重使得这个代价变为0,你的函数就完美了。它意味着,根据输入的数据,你的程序对每一笔房产交易的估价都是分毫不差。而这就是我们的目标&&尝试不同的权重值以使代价尽可能的低。
不断重复步骤2,尝试所有可能的权重值组合。哪一个组合使得代价最接近于0,它就是你要使用的,你只要找到了这样的组合,问题就得到了解决!
思想扰动时间
这太简单了,对吧?想一想刚才你做了些什么。你取得了一些数据,将它们输入至三个通用的简单步骤中,最后你得到了一个可以对你所在区域的房屋进行估价的函数。房价网,要当心咯!
但是下面的事实可能会扰乱你的思想:
1.过去40年来,很多领域(如语言学/翻译学)的研究表明,这种通用的&搅动数据汤&(我编造的词)式的学习算法已经胜过了需要利用真人明确规则的方法。机器学习的&笨&办法最终打败了人类专家。
2.你最后写出的函数真是笨,它甚至不知道什么是&面积&和&卧室数&。它知道的只是搅动,改变数字来得到正确的答案。
3.很可能你都不知道为何一组特殊的权重值能起效。所以你只是写出了一个你实际上并不理解却能证明的函数。
4.试想一下,你的程序里没有类似&面积&和&卧室数&这样的参数,而是接受了一组数字。假设每个数字代表了你车顶安装的摄像头捕捉的画面中的一个像素,再将预测的输出不称为&价格&而是叫做&方向盘转动度数&,这样你就得到了一个程序可以自动操纵你的汽车了!
太疯狂了,对吧?
步骤3中的&尝试每个数字&怎么回事?
好吧,当然你不可能尝试所有可能的权重值来找到效果最好的组合。那可真要花很长时间,因为要尝试的数字可能无穷无尽。
为避免这种情况,数学家们找到了很多来快速找到优秀的权重值,而不需要尝试过多。下面是其中一种:
首先,写出一个简单的等式表示前述步骤2:
这是你的代价函数。
接着,让我们将这同一个等式用机器学习的数学术语(现在你可以忽略它们)进行重写:
&表示当前的权重值。J(&) 意为&当前权重值对应的代价&。
这个等式表示我们的估价程序在当前权重值下偏离程度的大小。
如果将所有赋给卧室数和面积的可能权重值以图形形式显示,我们会得到类似下图的图表:
代价函数的图形像一支碗。纵轴表示代价。
图中蓝色的最低点就是代价最低的地方&&即我们的程序偏离最小。最高点意味着偏离最大。所以,如果我们能找到一组权重值带领我们到达图中的最低点,我们就找到了答案!
因此,我们只需要调整权重值使我们在图上能向着最低点&走下坡路&。如果对于权重的细小调节能一直使我们保持向最低点移动,那么最终我们不用尝试太多权重值就能到达那里。
如果你还记得一点微积分的话,你也许记得如果你对一个函数求导,结果会告诉你函数在任一点的斜率。换句话说,对于图上给定一点,它告诉我们那条路是下坡路。我们可以利用这一点朝底部进发。
所以,如果我们对代价函数关于每一个权重求偏导,那么我们就可以从每一个权重中减去该值。这样可以让我们更加接近山底。一直这样做,最终我们将到达底部,得到权重的最优值。(读不懂?不用担心,接着往下读)。
这种找出最佳权重的办法被称为批量梯度下降,上面是对它的高度概括。如果想搞懂细节,不要害怕,继续吧。
当你使用机器学习算法库来解决实际问题,所有这些都已经为你准备好了。但明白一些具体细节总是有用的。
还有什么你随便就略过了?
上面我描述的三步算法被称为多元线性回归。你估算等式是在求一条能够拟合所有房价数据点的直线。然后,你再根据房价在你的直线上可能出现的位置用这个等式来估算从未见过的房屋的价格。这个想法威力强大,可以用它来解决&实际&问题。
但是,我为你展示的这种方法可能在简单的情况下有效,它不会在所有情况下都有用。原因之一是因为房价不会一直那么简单地跟随一条连续直线。
但是,幸运的是,有很多办法来处理这种情况。对于非线性数据,很多其他类型的机器学习算法可以处理(如神经网络或有核向量机)。还有很多方法运用线性回归更灵活,想到了用更复杂的线条来拟合。在所有的情况中,寻找最优权重值这一基本思路依然适用。
还有,我忽略了过拟合的概念。很容易碰上这样一组权重值,它们对于你原始数据集中的房价都能完美预测,但对于原始数据集之外的任何新房屋都预测不准。这种情况的解决之道也有不少(如正则化以及使用交叉验证数据集)。学会如何处理这一问题对于顺利应用机器学习至关重要。
换言之,基本概念非常简单,要想运用机器学习得到有用的结果还需要一些技巧和经验。但是,这是每个开发者都能学会的技巧。
机器学习法力无边吗?
一旦你开始明白机器学习技术很容易应用于解决貌似很困难的问题(如手写识别),你心中会有一种感觉,只要有足够的数据,你就能够用机器学习解决任何问题。只需要将数据输入进去,就能看到计算机变戏法一样找出拟合数据的等式。
但是很重要的一点你要记住,机器学习只能对用你占有的数据实际可解的问题才适用。
例如,如果你建立了一个模型来根据每套房屋内盆栽数量来预测房价,它就永远不会成功。房屋内盆栽数量和房价之间没有任何的关系。所以,无论它怎么去尝试,计算机也推导不出两者之间的关系。
你只能对实际存在的关系建模。
怎样深入学习机器学习
我认为,当前机器学习的最大问题是它主要活跃于学术界和商业研究组织中。对于圈外想要有个大体了解而不是想成为专家的人们,简单易懂的学习资料不多。但是这一情况每一天都在改善。
吴恩达教授(Andrew Ng)在非常不错。我强烈建议由此入门。任何拥有计算机科学学位、还能记住一点点数学的人应该都能理解。
另外,你还可以下载安装,用它来试验成千上万的机器学习算法。它是一个python框架,对于所有的标准算法都有&黑盒&版本。
& 相关主题:针对Quora上的一个老问题:不同分类算法的优势是什么?Netflix公司工程总监Xavier Amatriain近日给出新的解答,他根据奥卡姆剃刀原理依次推荐了逻辑回归、SVM、决策树集成和深度学习,并谈了他的不同认识。他并不推荐深度学习为通用的方法,这也侧面呼应了我们之前讨论的问题:深度学习能否取代其他机器学习算法。不同分类算法的优势是什么?例如有大量的训练数据集,上万的实例,超过10万的特征,我们选择哪种分类算法最好?Netflix公司工程总监Xavier Amatriain认为,应当根据奥卡姆剃刀原理(Occam's Razor)来选择算法,建议先考虑逻辑回归。选择一个合理的算法可以从很多方面来考察,包括:训练实例的数量?特征空间的维度?是否希望该问题线性可分? 特征是否是独立的?是否预期特征能够线性扩展?过度拟合是否会成为一个问题?系统在速度/性能/内存使用等方面的要求如何?……这个看起来有点吓人的列表并没有直接回答问题,但我们可以按照奥卡姆剃刀原则解决这个问题:用能够满足需求的最简单的算法,如果绝对的必要,不要增加复杂性。逻辑回归作为一般的经验法则,我建议先考虑逻辑回归(LR,Logistic Regression)。逻辑回归是一个漂亮乖巧的分类算法,可以训练你希望的特征大致线性和问题线性可分。你可以很容易地做一些特征引擎把大部分的非线性特征转换为线性。逻辑回归对噪声也相当强劲,能避免过度拟合,甚至使用L2或L1正则化做特征选择。逻辑回归也可以用在大数据场景,因为它是相当有效的,并且可以分布使用,例如ADMM。 逻辑回归的最后一个优点是,输出可以被解释为概率。这是一个好的附加作用,例如,你可以使用它排名而不是分类。即使在你不希望逻辑回归100%地工作,你也可以帮自己一个忙,在使用“票友”办法之前,运行一个简单的L2正则化逻辑回归作为基线。好了,现在你已经设置逻辑回归基线,下一步你应该做的,我基本上会推荐两个可能的方向:支持向量机(SVM)或者决策树集成。如果我不知道你的具体问题,我肯定会选择后者,但我将开始描述为什么SVM可能是一个值得考虑的方法。支持向量机支持向量机使用一个与LR不同的损失函数(Hinge)。它们也有不同的解释(maximum-margin)。然而,在实践中,用线性核函数的SVM和逻辑回归是没有很大的不同的(如果你有兴趣,你可以观察Andrew Ng在他的Coursera机器学习课程如何从逻辑回归中驱动SVM)。用SVM代替逻辑回归的一个主要原因可能是因为你的问题线性不可分。在这种情况下,你将不得不使用有非线性内核的SVM(如RBF)。事实上,逻辑回归也可以伴随不同的内核使用,但出于实际原因你更可能选择SVM。另一个使用SVM的相关理由可能是高维空间。例如,SVM已经被报道在工作文本分类方面做得更出色。不幸的是,SVM的主要缺点是,它们的训练低效到痛苦。所以,对于有大量训练样本的任何问题,我都不会推荐SVM。更进一步地说,我不会为大多数“工业规模”的应用程序推荐SVM。任何超出玩具/实验室的问题可能会使用其他的算法来更好地解决。决策树集成第三个算法家族:决策树集成(Tree Ensembles)。这基本上涵盖了两个不同的算法:随机森林(RF)和梯度提升决策树(GBDT)。它们之间的差异随后再谈,现在先把它们当做一个整体和逻辑回归比较。决策树集成有超过LR的不同优势。一个主要优势是,它们并不指望线性特征,甚至是交互线性特性。在LR里我没有提到的是,它几乎不能处理分类(二进制)特性。而决策树集成因为仅仅是一堆决策树的结合,可以非常好地处理这个问题。另一主要优点是,因为它们构造了(使用bagging或boosting)的算法,能很好地处理高维空间以及大量的训练实例。至于RF和GBDT之间的差别,可以简单理解为GBDT的性能通常会更好,但它们更难保证正确。更具体而言,GBDT有更多的超参数需要调整,并且也更容易出现过度拟合。RF几乎可以“开箱即用”,这是它们非常受欢迎的一个原因。深度学习最后但并非最不重要,没有深度学习的次要参考,这个答案将是不完整的。我绝对不会推荐这种方法作为通用的分类技术。但是,你可能会听说这些方法在某些情况下(如图像分类)表现如何。如果你已经通过了前面的步骤并且感觉你的解决方案还有优化的空间,你可能尝试使用深度学习方法。事实是,如果你使用一个开源工具(如Theano)实现,你会知道如何使这些方法在你的数据集中非常快地执行。总结综上所述,先用如逻辑回归一样简单的方法设定一个基准,如果你需要,再使问题变得更加复杂。这一点上,决策树集成可能正是要走的正确道路,特别是随机森林,它们很容易调整。如果你觉得还有改进的余地,尝试GBDT,或者更炫一些,选择深度学习。你还可以看看Kaggle比赛。如果你搜索关键字“分类”,选择那些已经完成的,你能找到一些类似的东西,这样你可能会知道选择一个什么样的方法来赢得比赛。在这一点上,你可能会意识到,使用集成方法总容易把事情做好。当然集成的唯一问题,是需要保持所有独立的方法并行地工作。这可能是你的最后一步,花哨的一步。编辑点评:Xavier Amatriain不推荐深度学习为通用算法的理由,并不能说是因为深度学习不好,而是因为深度学习会增加复杂性及成本,却无法保证在所有的场景表现出比逻辑回归、SVM及决策树集成更优的结果。事实上,Xavier Amatriain的Netflix团队早已开始研究人工神经网络和深度学习技术,希望借助AWS云服务和GPU加速的分布式神经网络,分析网民最爱看的电影电视剧,实现节目的个性化推荐。Netflix推荐系统架构(图片来自Xavier Amatrain参与撰写的Netflix官方博客)此后,Xavier Amatriain还分享了Netflix机器学习实践的十大经验教训,大致包括:更多的数据需要与更好的模型之匹配你可能不需要所有的大数据更复杂的模型未必意味着更好的结果,可能是你的样本集太简单要充分考虑你的训练数据学会处理偏差UI是联系算法和最重要的用户之间唯一通道正确的演进方式比数据和模型更重要分布式算法重要,知道在哪个层级使用它更重要选择合适的度量自动超参数优化并非所有的事都能离线完成,近线处理也是一种选择关于我们 搜索《智蓝IT精英汇》或搜索微信号《zhilanxinxi》更多关于智蓝IT精英汇的信息,可咨询:地址:北京市海淀区东北旺上地十街中关村软件园的孵化器1号楼3B座1212室网址:www.zealinfo.net联系方式: Tel : 010-
| Fax:010- 微信公众号:智蓝IT精英汇
智蓝IT精英汇(zhilanxinxi) 
 文章为作者独立观点,不代表大不六文章网立场
zhilanxinxi卓越IT服务平台;最前沿的IT行业就业资讯;IT工程师成长摇篮;IT精英俱乐部。热门文章最新文章zhilanxinxi卓越IT服务平台;最前沿的IT行业就业资讯;IT工程师成长摇篮;IT精英俱乐部。&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78君,已阅读到文档的结尾了呢~~
领域术语自的动抽取及其在文本分类中的应用(可编辑),术语抽取,文本信息抽取,文本特征抽取,文本抽取,文本信息抽取 java,cgvwin 如何抽取文本,特定领域关键字抽取,领域信息抽取,文本 时间抽取
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
领域术语自的动抽取及其在文本分类中的应用(可编辑)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口【图文】大数据应用基础-分类算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
大数据应用基础-分类算法
上传于||暂无简介
大小:5.37MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 汉蒙名词术语分类词典 的文章

 

随机推荐