机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节,沉浸于机器学习所需要的数学功底,但对于机器学习从业者来说,如何更好更快速的实现一个机器学习项目更值得关注

正如吴恩达在《机器学习》这门课中所说,他将花费更多的时间来教授机器学习、人工智能的最佳实践以及如何让它们工作。好的工具,在会用和不会用的人之间存在着鸿沟。

当我们做一个机器学习项目时,不纠结于各个模型算法的内部细节,从整体的角度看具体问题该如何更可靠更高效得出结论,才不至于浪费更多的时间。从对数学的焦虑中,众多算法的选择中抽身出来, 去思考以下几个问题:

  • 我们如何在项目中选择更为合适的算法?

  • 选择算法之后,如何知道我们的模型是更有用的或更好的?

  • 如何进一步优化模型以达到更理想的效果?

本文将基于上述几个问题展开,在此之前,首先明确几个概念。

机器学习:机器学习是一门涉及多领域,多门学科理论的交叉学科,通过一个程序使其能从已有的经验中学习,从而能提升对某一项任务的解决能力。

有监督学习:有监督学习是指需要给出一定量的标签指导计算机去完成任务。就像一个学生需要在老师的教导启发下进行学习。

如预测房屋的价格,需要预先知道一些房屋的价格以及房屋的有关属性的数据,对已有数据进行训练后,得到的模型将会产生对不同属性房屋特性的价格预测情况。

无监督学习:无监督学习顾名思义是指不需要给定标签,让模型自己训练,得出结论。类似于一个学生通过自己的积累产生对知识的理解。

如有一些房屋的有关属性的数据, 模型可以自动识别出哪些特征是属于市中心的房子, 哪些事属于郊区的房子,得到的模型可以产生对不同房屋属性的类别的判断。

01选择合适的算法

针对具体的问题选择不同的算法。

如一个分类问题可优先选择逻辑回归,支持向量机,神经网络等模型,数据集较大的问题优先选择朴素贝叶斯方法,决策树和逻辑回归具有可解释性。聚类问题我们可能会考虑层次分析,k均值模型。 如果数据集的特征很多,可以考虑采用主成分分析,线性判别分析等进行降维。

第一步,明确具体问题


明确目标任务,进而实现对算法的选择。

有监督学习主要有回归和分类任务:

回归是研究因变量与自变量之间关系的方法。

上文所说的房屋价格的预测的例子就是一个回归问题,构建房屋价格与房屋其他属性之间关系的模型, 实现新房屋的价格的预测,我们预测的是一个模型的连续性的值。

分类将数据集按照不同的特点分为不同的类别。

如金融市场中一个常见的预测股价涨跌的示例,给定一段时间内股价的涨跌方向作为模型的输出,即我们设定的标签,预测后一段时间股价的涨跌情况,这里的结果只会有涨和跌两种情况,预测的是间断的值。

无监督学习主要有聚类和降维任务:

聚类将数据集分为多个类似的对象组成的多个类

当我们在网站上搜索一条内容的时候,网站会有相似的内容推荐,这是因为网站通过聚类的方式将有相似浏览特征的客户聚集在一起共同分析,以便更了解客户。聚类与分类的差别是,分类是我们知道怎样的特征能够属于一类,并设定了标签,而聚类分的类别则完全是模型自主切分。

降维的基本原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间,从而降低了原数据集的维度,同时又能尽量减少数据信息的丢失。经过降维,一方面可以对数据进行可视化研究,另一方面由于数据量大大减少,将提高机器学习的效率。

第二步,选择算法


明确项目的任务,对算法有进一步的了解,可以帮助我们了解模型的使用细节,以便更快速实现模型。

我们将一些算法模型整理成如下思维导图的形式,并对相关算法的基本思想做了简单阐述。

你可以很快速的浏览每个算法的核心及应用,在面对实际问题时做出大致的判断。

我们论述了有关问题的定位以及相关算法模型的选择,但需要注意的是,我们已经针对算法模型有一个初步的定位,在实践过程中仍然需要将实际数据与模型结合考虑。最初尝试时可以使用较少的数据量快速过滤出一些算法,最终选定少数的算法进行后续的优化。同时,对数据的理解程度也将影响模型的选择,对数据越熟悉越能够做出更高效的判断。

02模型评估

选择合适的算法之后,如何知道我们所设计的模型是有用的或者较好的?

