【机器学习】——《机器学习实战》面试复习

目录

一、机器学习概念

二、机器学习步骤

三、有监督学习

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算法)、层次聚类、高斯混合聚类等

目标

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

 

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

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

相关文章

ubuntu安装LDAP

参考文献: https://help.ubuntu.com/12.04/serverguide/openldap-server.html(最主要的) http://www.linuxidc.com/Linux/2011-08/40020.htm http://blog.chinaunix.net/uid-24276740-id-3360306.html 前言 在网上搜索ldap的安装配置&#xf…

ABB机器人之LOADDATA

ABB机器人之LOADDATA loaddata是用来描述连接到机器人机械接口的负载(机器人的安装法兰)。loaddata数据通常定义有效载荷或负荷(通过指令gripload设置机器人抓手负载 或mechunitload指令设置变位机负载。loaddata通常也作为tooldata的一部分&…

【深度学习】——性能指标(ROC、MAP、AUC等)

目录 一、分类任务性能指标 1、混淆矩阵 2、精确度ACCURACY 正确数/总数 3、查全率(RECALL)——真正正样本中预测正确的比例 4、查准率(precision)——预测为正样本中的预测正确的比例 5、F-score——对查准率和查全率进行结…

【深度学习】——过拟合的处理方法

目录 一、什么是过拟合?(overfitting) 二、过拟合的表现(判定方法) 训练集、测试集、验证集区别 测试集与验证集的区别 三、产生过拟合的原因 1、样本方面 2、模型方面 四、避免过拟合的方法 1、样本方面 1&…

ASP.NET页面的字符编码设置

在用ASP.NET写网上支付的接口程序时&#xff0c;遇到一个奇怪问题&#xff0c;通过表单提交过去的中文全是乱码&#xff0c;英文正常。而用asp程序进行测试&#xff0c;可以正常提交中文&#xff0c;asp页面中有这样的HTML代码&#xff1a; <meta http-equiv"Content-T…

【深度学习】——BN层(batch normalization)

目录 一、“Internal Covariate Shift”问题 二、BatchNorm的本质思想 两个参数r和β的意义——精髓所在 三、训练阶段如何做BatchNorm 四、BatchNorm的推理(Inference)过程 五、BatchNorm的好处 一般使用在卷积层后、激活层前 Batch Normalization作为最近一年来DL的重要…

JAXB vs XStream

2019独角兽企业重金招聘Python工程师标准>>> JAXB vs XStream 博客分类&#xff1a; java JAXB vs XStream 这两东东本质上是有差别的&#xff0c;JAXB称为OX binding工具&#xff0c;XStream应该算序列化工具&#xff0c;但OX binding工具也会marshall和unmarsha…

ABB 机器人 DRVIO_1通信报警

ABB 机器人DRVIO_1通信报警 2014.06.13 ABB1600弧焊机器人&#xff0c;从A地搬运到B地&#xff0c;到达B地后&#xff0c;机器人上电&#xff0c;报DRVIO_1通信故障&#xff0c;机器人进入故障停止模式。 DRVIO_1为LOCAL_GENERIC类型的ABB内部LOCAL总线类型的单元实例。 故障…

S2SH CRUD 整合

S2SH CRUD 整合 采用的框架 Struts2Spring4Hbiernate4. 目录结构 &#xff1a; EmployeeAction: 1 package com.xx.ssh.actions;2 3 import java.io.ByteArrayInputStream;4 import java.io.InputStream;5 import java.io.UnsupportedEncodingException;6 import java.util.…

ABB 机器人 添加多任务

首先&#xff0c;需要启用多任务选项的控制器。 要做到这一点&#xff0c;创建一个新的机器人控制器RobotStudio站 - >选择机器人&#xff08;控制器菜单&#xff09; - >.................. - >系统生成器 - >选择控制器 - >修改...下一页 - >下一步 - >…

分享12306抢票心得-终极秒杀思路篇

12306抢票的关键拼的就是整点出票的速度&#xff0c;快的几秒钟&#xff0c;慢的几分钟&#xff0c;本文提供终极抢票攻略&#xff0c;通过多线程扫描上万个CDN&#xff0c;来大幅度提升出票速度。准备一&#xff1a;需要了解CDN和切站的机制&#xff0c;请参考&#xff1a;分享…

JVM内幕:Java虚拟机详解

为什么80%的码农都做不了架构师&#xff1f;>>> 这篇文章解释了Java 虚拟机&#xff08;JVM&#xff09;的内部架构。下图显示了遵守 Java SE 7 规范的典型的 JVM 核心内部组件。 上图显示的组件分两个章节解释。第一章讨论针对每个线程创建的组件&#xff0c;第二章…

ABB机器人 系统参数配置

系统参数用于定义系统配置并在出厂时根据客户的需要定义。 可使用 FlexPendant 或 RobotStudio Online 编辑系统参数。 此步骤介绍如何查看 系统参数配置。 操作 &#xff1a; 1. 在 ABB 菜单上&#xff0c;点击控制面板。 2. 点击配置。显示选定主题的可用类型列表。 3. 点…

四则运算2开发简介

四则运算2在四则运算1的基础之上&#xff0c;又添加了新的功能&#xff0c;但是我觉得四则运算2的难度比四则运算1增大了很多&#xff0c;我在编程的过程中&#xff0c;遇到的最大难度就是不知该如何更好的融合各个功能之间的关系。 写到现在&#xff0c;四则运算2主要实现了以…

ABB机器人的 备份与恢复

保存内容 备份功能可保存上下文中的所有系统参数、系统模块和程序模块。 备份内容 数据保存于用户指定的目录中。 默认路径可加以设置。 目录分为四个子目录&#xff1a;Backinfo、Home、Rapid 和 Syspar。 System.xml 也保存于包含用户设置的 ../backup &#xff08;根…

【深度学习】——物体检测细节处理(NMS、样本不均衡、遮挡物体)

目录 一、候选框大量重叠问题 1、NMS核心思想 2、 步骤&#xff1a; 3、缺陷 4、改进 1&#xff09;soft NMS——衰减的方式来减小预测框的分类得分 2&#xff09;softer nms——增加了位置置信度 二、样本不平衡问题 1、不平滑的来源&#xff08;3方面&#xff09; 1&a…

第6章 循环结构

循环语句: 可以让一部分代码,反复执行 1.1 循环语句while while循环: 编写格式:while(条件){ 循环体 } 条件: 当条件是true,就执行循环体,执行完循环体后 程序再次执行while中的条件,如果条件还是true,继续执行循环体 直到条件是false的时候,循环就结束 public class WhileDem…

MongoDB复制集技术

为什么使用MongogDB复制集技术? mysql中:一主一从&#xff0c;一主多从结构存在的问题 1、 fileover&#xff08;故障转移&#xff09;a) 选主投票b) 切换 2、 是否对就用透明化 3、 数据补偿的问题a) 两阶段数据补偿 4、 解决方法 mysql中使用MHAVIP b…

Linux文件系统的实现 (图文并茂,比较好)

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/)&#xff0c;节点为目录&#xff0…

ROS探索总结(一)——ROS简介

随着机器人领域的快速发展和复杂化&#xff0c;代码的复用性和模块化的需求原来越强烈&#xff0c;而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS&#xff08;robot operating system&#xff09;&#xff0c;很快在机器人…