一、什么是机器学习
机器学习研究如何让计算机不需要明确的程序也能具备学习能力。(—— Arthur Samuel,1959)

一个计算机程序在完成了任务T之后,获得经验E,其表现效果为P,如 果任务T的性能表现,也就是用以衡量的P,随着E的增加而增加,可以 称其为学习。(——Tom Mitchell,1977)

虽然机器学习的研究来源于人工智能领域,但是机器学习的方法却应用于数 据科学领域,因此我们将机器学习看作是一种数学建模更合适。 机器学习的本质就是借助数学模型理解数据。当我们给模型装上可以适应观 测数据的可调参数时,“学习” 就开始了;此时的程序被认为具有从数据 中 “学习” 的能力。一旦模型可以拟合旧的观测数据,那么它们就可以预 测并解释新的观测数据。

二、模型构建流程
第一步:获取数据

既然我们机器学习是借助数学模型理解数学,那么最重要的原材料就是数据了。获取数据通常指的是获取原始数据,当然这里可以是一 手数据,也可以是二手数据,关键看机器学习的学习任务。“ 数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限”,可见数据在机器学习中的作用。 那么一般而言对于数据我们有 哪些要求呢?

(1)数据要具有代表性,数据需要包含尽可能多的信息,数据也需要同学习任务有关联性。

(2)对于监督学习中的分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。

(3)需要评估数据样本的量级,估算模型学习对内存的消耗。如果数据量太大可以考虑减少训练样本、降维或者使用分布式机器学习系统。

第二步:获取一个任务

这一步可以同第一步互换顺序,根据实际业务需求,可能会先拿到任务,再寻找合适的数据。 在获取任务之后,需要将任务问题抽象成数学问题,明确我们可以获得什么样的数据,学习的目标是一个什么类型的问题,然后划归为 其中的某类问题,比如分类问题、回归问题、聚类问题、降维问题等。

第三步:根据数据和算法进行学习

这一部分包含了数据清洗、数据预处理、特征工程三大板块的内容。我们依次来做展开~

数据清洗

数据清洗一般根据具体学习任务或者模型需求而有不同的操作方法,因而难以归纳统一的方法和步骤,但是根据数据不同可以给出下面 常用的数据清洗方法。

(1)缺失值处理:大多数情况下,缺失值需要手工填入( 即手工清理)。当然,某些缺失值可以从本数据源或其它数据源推导出来,这就可以用平均值、 最大值、最小值或更为复杂的概率估计代替缺失的值,从而达到清理的目的。

(2)异常值检测及处理:用统计分析的方法识别可能的错误值或异常值,如偏差分析、识别不遵守分布的值,通过 常识性规则、业务特定规则等检查数据值。

(3)重复值检测及消除方法:数据中属性值相同的记录被认为是重复记录,通过判断记录间的属性值是否相等来检测记录是否相等,相等的记录合并为一条记录(即 合并/清除)。合并/清除是消重的基本方法。

数据预处理

这里数据预处理不单单是处理我们不一致、错误或者异常的数据,更重要的是保证数据能正常传入模型中进行学习,并达到预期的效果。 预处理的方法涉及很多内容,比如归一化、标准化、连续数值型变量分箱、有序分类变量One-Hot编码、字符型变量数值化等等。

特征工程

特征工程包括从原始数据中特征构建、特征提取、特征选择。特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和 性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。数据挖掘的大部分时间就花在特征工程上面,是机器学习非常 基础而又必备的步骤。

第四步:模型评估

使用机器学习进行判断/预测的效果,如果不能接近/超过人类, 那就没有任何意义。 如果人脸识别不能达到几乎100%准确,根本不可能使用人脸识别 代替人工检查,所以追求模型预测准确是机器学习的核心目标。

运算速度 能够同时处理大量数据,可以在超短时间内极速学习,是机器学习 的重要优势,如果机器学习的判断速度不能接近/超越人类,那计 算机判断的优越性就几乎不存在了。

模型效果与运算速度往往是此消彼长的,在模型效果不错的情况下 保障运算速度较快,是机器学习中重要的一环。