机器学习是利用模型对数据进行拟合,对训练集进行拟合,训练模型,对样本外数据集进行预测。其中模型对训练集数据的误差称为经验误差, 对测试集数据的误差称为泛化误差。模型对样本外数据集的预测能力称为模型的泛化能力。

过拟合与欠拟合


欠拟合和过拟合都是模型泛化能力不高的表现。欠拟合通常表现为模型学习能力不足,没有学习到数据的一般规律。而过拟合则是模型捕捉到数据中太多的特征,以至于将所有特征都认为是数据的一般规律。如下图树叶的示例很形象的表达了欠拟合与过拟合。

我们希望的状态是模型能训练出数据的一般规律,既不过拟合,也不欠拟合。如下图所示,最左侧可能是一种欠拟合状态,拟合的函数和训练集的误差较大,最右侧是过拟合,拟合的函数与训练集几乎完全匹配,这种情况在测试集中结果反而会变差。由此,需要构建评估模型来评估模型的泛化能力,这是检验一个模型是否更为有效的方法。

评估方法

将一个模型的训练集也当作测试集会导致对模型泛化能力的评估不准确,因此我们需要将数据拆分,即使用训练集进行训练, 测试集进行验证评估模型的准确性, 两个数据集不相交,从而验证模型的泛化能力。

常见的模型评估方法有留出法,k折交叉验证法和自助法:

K折交叉验证中k一般会选择5,10,20,其中k越大需要训练的次数越长,其误差估计的效果也越好。在验证中,训练集和测试集的数据分布应尽可能一致,如果不一致,可能会影响测试集的误差。

03优化模型

评估模型的泛化能力评估,当模型的应用不理想时,我们应该如何优化模型?假设我们在做一个预测模型时, 预测的结果与实际有很大的误差。我们知道模型不理想主要来源于模型的欠拟合和过拟合,接下来该如何做?

学习曲线

考虑使用学习曲线来判断模型的过拟合问题。

学习曲线是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。

当训练集与测试集的误差收敛但却很高时,为高偏差,左上角偏差较高,训练集和验证集的准确率很低,可能是欠拟合。当训练集与测试集的误差之间有很大的差距时,为高方差,右上角中方差较高,训练集的准确率要高于验证集的准确率,可能是过拟合。理想的状况是偏差和方差都很小,此时既不欠拟合也不过拟合。

优化模型

基于上文,当模型出现过拟合或欠拟合时,可从以下几个方面考虑:

1. 数据量的多少。较少的数据量更容易过拟合,增大数据量对过拟合是有效的。

2. 增加或减少特征量。特征值较少会影响模型对样本数据的认识,导致欠拟合,增加特征值对欠拟合时有效的。

3. 增加或减少正则化。正则化的使用对过拟合是有效的。

具体可以参见以下思维导图:

一个机器学习项目是实践与理论相结合的过程,通过实践加深对理论的认识,学习理论提高对实际问题的应用能力。在不断熟悉实际问题的数据类型与背景的过程中,通过训练机器学习模型,使用各种方法调整并优化模型以得到满意的结论,这一过程可能比单一熟悉机器学习算法理论耗时要长。 通常情况下,我们会花更多的时间在数据的预处理和参数调优上,需要不断调整数据,优化模型,直到达到较为理想的效果。


如果想要更好的加强这方面的锻炼,建议多交流,看看别人的经验总结,网易云课堂推出机器学习微专业,目前有免费的直播课程,由行业专业人士免费为各位答疑解惑,加强交流。以下福利都是限时免费送出,感兴趣的不要错过:

Part.1

免费直播课

从理论到实践,教你轻松应对面试中的SVM

<2月20日 周三 20:00>

直播大纲:

1 AI大厦的基础 :数学

2 谁说SVM只能做分类?

3 面试重点:SVM目标函数推导

4 案例实战:基于SVM的手写数字识别

直播讲师:

网易特邀AI讲师Jason

Part.2

免费体验课

《机器学习基础》

课程大纲

1 机器学习的就业前景

2 Python实战学习

(附15天学习计划和趣味项目源码)

3 机器学习工程师的实际应用

小姐姐群内答疑

Part.3

人工智能学习资料包

6个实战案例学习资料及代码

面试相关问题

程序员简历模板

数学基础学习资料

134篇国际经典论文集

Part.4

答疑助力+福利获取方式

扫码添加小助手,即可免费获取以上所有福利

席位有限,先到先得~

