目录

一、机器学习概念

二、机器学习步骤

三、有监督学习

1、k-近邻算法

核心思想

实例:手写数字的识别

优缺点:

2、决策树

相关概念

核心思想

一些小技巧

优缺点

3、神经网络

4、SVM——支持向量机

核心思想

SVM和SVR的区别

​ 优缺点

5、集成学习或元算法

核心思想

常见的元算法或者集成学习——串行bagging(随机森林等)、并行boosting(自适应boosting--adaboosting等)

0)串行训练与并行训练

1)bagging(自举汇聚法)——基于数据随机重抽样的分类器构建

2)boosting——基于错误提升分类器的性能(Adaboosting算法)

3)随机森林——基于样本随机性和属性随机性



一、机器学习概念

机器学习就是将传感器等方式得到的海量的数据转化为有用的信息的过程。就是根据以往的经验和数据使得构建的模型最优,以此来更加满足需求。

二、机器学习步骤

1、采集数据——拍照、传感器等
2、输入数据——如输入图像
3、分析数据——提取特征
4、训练算法——对于无监督学习来说不需要训练,否则需要训练
5、测试算法——指标衡量算法的可靠性、泛化能力等
6、使用算法

三、有监督学习

1、k-近邻算法

核心思想

核心思想:首先有一批样本数据集合,我们称之为训练数据集,并且我们知道他们的标签,即每个样本和类别的对应关系是确定的。当一个不带标签的新样本输入时,我们先提取这个样本的特征值,然后计算这个样本和训练集中每一个样本对应特征值的距离,距离从小到大取k个点,然后分别统计这k个点的类别分别是什么,将这k个点中出现最多的标签作为这个新样本的标签。

距离:欧式距离——每个特征值的差的平方和,再开根号

注:虽然是有监督算法,但是不需要进行训练,因为是临时利用所有的训练样本的特征值,这也造成了这个算法预测时间长。

实例:手写数字的识别

https://blog.csdn.net/qq_41661809/article/details/89409724

1)先获得公开数据集0--1手写黑白图像

2)将32*32的黑白图像按行转换成1*1024的向量,并且带有标签

3)将新输入的黑白图像的向量和每一个图像的向量进行距离计算

4)从小到大排列距离,取前k个样本;

5)统计k个样本的不同类别个数;

6)将最多的类别数作为新样本的标签

优缺点:

优点:易于实现、理解

缺点:效率不高,每次预测都要进行大量的计算,时间长

2、决策树

相关概念

熵:度量数据集的混乱程度,越大越乱

信息增益:与熵相反,越大数据越有序

核心思想

核心思想:

训练阶段:已知一个数据集,数据集包含属性值和标签,每一条数据样本包含若干个属性值和一个标签,这作为训练数据集。决策树的决策就在于决定用哪一个属性去划分数据集,这个时候就使用到了熵或者信息增益,计算以每一个属性进行划分数据集后的各个子数据集的熵,然后将划分后熵最小的那个属性作为当前结点的划分属性依据,根据这个属性数据集会被划分成多个数据集,然后对每一个子数据集根据熵来确定划分属性,注意这里的属性要去掉父节点的属性。然后递归就得到了一颗树。

训练得到的是一颗结点是属性值的树,叶子节点为标签值,我们称之为决策树,一般可以利用字典去存放这棵树,父节点属性值作为key,子树作为value。

预测阶段:新输入一个样本,我们根据样本的属性的值和决策树来决定样本的标签

一些小技巧

剪枝:因为在构造决策树的时候,我们是用的递归,会遍历所有的情况,耗时较长,我们其实可以通过剪枝的方式来决定要不要继续递归,若划分后的正确率下降了,那我们则停止这个属性的递归,换下一个属性进行尝试。

连续值处理:若碰到是数值型的话,那我们可以先对这些数值进行排序,然后将两个数的均值作为一个划分属性。

优缺点

优点:计算复杂度不高、结果易于理解、对中间的缺失不敏感

缺点:可能产生过度匹配的问题

典型算法:ID3、C45

3、神经网络

具体相关见专栏:【机器学习】神经网络BP理论与python实例系列

神经网络会出现局部最优的情况,为了解决这个问题有以下几种方法:

1)模拟退火:在每一步都会以一定的概率去接受比最优解差的次优解,有助于跳出“局部最优”,但是随着时间推移,这个概率应该减小

2)选取多组参数初始值,训练后选取误差最小的一组参数作为最终的参数。虽然都会陷入不同的局部极小,但是这样可以尽可能地接近全局最优

3)随机梯度下降法:计算梯度的时候增加随机因素

4)遗传算法

5)预训练模型:在深度学习中,重新进行参数初始值的设置会非常麻烦,因为量大,而预训练模型则是一层一层进行训练,每一层的输入是上一层的输出,这一层的输出又是下一层的输入,这样就得到了一个预训练的模型,这时候我们在往后的模型中就可以拿这些参数值作为初始值。总结即先寻找每一组参数的局部最优,然后用于后续的全局寻优,因此一个好的初训练模型,也能帮助避免“局部最优”。

4、SVM——支持向量机

核心思想