可解释性

机器学习是一门技术,是一门有门槛的技术,所以大众注定不太 可能短时间内熟悉它,但是技术人员肩负着要向老板,客户,同 事,甚至亲朋好友解释机器学习在做什么的职责。 比如说,在“是否分发信用卡”的问题中,如果算法判断“这个 人有违约风险,不发信用卡”,那客户很可能找上门来要个解释, 这个时候,你能告诉他说“因为算法判断你不通过”吗? 在解释性需求很强的领域,我们就需要可解释的算法。

服务于业务

而所有的一切,都是为了服务于业务。 只有模型效果优秀,运算速度快,还带有一部分可解释性的算法才是 最优秀的算法。

三、交叉验证
说到交叉验证就不得不提到模型的「泛化能力」,而泛化能力涉及了「训练误差」和「测试误差」两个概念。 训练误差与测试误差

我们在进行学习算法前,通常会将一个样本集分成训练集(training set)和测试集(testing set),其中训练集用于模型的学习或训练, 而后测试集通常用于评估训练好的模型对于数据的预测性能评估。

(1)训练误差(training error)代表模型在训练集上的错分样本比率。

(2)测试误差(empirical error)是模型在测试集上的错分样本比率。

1.泛化能力

训练误差的大小,用来判断给定问题是不是一个容易学习的的问题。测试误差则反映了模型对未知数据的预测能力,测试误差小的学习 方法具有很好的预测能力,如果得到的训练集和测试集的数据没有交集,通常将此预测能力称为泛化能力(generalization ability)。

2.那么什么是交叉验证呢?

在业务当中,我们的训练数据往往是已有的历史数据,但我们的测试数据 却是新进入系统的一系列还没有标签的未知数据。我们的确追求模型的效 果,但我们追求的是模型在未知数据集上的效果,在陌生数据集上表现优 秀的能力被称为泛化能力,即我们追求的是模型的泛化能力。 我们认为,如果模型在一套训练集和数据集上表现优秀,那说明不了问题, 只有在众多不同的训练集和测试集上都表现优秀,模型才是一个稳定的模 型,模型才具有真正意义上的泛化能力。为此,机器学习领域有着发挥神 奇作用的技能:「交叉验证」,来帮助我们认识模型。 数据集 测试集 验证集

3.交叉验证的常用方法

交叉验证方法有很多,其中最常用的是k折交叉验证。我们知道训练集和测试集的划分会干扰模型的结果,因此用交叉验证n次的 结果求出的均值,是对模型效果的一个更好的度量。

四、模型评估
1.混淆矩阵

混淆矩阵是二分类问题的多维衡量指标体系,在样本不平衡时极其有用。在混淆矩阵中,我们将少数类认为是正例,多数类认为是负 例。在决策树,随机森林这些普通的分类算法里,即是说少数类是1,多数类是0。普通的混淆矩阵,一般使用{0,1}来表示。混淆矩阵 正如其名,十分容易让人混淆,在许多教材中,混淆矩阵中各种各样的名称和定义让大家难以理解难以记忆。这里为大家找出了一种 简化的方式来显示标准二分类的混淆矩阵,如图所示:

2.模型整体效果:准确率

准确率Accuracy 就是所有预测正确的所有样本除以总样本,通常来说越接近1越好。

3.捕捉少数类的艺术:精确度,召回率和F1 score

精确度Precision,又叫查准率。表示所有被我们预测为是少数类的样本中,真正的少数类所占的比例。精确度越低,则代表我们误伤 了过多的多数类。精确度是“将多数类判错后所需付出成本”的衡量。 通常做了样本平衡之后,精确度是下降的。因为很明显,样本平衡之后,有更多的多数类被我们误伤了。精确度可以帮助我们判断, 是否每一次对少数类的预测都精确,所以又被称为“查准率”。在现实的样本不平衡例子中,当每一次将多数类判断错误的成本非常 高昂的时候(比如大众召回车辆的例子),我们会追求高精确度。精确度越低,我们对多数类的判断就会越错误。当然了,如果我们 的目标是不计一切代价捕获少数类,那我们并不在意精确度。

