楼主: 我的素质低
828 0

【商业管理】机器学习从“看”到“做”的实战经验 2015-09-25 经管爱问 [推广有奖]

学术权威

83%

还不是VIP/贵宾

-

TA的文库  其他...

〖素质文库〗

结构方程模型

考研资料库

威望
8
论坛币
23388 个
通用积分
28302.3504
学术水平
2705 点
热心指数
2881 点
信用等级
2398 点
经验
223623 点
帖子
2977
精华
52
在线时间
2175 小时
注册时间
2012-11-24
最后登录
2024-1-13

一级伯乐勋章 初级学术勋章 初级热心勋章 初级信用勋章 中级热心勋章 中级学术勋章 中级信用勋章 高级学术勋章 高级热心勋章 高级信用勋章 特级学术勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


人大经济论坛经管爱问微信好号“jgasker”好文共享与推荐,实时答疑服务,欢迎关注!

引言

前阵子看到一篇文章,学习了一段时间的机器学习算法后,再回头看机器学习问题,发现要想利用机器学习去很好的求解一个问题,其实并不是一件容易办到的事情,尤其是能够对整个模型的解释方面,要想能够对模型很好的解释,那么难度就会更大。因为利用机器学习处理一个实际的问题就不仅仅是我们得学会怎么使用机器学习算法,更重要的是如何对整个问题建模。我刚开始是学习智能计算,当然一个优化问题怎么去建模,建模完成之后就是求解,相对还算比较简单。但是在机器学习中,问题就变得复杂多了,很多将机器学习的书也都是讲机器学习的算法,就像我之前的“简单易学的机器学习算法”一样,注重算法的实现,但是机器学习问题中不仅仅是机器学习算法,还有一些其他的知识需要我们去注意。

所以在这个标题下,我就我看的这篇文章与大家一起分享一下我自己的想法。

一、机器学习问题的组成

李航老师在《统计机器学习》中指出:机器学习=模型+策略+算法。其实机器学习可以表示为:Learning= Representation+Evalution+Optimization。我们就可以将这样的表示和李航老师的说法对应起来。机器学习主要是由三部分组成,即:表示(模型)、评价(策略)和优化(算法)。


如上图所示,机器学习主要是由上述三个部分组成。对应于每一个部分,都有每一个部分的基本的方法,这里有的方法在我的以往的博客中都能找到介绍,还有的会在以后陆续的补充。下面还是具体每一个部分来说说。

1、表示(或者称为:模型):Representation

表示主要做的就是建模,故可以称为模型。模型要完成的主要工作是转换:将实际问题转化成为计算机可以理解的问题,就是我们平时说的建模。类似于传统的计算机学科中的算法,数据结构,如何将实际的问题转换成计算机可以表示的方式。这部分可以见“简单易学的机器学习算法”。

具体对于一个分类问题而言,我们希望能够找到一个映射,这样的映射是将输入空间投影到输出空间中。而这样的映射的集合我们便把它称为假设空间(hypothesisspace)。我们其实是在这样的假设空间中寻找满足具体问题的一个映射。对于分类问题而言,映射主要分为:

概率模型:主要是条件概率()

非概率模型:主要是决策函数()

2、评价(或者称为:策略):Evalution

评价的目标是判断已建好的模型的优劣。对于第一步中建好的模型,评价是一个指标,用于表示模型的优劣。这里就会是一些评价的指标以及一些评价函数的设计。

3、优化(或者称为:算法):Optimization

优化的目标是评价的函数,我们是希望能够找到最好的模型,也就是说评价最高的模型。

4、总结

机器学习不仅仅是机器学习算法,从上面我们也看到机器学习算法只是属于机器学习的表示,机器学习是由三部分组成,包括表示(模型)、评价(策略)和优化(算法)。构建一个机器学习的应用,我们需要综合考虑这样的三个方面。以上的三个部分也并不是可以任意组合的,主要还是要看具体的问题,采取不同的方式。

二、什么是泛化能力

