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

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

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

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

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

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

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

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

机器学习:机器学习是一门涉及多领域,多门学科理论的交叉学科,通过一个程序使其能从已有的经验中学习,从而能提升对某一项任务的解决能力。有监督学习:有监督学习是指需要给出一定量的标签指导计算机去完成任务。就像一个学生需要在老师的教导启发下进行学习。如预测房屋的价格,需要预先知道一些房屋的价格以及房屋的有关属性的数据,对已有数据进行训练后,得到的模型将会产生对不同属性房屋特性的价格预测情况。无监督学习:无监督学习顾名思义是指不需要给定标签,让模型自己训练,得出结论。类似于一个学生通过自己的积累产生对知识的理解。如有一些房屋的有关属性的数据, 模型可以自动识别出哪些特征是属于市中心的房子, 哪些事属于郊区的房子,得到的模型可以产生对不同房屋属性的类别的判断。

01.选择合适的算法

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

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

 第一步,明确具体问题

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

回归是研究因变量与自变量之间关系的方法。上文所说的房屋价格的预测的例子就是一个回归问题,构建房屋价格与房屋其他属性之间关系的模型, 实现新房屋的价格的预测,我们预测的是一个模型的连续性的值。 分类将数据集按照不同的特点分为不同的类别。如金融市场中一个常见的预测股价涨跌的示例,给定一段时间内股价的涨跌方向作为模型的输出,即我们设定的标签,预测后一段时间股价的涨跌情况,这里的结果只会有涨和跌两种情况,预测的是间断的值。

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

聚类将数据集分为多个类似的对象组成的多个类。当我们在网站上搜索一条内容的时候,网站会有相似的内容推荐,这是因为网站通过聚类的方式将有相似浏览特征的客户聚集在一起共同分析,以便更了解客户。聚类与分类的差别是,分类是我们知道怎样的特征能够属于一类,并设定了标签,而聚类分的类别则完全是模型自主切分。降维的基本原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间,从而降低了原数据集的维度,同时又能尽量减少数据信息的丢失。经过降维,一方面可以对数据进行可视化研究,另一方面由于数据量大大减少,将提高机器学习的效率。

第二步,选择算法

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

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

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

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

02.模型评估

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

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

过拟合与欠拟合

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

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

评估方法

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

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

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

03.优化模型

评估模型的泛化能力评估,当模型的应用不理想时,我们应该如何优化模型?

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

学习曲线

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

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

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

 优化模型

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

1. 数据量的多少。较少的数据量更容易过拟合,增大数据量对过拟合是有效的。2. 增加或减少特征量。特征值较少会影响模型对样本数据的认识,导致欠拟合,增加特征值对欠拟合时有效的。3. 增加或减少正则化。正则化的使用对过拟合是有效的。

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

 

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

 

转载于:https://www.cnblogs.com/yyy-blog/p/10400885.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[币严区块链]以太坊(ETH)Dapp开发入门教程之宠物商店领养游戏

阅读本文前,你应该对以太坊、智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 除此之外,你最好还了解一些HTML及JavaScript知识。 本文通过实例教大家来开发去中心化应用,应用效果如图: 项目背景 Pete有一个…

怎么通俗易懂地解释贝叶斯网络和它的应用?

作者:小杰链接:https://www.zhihu.com/question/28006799/answer/38996563来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。英语原文:http://www.norsys.com/tutorials/netica/secA/tut…

SVM分类算法的基本理论问题

1.引言   随着网络技术的飞速发展和普及,进入了信息大爆炸的时代。信息无处不在,给我们的学习生活带来了诸多便捷,由于堪称海量的信息量,我们从中获取有用的信息变得困难,解决这一难题就是要对这些大量的信息进行分…

决策树案例理解

小王是一家著名高尔夫俱乐部的经理。但是他被雇员数量问题搞得心情十分不好。某些天好像所有人都來玩高尔夫,以至于所有员工都忙的团团转还是应付不过来,而有些天不知道什么原因却一个人也不来,俱乐部为雇员数量浪费了不少资金。 小王的目的是…

剑指offer-反转链表

反转链表 一、题目描述 输入一个链表,反转链表后,输出新链表的表头。 (看过答案和测试之后,题目隐藏条件是要求链表是不带头结点的) 二、题目思路 就是用三个指针,head、pre、next,head之前都是…

从决策树学习谈到贝叶斯分类算法、EM、HMM

引言 最近在面试中(点击查看:我的个人简历,求职意向,择司标准),除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全不代表你将来的面试中会遇…

计算机网络与协议

计算机网络: TCP/IP中只要是能够设定IP地址的计算机就成为主机 网络按其规模可分为: WAN(广域网):覆盖多个远距离区域的远程网络 MAN(城域网):比广域网小一级,连接整个城…

对线性回归、逻辑回归、各种回归的概念学习

回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果 都…

XGBoost入门及实战

kaggle比赛必备算法XGBoost入门及实战 xgboost一直在kaggle竞赛江湖里被传为神器,它在对结构化数据的应用占据主导地位,是目前开源的最快最好的工具包,与常见的工具包算法相比速度提高了10倍以上! XGBoost is an implementation o…

几个常用算法的适应场景及其优缺点

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法,诸如SVM&#x…

EM算法 案例量则

例子一:理论: 简版:猜(E-step),反思(M-step),重复; 啰嗦版: 你知道一些东西(观察的到的数据), 你不知道一些东西(观察不到…

C#编写TensorFlow人工智能应用 TensorFlowSharp

TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习。 TensorFlow简单介绍 TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。 TensorFlow 内建深度学习的扩展支持…

马尔可夫链 (Markov Chain)是什么鬼

作者:红猴子链接:https://www.zhihu.com/question/26665048/answer/157852228来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。马尔可夫链 (Markov Chain)是什么鬼 它是随机…

主题模型-LDA浅析

个性化推荐、社交网络、广告预测等各个领域的workshop上都提到LDA模型,感觉这个模型的应用挺广泛的,会后抽时间了解了一下LDA,做一下总结: (一)LDA作用 传统判断两个文档相似性的方法是通过查看两个文档共…

dorado-SplitSpanel控件

1.这是一个界面布局控件 2.分为SideControl边区域和MainControl主区域 3.常用属性 3.1 collapsed:打开页面时,边区域是否显示 3.2 position:边区域占总的大小 转载于:https://www.cnblogs.com/ergougougou/p/10438752.html

CAFFE怎样跑起来

0、参考文献 [1]caffe官网《Training LeNet on MNIST with Caffe》; [2]薛开宇《读书笔记4学习搭建自己的网络MNIST在caffe上进行训练与学习》([1]的翻译版,同时还有作者的一些注解,很赞); 1、*.sh文件如何执行? ①方…

运行caffe自带的两个简单例子

为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载。但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了。 注意:在caffe中运…

运行caffe自带的mnist实例详细教

为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载。但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了。 Mnist介绍:mnist是…

caffe路径正确,却读不到图片

调试caffe,用已有的网络训练自己的数据集的时候(我这里做的是二分类)。在生成均值文件之后,开始train,发现出现了这个问题。 1,路径正确,却读不到图片。 [db_lmdb.hpp:15] Check failed: mdb_st…