核心思想:这个的核心思想其实就是找到一个平面将不同的两类分割开。这个平面的特点为:

w^T*x + b = 0

参数需要满足最接近直线的几个点有:w^T*x + b = (+-)1

这几个点称之为支持向量

1)怎么寻找支持向量?

使得经过支持向量的两条线间隔最大:dist = 2/||w||

超平面函数*标签始终大于等于1

因此进行损失函数的选择的时候,一般取标签和超平面函数的乘积作为变量,常用的分类损失函数有0-1损失函数、hinge损失函数、对数损失函数,常用的是hinge函数,h = max(0,1-yf(x))

具体损失函数可以参见:【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线

因为分类问题只有-1,1两种类型,因此使用真实标签乘以超平面函数(预测标签)的乘积作为损失函数的变量。预测真确则大于1,否则小于1,而不是去计算误差多少。

SVM和SVR的区别

参考:谈谈SVM和SVR的区别

优缺点

优点:泛化错误率低、计算开销不大

缺点:对参数调节和核函数调节很敏感,若SVM不修改的话仅适合二分类问题

5、集成学习或元算法

核心思想

核心思想:集成学习(ensemble method)和元算法(meta-algorithm)就是将不同的分类器进行组合成一个新的分类器。

组合形式:

1)针对同一个数据集训练多个不同分类器(SVM、K-NN等),然后结合起来

2)针对不同的数据集训练不同数据集,训练同一种分类器,然后结合起来

3)不同数据集不同分类器

即先训练多个弱分类器,然后再结合在一起得到一个强分类器

常见的元算法或者集成学习——串行bagging(随机森林等)、并行boosting(自适应boosting--adaboosting等)

参考:机器学习算法 之 集成学习:串行-Boosting族(AdaBoost),并行-Bagging、随机森林

0)串行训练与并行训练

并行训练:每个数据集独立分开训练,互不影响

串行训练:下一个训练器的训练受上一个训练结果的影响

1)bagging(自举汇聚法)——基于数据随机重抽样的分类器构建

核心思想:不同数据集(重抽样重组而得)、同一种分类器,即在原始数据集中重抽样得到多个数据集,每个数据集训练得到一个分类器,最后根据分类器结果的投票结果进行决策

①假设原始数据集大小为n,从原始数据集中有放回的抽取一个样本;

②抽取n个样本组成了一个新的和原始数据集一样大的数据集,因为是有放回抽样,因此元素可以是重复的

③重复步骤①②S次,这样就得到了S个和原始数据大小一样的新数据集

④对这S个数据集进行独立训练得到S个分类器;——并行训练

⑤预测阶段:输入新样本,得到S个预测结果,然后根据投票的方式,将票数最高的分类结果作为最终分类标签——这里也看出对于每一个分类器的结果的权重都是一样的,都为1

常见的bagging算法有:随机森林(RF)

2)boosting——基于错误提升分类器的性能(Adaboosting算法)

核心思想同一数据集(每个样本带权重)、同一种分类器,即集中关注上一个分类器训练错误的样本进行下一个分类器的训练

这里以Adaboosting算法为例:

①对训练样本集的每一个样本赋予相等的权重

②先训练一个分类器,记录训练后预测错误的样本;

③根据分类器的错误率,对每一个分类器也有一个权重alpha,基于错误率计算得到的

④调整样本权重:分类正确的样本权重降低,错误的增加;权重主要是用于后续预测和损失函数使用,让分类器更关注这些样本

再对调整后的数据集进行训练,得到下一个分类器——串行训练

⑥重复③-⑤,直到分类器的错误率为0或者分类器达到指定个数时停止迭代

⑦迭代后的如下图所示,预测阶段是将样本输入后,得到的预测结果会进行alpha加权后再相加得到最终结果

3)随机森林——基于样本随机性和属性随机性

核心思路:其实就是基于决策树进行的随机改进,这里是随机选择一个含有k个属性的自己,然后从这个子集中找到一个最优划分属性用于划分。这样就会得到多个决策树,进行投票即可

四、无监督学习

1、聚类

参考:https://zhuanlan.zhihu.com/p/104355127

核心思想

聚类就是物以类聚,首先得到的是一个没有标记的样本集,我们希望将其划分成不同的类簇,即不同的子集。首先我们随机选择K个样本作为每个类簇的中心,然后计算每个样本和所有中心的距离,将距离最近的类簇中心作为这个样本的类簇,然后更新类簇中心,直到不改变为止

基本步骤——这里以K均值聚类为例(K-Mean)

1)随机选取K个样本作为初始均值向量(簇中心);

2)计算样本i和k个簇质心的距离得到距离向量distij;

3)将样本i归类到min(distij)的簇j中;

4)待所有样本划分结束后,更新均值向量

5)求划分后每一个簇的样本的均值(几何中心),作为新的均值向量

6)重复2)-5)

7)直到均值向量不再改变,或者经过多少次迭代后停止即可

8)给每一个类簇定义上类标签,这样就聚类完成了

分类

K-均值聚类、密度聚类(DBSCAN算法)、层次聚类、高斯混合聚类等

目标