机器学习的目的是利用训练数据集训练出机器学习的模型,然后将该模型应用到测试数据集中。在整个过程中,我们对测试数据集是一无所知的,这是前提。所以该模型对未知数据的预测能力便称为泛化能力(Generalization ability),这是机器学习成功与否的一个很重要的评价指标。同时,预测误差便成为评价学习方法的泛化能力的指标。

机器学习算法中有很多的参数,算法成功往往源自对这些参数的精细调节。尽管我们能够获得的数据越来越多,但是始终我们不能把所有数据都得到,要像调节好这些参数,我们就必须充分利用训练数据。

1、cross-validation

交叉验证是充分利用数据最好的方式,其中交叉验证的基本想法就是要重复地使用数据。交叉验证的基本思想是:将数据集划分成训练数据和验证数据,在训练数据上训练整个模型,利用验证数据模拟实际的数据,对整个模型进行调整,最终我们选择在验证数据上表现最好的模型。常用的交叉验证的方法有:

简单交叉验证:与上面类似,简单的划分

S折交叉验证:将数据随机划分成S份,其中的S-1份作为训练,剩下的1份作为验证,重复进行,最终选择平均验证误差最小的模型

留一交叉验证:S折交叉验证的特殊情况()

2、总结

机器学习的最终任务是利用学习好的模型来预测实际的数据,这便是机器学习的泛化能力。我们是希望能够在优化的过程中直接面对测试数据的优化函数,但是在实际的过程中,我们是无法得到这样的函数的,此时便使用训练过程中的优化函数来代替这个真实的函数。在最优化求解的过程中,有时求出的局部最优解也许比全局最优解更好。

三、为什么仅有数据还不够

因为需要提高的是机器学习的泛化能力,所以在训练数据集上表现优越并不能代表该模型可以在测试集上表现良好,对于我们来说测试集永远是未知的,我们不知道将要面对的测试集是什么样的,对于一个具体的问题,我们也不能得到该问题下的所有的数据集,因为这样的集合根本也没有办法全部获得。所以仅有数据还是不够的。

1、No Free Lunch(NFL,没有免费的午餐)

没有免费的午餐定理最早是在最优化理论中提出的,是由Wolpert和Macerday共同提出。定理的结论是:由于对所有可能函数的相互补偿,最优化算法的性能是等价的。其含义是说没有其他任何算法能够比搜索空间的线性列举或者纯随机搜索算法更优。

在机器学习问题中,没有学习器能够比在所有可能的函数中比随机猜测的结果更优。也就是说每个学习器都必须包含一些数据之外的知识或者假设,才能够将数据泛化。

2、关于假设

有一些假设,如平滑(smoothness),相似的样例有相似的类别,有限依赖,或者有限复杂度。其实这些假设在我们的问题中也经常会用到。

3、有关演绎(Deduction)和归纳(Induction)

演绎简单来讲就是由普通的前提推出特殊性结论的推理。而归纳则是通过对特例的分析来引出普遍结论的一种推理形式。由定义可以看出,演绎是由一般到特殊的过程,而归纳则是由特殊到一般的过程。归纳,也正是机器学习所要做的,从一些特殊的例子中得到一般性的规律,对应到机器学习中便是将少量的输入知识转化成为大量的输出知识。

四、过拟合问题(Over-fitting)

1、过拟合的含义

过拟合是指学习时选择的模型包含的参数过多,以至于出现这一模型对已知数据预测很好,但是对未知数据预测得很差的现象。

2、对过拟合的理解

一种理解过拟合的方式是将泛化误差分解成偏置(bias)和方差(variance):


其中,noise为常数。偏置度量了学习器倾向于一直学习相同错误的程度;方差则度量了学习器倾向于忽略真实信号,学习随机事物的程序。其实,在我的理解中,这里很像演化计算中的那些启发式算法的更新公式,如何协调好这两个因素是算法成功的关键。

3、过拟合的例子


一个线性学习器有高的偏置,因为加入需要分类的问题不是一个线性可分的问题,那么线性学习器是无法学习的;而决策树是有高的方差,因为在不同的训练集上,最终的学习结果是不一样的。