逃离数学焦虑、算法选择,思考做好机器学习项目的3个核心问题相关推荐

  1. python数学建模基础教程_Python 3破冰人工智能 从入门到实战 大学生数学建模竞赛数学建模算法与应用教程 机器学习深度学...

    第 1章  从数学建模到人工智能1 1.1  数学建模  1 1.1.1  数学建模与人工智能  1 1.1.2  数学建模中的常见问题  4 1.2  人工智能下的数学  12 1.2.1  统计量 ...

  2. 解决做好一个机器学习项目的3个问题

    机器学习是目前人工智能最令人激动的研究方向之一.我们可能更关注机器学习算法的实现细节,沉浸于机器学习所需要的数学功底,但对于机器学习从业者来说,如何更好更快速的实现一个机器学习项目更值得关注. 正如吴 ...

  3. 做机器学习项目的checklist

    2020-01-20 18:06:29 作者:datarevenue 编译:ronghuaiyang 导读 这个checklist能帮助你迈出做一个成功的机器学习项目第一步. 避免混淆,用这个简单的清 ...

  4. 成佩涛——成功做好软件项目的20个要点

    1.定义项目成功的标准 在项目的开始,要保证风险承担者对于他们如何判断项目是否成功有统一的认识.经常,满足一个预定义的进度安排是唯一明显的成功因素,但是肯定还有其他的因素存在,比如:增加市场占有率,获 ...

  5. 数学建模算法笔记(2)——主成分分析

    数学建模算法笔记(2)–主成分分析 目的:主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我 们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量,实际上是一种降维方法. ...

  6. 学界 | 终结吧!机器学习的数学焦虑

    开始机器学习之旅,需要什么层次的数学功底? 尤其是对于那些没有学过数学和统计学的同学们来说,这个问题当前不甚清楚,在这篇文章中,我将要为那些使用机器学习技术来开发产品或做学术研究的人们提供一些数学背景 ...

  7. 算法的优缺点_机器学习算法优缺点 amp; 如何选择

    (点击上方公众号,可快速关注) 转自: 算法与数学之美 主要回顾下几个常用算法的适应场景及其优缺点! 机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以 ...

  8. 谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)

    本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A 谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26  ...

  9. 【机器学习入门】(4) 决策树算法理论:算法原理、信息熵、信息增益、预剪枝、后剪枝、算法选择

    各位同学好,今天我向大家介绍一下python机器学习中的决策树算法的基本原理.内容主要有: (1) 概念理解:(2) 信息熵:(3) 信息增益:(4) 算法选择:(5) 预剪枝和后剪枝. python ...

最新文章

  1. Linux下select, poll和epoll IO模型的详解
  2. 七.Hystrix Timeout机制
  3. Java Interview Questions
  4. 06 is和==的区别 encode()编码 decode()解码
  5. IE、FF CSS 兼容性、兼容浏览器的技巧 2
  6. 量子计算机时空穿越,时光穿梭是否可行?未来人类真能穿越时空吗?科学家:不是不可能...
  7. 计算机制作网线的方法,如何制作网线?网线制作方法图解
  8. 《自己动手写cpu》读书笔记
  9. Mac模拟器进行远程调试
  10. hdf heg 批量拼接_MODIS数据处理新工具(HDF-EOS To GeoTIFF Conversion Tool,HEG_2.15)官方使用说明...
  11. Vue 事件绑定与解绑
  12. 线上环境频繁GC问题排查,Finalizer对象该背这个锅吗?
  13. 华为怎么显示返回按键_苹果手机为何一直没有“返回键”?其实乔布斯生前就说出了答案!...
  14. ESLint配置详解
  15. 初学者友好!10个有趣且易上手的AI项目(附Python源代码)
  16. 拉勾网认证企业信息采集
  17. 2012年7月发布的中国企业500强排行榜名单
  18. Core Java练习题
  19. 一个VC爱好者的入门之路
  20. 电商裂变新玩法—全新拼团!

热门文章

  1. 两线怎么接三线插座图_一文搞懂电工配电二线制、三线制、四线制
  2. 倒出mysql库命令行_mysql命令行导入导出数据库
  3. python restful服务部署_用python为mysql实现restful接口
  4. 栈的应用-四则运算表达式
  5. C/C++ 代码转换规范化的脚本
  6. mariadb 10.2.3支持延时复制
  7. Sublime Text 3 配置浏览器预览路径 localhost
  8. AngularJs学习笔记--E2E Testing
  9. 用于正则表达式的 Regex.Matches静态方法的几种用法
  10. 红管2不显示服务器,红色管弦乐队2怎么建立服务器 | 手游网游页游攻略大全