簇内距离最小,簇间距离最大

【机器学习】——《机器学习实战》面试复习相关推荐

  1. 机器学习岗位的面试准备——总结1

    之前还想看完再自己总结,后来发现高估自己了,信息量太大,直接给参考链接: 1.如何准备机器学习工程师的面试 ? 内容过于丰富导致感觉自己就是个文盲,套用总结公式: 数据结构算法水题+常用机器学习算法推 ...

  2. 机器学习与算法面试太难?

    机器学习与算法面试太难? 来源: https://mp.weixin.qq.com/s/GrkCvU2Ia_mEaQmiffLotQ 作者:石晓文 八月参加了一些提前批的面试,包括阿里.百度.头条.贝 ...

  3. 【机器学习PAI实战】—— 玩转人工智能之综述

    摘要: 基于人工智能火热的大背景下,通过阿里云的机器学习平台PAI在真实场景中的应用,详细阐述相关算法及使用方法,力求能够让读者读后能够马上动手利用PAI搭建属于自己的机器学习实用方案,真正利用PAI ...

  4. Python工程能力进阶、数学基础、经典机器学习模型实战、深度学习理论基础和模型调优技巧……胜任机器学习工程师岗位需要学习什么?...

    咱不敢谈人工智能时代咋样咋样之类的空话,就我自己来看,只要是个营收超过 5 亿的互联网公司,基本都需要具备机器学习的能力.因为大部分公司盈利模式基本都会围绕搜索.推荐和广告而去. 就比如极客时间,他的 ...

  5. svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD

    菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...

  6. SLS机器学习最佳实战:批量时序异常检测

    0.文章系列链接 SLS机器学习介绍(01):时序统计建模 SLS机器学习介绍(02):时序聚类建模 SLS机器学习介绍(03):时序异常检测建模 SLS机器学习介绍(04):规则模式挖掘 SLS机器 ...

  7. SLS机器学习最佳实战:日志聚类+异常告警

    0.文章系列链接 SLS机器学习介绍(01):时序统计建模 SLS机器学习介绍(02):时序聚类建模 SLS机器学习介绍(03):时序异常检测建模 SLS机器学习介绍(04):规则模式挖掘 SLS机器 ...

  8. python机器学习彩票_Python机器学习及实战kaggle从零到竞赛PDF电子版分享

    Python机器学习及实战kaggle从零到竞赛PDF电子版分享 本书面向对机器学习感兴趣的专业认识,帮助从零开始一步一步掌握机器学习的奥义,在阅读的过程中由浅入深,慢慢步入机器学习的殿堂,零基础也可 ...

  9. 如何准备机器学习工程师的面试

    原文链接:http://www.zhihu.com/question/23259302 如何准备机器学习工程师的面试 ?修改 我之前面试一些公司的机器学习或者数据挖掘工程师的职位.感觉自己准备的不够充 ...

  10. python智慧城市_智慧城市背景下Python机器学习项目实战案例分享

    首先,何为智慧城市?智慧城市的"智慧"源自何处? 智慧城市的特征在于运用大数据和数字技术提高居民生活质量. 机构获得的数据越全面.越实时,它们就越有能力观测事件发生的详情.分析需求 ...

最新文章

  1. hdu 2025 查找最大元素 (水)
  2. 为什么本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效?
  3. Android之CheckBox复选框控件使用inelayout.xml Xml代码
  4. 【渝粤教育】电大中专电商运营实操 (1)作业 题库
  5. 新浪微博之XSS蠕虫脚本源码讲解
  6. 解决:用PivotGridControl 与 chartControl 配合使用,Series最大只显示10条
  7. 【Hoxton.SR1版本】Spring Cloud Gateway网关初体验
  8. Las Vegas利用ParkPad(基于ArcPad)实现公园资产管理
  9. 增强现实技术(AR)的103个应用场景汇总
  10. 26 王者荣耀刷金币脚本
  11. 《为何佛不显身制止战争?》
  12. c 语言万年历 节日查询,C语言 程序设计 节日查询和任务提醒系统万年历.doc
  13. 尝试在UE的材质节点中进行高斯模糊
  14. 东航电商前端技术周刊第一期20180601
  15. Tomcat7集群共享Session 基于redis进行统一管理
  16. 你真的懂insert or update?
  17. 如何相对正确的安装windws桌面操作系统。
  18. Linux常用文本编辑器,及文本查看摘选的常用命令
  19. 广州市劳动保障总集成项目1.06亿
  20. 订单中心表结构设计_卧式加工中心立柱的分析设计

热门文章

  1. .net Web网站转换成Web应用程序 备忘
  2. Kylin工作原理、体系架构
  3. HDU 4414 Finding crosses(搜索)
  4. 网页关闭(解决window.close在火狐下不兼容问题)
  5. Android中attrs.xml文件的使用详解
  6. 黑马程序员——生成html静态页面,方便seo,加快加载速度
  7. javascript --- [小练习]变量提升、优先级综合
  8. OPENCV-6 学习笔记
  9. 需求分析挑战之旅(疯狂的订餐系统)(8)——最后的疯狂
  10. DDL DML DCL