机器学习基础流程概念[转载]

机器学习概念

定义:对于某给定的 \color{red}{任务T} ,在合理的 \color{red}{性能度量方案P} 的前提下,某计算机程序可以自主学习任务T的 \color{red}{经验E} ; 随着提供合适、优质、大量的经验E,该程序对于任务T的性能逐步提高。

从机器学习的概念转化为实际的开发思路:

算法T:根据业务需要和数据特征,选择则相关的算法。
模型E:基于数据和算法构建出来的模型。
评估/测试(P):对模型进行评估的策略。

机器学习步骤: 算法 → 模型 → 评估 → 算法

机器学习是人工智能的一个分支。机器学习的思路是:根据大量的训练数据,按照一定的方式来指导机器学习;随着机器训练次数的增加不断得学习和改进,最终使得学习模型能够用于预测相关问题的输出。拿之前盖楼的例子来说,我们要不断得修改图纸的内容,使其越来越像金茂大厦。

 

深度学习和机器学习的区别 

机器学习偏向于对数据的处理,只要有数据,机器学习中相关的算法都可以运用进去。

深度学习则偏向于图像检测、自然语言处理等,深度学习更专精于某个领域一些。

如果机器学习和深度学习各会一点,而没有专精于某个领域,那么对于找工作而言未必是个好事。就好比图像识别的相关系数和自然语言处理的相关系数是完全不同的。如果你只想做图像检测,那么就将深度学习中的图像处理、目标检测学明白即可。

后续的文章会分别将机器学习和深度学习进行梳理,当大家对内容有了一定的认知后再慢慢思考自己的兴趣所在以及将来研究的方向。相信这会是你毕生的事业。

 

向量和矩阵

在机器学习中,如果定义了一个向量,那么一定是列向量,多个列向量组成一个矩阵。

下图是一个3行2列的矩阵,3行代表有3个体检报告的样本(维度是3),2列代表每个体检报告的样本包含2个特征。

身高体重
175 70
160 58
85 77

将样本数据传入最优性能假设公式进行计算,得出了目标值:判断样本数据的所有者是男是女。1代表男,0代表女。

身高体重目标
175 70 1
160 58 0
85 77 1

x(i) 表示第i个样本的x向量。即一个样本的值 ,包含一组特征 (身高,体重)
xi 表示x向量的第i维度的值。即一个特征的所有值(x2=体重向量)



鲁棒性

Robwst,翻译成中文是稳健性、健壮性的意思。当存在异常数据的时候,算法也会拟合数据。简单的说,系统能够识别出异常的数据,不会让它影响到计算的结果。

鲁棒性强,意味着异常数据对系统的影响较小。鲁棒性差,意味着一旦出现了异常数据,模型会去迎合这些异常数据,使结果收到干扰。

 
 
过拟合和欠拟合 略
常见的应用框架

scikit-learn(Python)
http://scikit-learn.org/stable/

以下两种是基于大数据处理的框架
Mahout(Hadoop,基于MapReduce)
http://mahout.apache.org/

Spark MLlib
http://spark.apache.org/

 
机器学习的大纲

这里我先把后续文章的大纲简单列一下,后续可能会略有调整。

首先理解回归和分类的概念。

回归:对连续型数据未来的预测称为回归。是进入机器学习的入门算法,帮助你们进入机器学习的大门。该算法和统计中相关的模型建立、假设相关,最后通过线性回归对数据进行预测。统计学习中的终极是回归算法,而这个算法是机器学习的开始,是最基础、最简单的方法。

分类:对离散型数据的归纳称为分类。

1、LinearRegression线性回归:对连续型数据未来的预测。

2、Logistic回归:名曰回归,却处理着离散数据的分类。如:根据一堆数据,分析是产生这些数据的男是女。

3、Softmax回归: 处理多分类。如:分析一个动物是猫是狗是兔子,处理多分类。是在Logistic二分类的基础上进化出来的算法。

4、 KNN算法: 也称邻近算法,是分类算法中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。

5、 决策树:比较高级的算法,分类问题和回归问题都能解决。

6、 集成学习:了解了以上若干比较基础的机器学习算法后,将之前的方法合并起来。
也许这些模型的最终的模型结果不是很好,通过某种集成的方法也许会让结果变得更好。

7、SVM支持向量机:主要用来解决分类问题。其中SVR也支持向量回归的算法。

8、聚类:以上的算法都有明确的目的,但如果对于数据的分类结果事先不确定,或者说不知道数据要分出几类。那么最合理的解决方法就是把数据划分开,每一类数据都分析出一个比较典型的特性来区分。这种思想和算法叫做聚类。1~5是有监督的方法,即有目标存在而聚类是一种无监督的方法。

9、贝叶斯算法、贝叶斯网络:一种特定的分类方法,用于文本的分类。

10、EM算法:不是机器学习的模型,是一种解决机器学习模型中参数求解的算法。

11、HMM(隐马尔可夫模型):中文分词运用的比较多。也是分词领域中最基本的模型,面试中会经常问起,但工作中未必会用到。

12、主题模型LDA算法:有若干份文章,想知道文章的类型(是新闻、小说?)或更细的分类(悬疑小说、科幻小说?) 对于人类而言需要阅读后才能知道。机器能做的是对这若干份文章进行划分。注意:是划分而不是明确分类。因为在有监督的算法中,我们才能确定文章所属的明确分类,但很多时候分类的时候并不知道。LDA算法通过机器对文章进行分类,最后人工进行贴标签。