捕捉少数类的艺术:精确度,召回率和F1 score 召回率Recall,又被称为敏感度(sensitivity),真正率,查全率。表示所有真实为1的样本中,被我们预测正确的样本所占的比例。召 回率越高,代表我们尽量捕捉出了越多的少数类,召回率越低,代表我们没有捕捉出足够的少数类。 召回率可以帮助我们判断,我们是否捕捉除了全部的少数类,所以又叫做查全率。 如果我们希望不计一切代价,找出少数类(比如找出潜在犯罪者的例子),那我们就会追求高召回率,相反如果我们的目标不是尽量 捕获少数类,那我们就不需要在意召回率。 注意召回率和精确度的分子是相同的(都是11),只是分母不同。而召回率和精确度是此消彼长的,两者之间的平衡代表了捕捉少数 类的需求和尽量不要误伤多数类的需求的平衡。究竟要偏向于哪一方,取决于我们的业务需求:究竟是误伤多数类的成本更高,还是 无法捕捉少数类的代价更高。

4.捕捉少数类的艺术:精确度,召回率和F1 score

为了同时兼顾精确度和召回率,我们创造了两者的调和平均数作为考量两者平衡的综合性指标,称之为F1 measure。两个数之间的 调和平均倾向于靠近两个数中比较小的那一个数,因此我们追求尽量高的F1 measure,能够保证我们的精确度和召回率都比较高。F1 measure在[0,1]之间分布,越接近1越好。

五、机器学习分类
1.有监督学习

指对数据的若干特征与若干标签(类型)之间的关 联性进行建模的过程;只要模型被确定,就可以应 用到新的未知数据上。这类学习过程可以进一步分 为「分类」(classification)任务和「回归」( regression)任务。在分类任务中,标签都是离散 值;而在回归任务中,标签都是连续值。

2.无监督学习

指对不带任何标签的数据特征进行建模,通常被看 成是一种 “让数据自己介绍自己” 的过程。这类 模型包括「聚类」(clustering)任务和「降维」 (dimensionality reduction)任务。聚类算法可 以讲数据分成不同的组别,而降维算法追求用更简 洁的方式表现数据。

3.半监督学习

另外,还有一种半监督学习(semi-supervised learning)方法, 介于有监督学习和无监督学习 之间。通常可以在数据不完整时使用。

4.强化学习

强化学习不同于监督学习,它将学习看作是试探评 价过程,以 “试错” 的方式进行学习,并与环境进 行交互已获得奖惩指导行为,以其作为评价。此时 系统靠自身的状态和动作进行学习,从而改进行动 方案以适应环境。

六、常用有监督学习算法
1.KNN算法

一则小故事

在一个酒吧里,吧台上摆着十杯几乎一样的红酒,老板跟你打趣说想不想来 玩个游戏,赢了免费喝酒,输了付3倍酒钱,那么赢的概率是多少?

你是个爱冒险的人,果断说玩!

老板接着道:你眼前的这十杯红酒,每杯略不相同,前五杯属于「赤霞珠」 后五杯属于「黑皮诺」。现在,我重新倒一杯酒,你只需要正确地告诉我它 属于哪一类。

听完你有点心虚:根本不懂酒啊,光靠看和尝根本区分辨不出来,不过想起 自己是搞机器学习的,不由多了几分底气爽快地答应了老板!

你没有急着品酒而是问了老板每杯酒的一些具体信息:酒精浓度、颜色深度等,以及一份纸笔。老板一边倒一杯新酒,你边 疯狂打草稿。

很快,你告诉老板这杯新酒应该是「赤霞珠」

老板瞪大了眼下巴也差点惊掉,从来没有人一口酒都不尝就能答对,无数人都是 反复尝来尝去,最后以犹豫不定猜错而结束。

你神秘地笑了笑,老板信守承诺让你开怀畅饮。微醺之时,老板终于忍不住凑向

你打探是怎么做到的。

你炫耀道:无他,但机器学习熟尔。

老板:……