如上图,在1000个样本以下时,Bayes的方法的准确性要比决策树高,尽管正确的模型是基于规则的,直到数据量超过了1000,决策树的准确性才能高于bayes,这也说明:一个强错误假设比那些弱正确假设更好,因为后者需要更多的数据才能避免过拟合。

4、避免过拟合的方法

避免过拟合的方法主要有两种:

交叉验证(cross-validation)

给评价函数加上正则项

以上的两种方法在数据量比较小的时候还是比较有优势的,其中交叉验证有的时候也不能彻底解决问题,因为加入我们利用交叉验证做了太多的参数选择,那么本身这样的过程就开始有过拟合的可能。加上正则项的目的是惩罚那些包含更多结构的分类器,去选择较少结构的分类器,起到降低过拟合的可能。

5、过拟合与数据噪声的关系

有人会认为过拟合是因为数据中的噪声引起的,实际上过拟合并不仅仅是因为数据的噪声引起的,当然,在有噪声的数据中会加剧过拟合的可能性。

五、维数灾难(The curse of dimensionality)

1、维数灾难的概念

维数灾难最初是由贝尔曼提出,主要描述的一个现象是:很多的算法在低维空间表现很好,但是在高维空间中就变得无法正确计算。在机器学习中,这样的问题变得更加普遍,随着样本维度(即特征数目)的增长,正确泛化的难度会以指数级增加。这里原因是同等规模的训练集只能覆盖越来越少的输入空间。

2、典型的例子

以K-近邻这样的基于相似度的算法为例,基于相似度的推理在高维空间不再有效。分为两种情况:

有2个与预测相关的特征,增加98个不相关的特征,这样,这98个特征就会淹没掉2个相关特征,最终导致K-NN是随机预测

这100个都是相关的特征,这时所有的样本表现出来的是都是相似的

3、带来的问题及其解决办法

有人认为在机器学习问题中,特征越多越好,其实这就会引起维数灾难的问题。“blessing of non-uniformity”在一定程度上抵消了维数灾难。

在大多数应用中,样本在空间中并非均匀分布,而是集中在一个低维流形上面或者附近。以手写体识别为例:每一个像素点为一个特征,这样为什么有效?

是因为数字图片的空间要远小于整个可能的空间,学习器可以隐式地充分利用这个有效的更低位空间,也可以显示地进行降维。

六、理论VS实践

1、机器学习中常见的两类理论

能保证泛化所需要样例数目的边界

渐进:给定无穷数据,学习器将保证输出正确的分类器

2、理论与实践的关系

机器学习中理论保证的主要作用并不是在实践中作为决策的标准,而是在算法设计中作为理解和驱动的来源。

3、总结

机器学习是理论+实践的过程,里面有很多的理论是边界的条件,在实际的应用中很少会真正碰到这样的约束问题,所以不能把这样的理论作为实践的指导,而是并驾齐驱的过程。

七、特征工程

在我之前的文章中有关于特征工程的描述“机器学习中的特征——特征选择的方法以及注意点”。决定一个机器学习项目成功与否的其中一个关键因素就是特征的选取。

1、特征的难点

应用机器学习的过程是相对较为简单的过程,然而,如果考虑到对数据的收集,整合,清洗和预处理,那么整个过程就显得不会那么简单,因为在整个数据的处理过程中,针对不同的数据,处理的方法是不尽相同的,这里面就会牵涉到很多的领域知识(domain-specific)。对这些领域知识的理解是能否处理好这些数据的关键。

2、如何处理特征工程问题

每一个特征独立地看也许与分类无关,但是组合起来也许就是相关的。如果所要处理的特征很多,那么寻找合适的特征将会成为一个费时费力的事,而且,还很容易导致模型的过拟合。在上面提及到的文章中有一些方法,可以应用到特征的选择中。



参考文献

A Few Useful Things to Know about Machine Learning

转载自[CSDN],机器学习的应用——关于正确应用机器学习






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 商业管理 经管爱问 Optimization Presentation 文章 模型 如何 智能

心晴的时候,雨也是晴;心雨的时候,晴也是雨!
扣扣:407117636,欢迎一块儿吐槽!!
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 21:32