13、特征工程:将原始数据转化为特征,更好表示预测模型处理的实际问题,提升对于未知数据的准确性。它是用目标问题所在的特定领域知识或者自动化的方法来生成、提取、删减或者组合变化得到特征。

AI面试中最重要的能力指标

1、项目经历。
2、对算法的理解能力:遇到一个复杂公式的时候,如何对其进行解读。
3、计算机编程的能力。

 
商业场景

\color{red}{机器学习:}模式识别、数据挖掘、统计学习
\color{red}{深度学习:}图像识别、语音识别、自然语言处理

数据分析、数据挖掘、机器学习之间的区别和联系

\color{red}{数据分析:}对海量的数据进行分析,并提取有用的信息,以及形成结论。是一种对数据详细研究和概括的过程。实际工作中可以帮助人们做出判断,数据分析一般而言可以分为统计分析、探索性数据分析、验证性数据分析三大类。

其中统计分析和验证性数据分析在机器学习中也会用到。需要我们对数学统计中的概念有基本的认知。比如中位数、方差、均值、特征值之间的协方差等等,都需要了解,对样本的初步浏览过程就是探索性分析。验证性数据分析是对结果是否合理进行分析,在机器学习中就是不断地判断模型的效果指标是否在提升。

\color{red}{数据挖掘:}一般值从大量数据中通过算法搜索隐藏于其中信息的过程。通常通过统计、检索、机器学习、模式匹配等诸多方法来实现这个过程。

涉及面非常广,很多时候企业有数据却不知道从何下手。数据挖掘就是从毫无头绪的数据中大胆预测并分析出有价值的信息。

\color{red}{机器学习:}是数据分析和数据挖掘的一种比较常用、比较好的手段。

工作中会遇到一些坑:比如有些客户提出做一些数据分析的需求,但是客户不懂技术,给的数据又少又乱,很多时候还需要提醒客户补充一些必要的数据。从客户立场上来说,数据即是金钱。客户透露的数据越多,损失就越大。因此做人工智能相关的工作非常考验工程师的沟通能力,控制客户的期望值,充分告诉客户我们分析的产物能够为企业提供哪些帮助、我们做的模型比别人好在哪里。

 

机器学习分类

\color{red}{有监督学习:} 有目标值,标签化训练数据。

判别式模型:对条件概率进行建模。线性回归、决策树等。
生成式模型:对联合分布概率进行建模。隐马尔可夫、LDA等。

生成式模型适用面更广,关注数据是如何产生的,寻找的是数据的分布模型。
判别式模型更直接,目标性比较强。只想看看某个条件的情况下的分布是什么样的。关注的是数据的差异性,寻找的是分类面。

因此生成式的模型可以转化成判别式的模型,反之则不行。在后文具体模型中进一步细说,面试中考官有时会问某个模型属于生成式还是判别式,记住这点即可。

\color{red}{无监督学习:} 无目标值,为了推断出数据的一些内在结构,一种探索性分析的过程。

\color{red}{半监督学习:} 利用少量标注样本和大量未标注样本进行训练和分类的问题。发展不是很完整,和流形学习有点关系,本文集不做讨论。

 

 

机器学习开发流程

1、数据收集
机器学习最关键的是数据,有了数据我们才能知道选择什么样的模型,选择什么样的参数,怎么对模型进行调优,得到我们最后想要的结果。因此数据搜集是一件相对比较关键的任务,一般需要我们从企业现有的数据中找出有用的数据。

我们也不能在拿到数据后什么都不做,第一时间就将数据扔给机器进行处理(直接用API对数据进行分析)。这样的处理结果会非常差。一般而言做完数据分析后,工程师需要写一份报告,其中涉及:为什么选这些模型,为什么要选这些数据。所以当我们拿到数据后,首先一定要去阅读这些数据集的数据描述(Data Description)。数据描述会对每一个数据的特征以及目标做一个详细的解释。如果是参加比赛,那么比赛的数据一定会把需要预测的目标Targer告诉你。而在实际的工作中,我们要人为得从繁杂的数据库中找到需要的特征和目标作为最终的预测值。所以如果不读数据描述,连目标都不确定,如何能建立起一个合适的模型?

数据搜集不是简单获取数据的步骤,更重要的是你要了解这批数据。

2、 数据预处理
企业中一般有一些数据库维护的运维人员,他们对于数据的定义和专门做机器学习的人不一样。数据库中的数据往往会存在很多缺失值,甚至是一些逻辑混乱的数据。我们必须对这些数据的异常充分了解后,才能算完成了数据收集的操作。

比如我们设姓别属性,0代表男,1代表女。数据库中有时会出现00或01这样的数据。如果人为得去看,很明显可以识别出00代表男,01代表女。而如果是机器拿来学习,它会以为目标有4个分类(0,1,00,01)。我们要将数据都转化成0和1,再交给机器处理。

3、特征提取
特征提取分为两个步骤:第一、特征选择,第二、特征降维。PS:对于特征的定义在《02 机器学习理性认识》中详细说明过,不再赘述。

特征选择:数据集中可能包含n个特征,从中选出k个我们觉得比较重要的特征。

特征降维:为了彻底说明白这个问题,我绕一个圈。


作者:白尒摩斯
链接:https://www.jianshu.com/p/c977c2728bcd
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

posted @ 2019-02-18 12:41  大树的博客  Views(399)  Comments(0Edit  收藏  举报