2.KNN——算法原理概述

k-近邻算法的本质是通过距离判断两个样本是否相似,如果距离够近就认为他们足够相似属于同一类别。 当然只对比一个样本是不够的,误差会很大,我们需要找到离其最近的k个样本,并将这些样本称之为「近邻」(nearest neighbor)。 对这k个近邻,查看它们的都属于何种类别(这些类别我们称作「标签」(labels))。 然后根据“少数服从多数,一点算一票”原则进行判断,数量最多的的标签类别就是新样本的标签类别。其中涉及到的原理是“越 相近越相似”,这也是KNN的基本假设。

上面有红色和紫色两个类别,离黄色点最近的3个点都是红点,所以红点和紫色类别的投票数是3:0,红色取胜,所以黄色点属于红 色,也就是新的一杯属于「赤霞珠」。

3.决策树算法

决策树(Decision Tree)是一种实现分治策略的层次数据结构, 可以用于分类和回归。我们主要讨论分类的决策树。 分类决策树模型表示一种基于特征对实例进行分类的树形结构 (包括二叉树和多叉树)。 决策树由节点(node)和有向边(directed edge)组成,树 中包含三种结点:

(1)根节点(root node):包含样本全集。没有入边,但有零 条或多条出边;

(2)内部节点(internal node):对应于属性测试条件,恰有 一条入边,和两条或多条出边;

(3)叶节点(leaf node)或终节点(terminal node):对应 于决策结果,恰有一条入边,但没有出边。

4.决策树——算法原理概述

决策树学习本质上是从训练数据集中归纳出一组分类规则,也称为 “树归纳”。对于给定的训练数据集,存在许多对它无错编码的树。 而为了简单起见,我们感兴趣的是从中选出 “最小” 的树,这里的树的大小用树的结点数和决策节点的复杂性度量。从另一个角度看, 决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型有无数个,我们选择的模型应该是不仅能对训练数据有很好的拟合,而且对未知数据也有很好的预测。

但是,因为从所有可能的决策树中选取最优决策树是NP完全问题,所以我们必须使用基于启发式的局部搜索过程,在合理的时间内得 到合理的树。 树的学习算法是 “贪心算法”,从包含全部训练数据的根开始,每一步都选择最佳划分。依赖于所选择的属性是数值属性还是离散属 性,每次将数据划分为两个或n个子集,然后使用对应的子集递归地进行划分,知道所有训练数据子集被基本正确分类,或者没有合适的特征为止,此时,创建一个树叶结点并标记它,这就生成了一颗决策树。

综上,决策树学习算法包含特征选择、决策树的生成与决策树的剪枝。其中,特征选择运用的算法主要包括 “信息熵增益”、“信息 增益比”、“基尼系数”,分别对应不同的树生成算法ID3、C4.5、CART。

七、常用无监督学习算法
聚类算法

KNN、决策树都是比较常用的机器学习算法,它们虽然有着不同的功能,但却都属于「有监督学习」的一部分,即是说,模型在训练 的时候,既需要特征矩阵X,也需要真是标签Y。机器学习当中,还有相当一部分算法属于「无监督学习」,无监督的算法在训练的时 候只需要特征矩阵X,不需要标签。无监督学习的代表算法有聚类算法、降维算法。

CDA LEVEL 1 考试,知识点《机器学习基本概念》相关推荐

  1. CDA LEVEL 1 考试,知识点汇总《市场调研》

    一.基本步骤 1.市场调研的基本步骤 市场调研是一种非常常用的信息获取渠道.调研的结果可以整理成分析项目的输入,甚至可以作为决策的依据.因此想 要做好市场调研,科学的流程是非常必要的.一般我们会通过提 ...

  2. 短小精悍-机器学习核心概念、模型、基础知识点简明手册-免费分享

    该手册只有130页,整理了几乎所有关机机器学习的概念.模型.基础知识点,它将帮助读者快速回顾关于机器学习相关的核心知识点和重要公式.模型.概念.涉及概率模型.处理离散数据的生成模型.高斯模型.贝叶斯模 ...

  3. CDA LEVEL I 数据分析认证考试模拟题库(四)

    又到公布CDA数据分析师认证考试LEVEL I的模拟试题时间了,今天给大家带来的是模拟试题(一)中的16-20题. 不过,在出题前,要公布下上一期11-15题的答案,大家一起来看! 11.D 12.C ...

  4. 机器学习——基础概念

    一. 机器学习基础概念 总结过层中,我结合了头歌上的相关公开课程:详见 (一).什么是机器学习? 机器学习致力于通过计算的手段,利用经验来改善系统的性能. "经验"-->通常 ...

  5. 2022年05月信息系统监理师考试知识点分布

    2022年05月信息系统监理师考试知识点分布 艾教春 本文依据学员支离破碎的回忆 1.上午知识点分布 表1是按题号对应的考试内容. 表1 按试题号分布的考查内容 试题号 知识点 试题号 知识点 1 状 ...

  6. CDA level 2级课堂笔记

    CDA level 2级课堂笔记 0.1.0引言 1.感知型企业与数据应用系统的演进 敏捷分析平台(BI)–>行为数据平台(数据挖掘)–>协同思维平台(数据驱动业务)–>分析应用平台 ...

  7. 计算机的发展知识点,计算机一级MsOffice考试知识点:计算机的发展

    MsOffic常用组件有Word.Excel.Powerpoint等.本文特意为大家收集整理了计算机一级MsOffice考试知识点:计算机的发展,一起看看吧! 1.1计算机的发展 一.计算机发展 1. ...

  8. 计算机二级access知识点6,2019年计算机二级ACCESS考试知识点:关系数据模型

    [导语]2019年计算机二级考试备考正在进行中,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2019年计算机二级ACCESS考试知识点:关系数据模型,欢迎大家的关注.如想获取更多计算机二级 ...

  9. 计算机专业课考试分析,计算机考研专业课考试知识点分析

    计算机考研专业课考试知识点分析 编者按:为了帮助考生正确的做好准备工作,研究生院特访问了我国著名的计算机教育专家.湖南师范大学计算机软件与理论/计算机应用技术硕士点专业课试题命题人张友生博士,请张博士 ...

最新文章

  1. java中ThreadLocalRandom的使用
  2. python集合是有序的吗_python set有序吗
  3. DeepMind最新研究:如何将「大语言模型」 训练到最优?
  4. 任意点 曲线距离_中级数学11-曲线函数
  5. 【Qt】qt库结构及示例
  6. 可以单独打开anaconda中的python莫?_Python入门必备,大数据,人工智能编程必备软件-Anaconda...
  7. 解决Eclipse Pydev中import时报错:Unresolved import
  8. [渝粤教育] 中国地质大学 经济学原理 复习题
  9. 计算机自动生成凭证,哪些财务软件能自动生成记账凭证?
  10. 【好玩的应用】QQ连连看辅助工具
  11. AIDL解析(一):AIDL原理解析
  12. 怎么做好饮料代理?如何发展市场
  13. 南京公积金贷款一些规定要点。
  14. 第八章:善于利用指针
  15. 工业大数据分析建模和算法
  16. 稿定设计怎么去除水印?
  17. 突发!Google 最大数据中心发生爆炸,三名技术人员受伤
  18. js插件的经典写法与总结
  19. 推荐收藏 | 决策树,逻辑回归,PCA-算法面经
  20. AGV与电梯交互系统设计

热门文章

  1. SuSe Linux防火墙配置指定IP或IP段可访问
  2. Java String知识复习及补充和包装类
  3. 浙大毕业演讲 --- 马一浮
  4. c++ 线程函数(类成员函数作为线程函数使用)
  5. 原创轻量VIO算法、简单易上手——XRSLAM帮你快速搭建移动平台AR应用
  6. 沉默的大多数(王小波)
  7. 0x80070091-Win10系统还原时的救命办法
  8. 高中关于人工智能方面的课题_人工智能课题及其认识意义.doc
  9. 重置微信内置浏览器字体大小
  10. java宠物小精灵_4978:宠物小精灵之收服