学习分类

根据数据标记分类

  1. supervised learning 监督学习

    • 训练集中的目标是由人标注的
  2. unsupervised learning 无监督学习

    • 输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。
  3. SEMI-SUPERVISED learning 半监督学习

    • 让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习(semi-supervised learning)。

    • 半监督学习可进一步划分为纯(pure)半监督学习和直推学习(transductive learning),前者假定训练数据中的未标记样本并非待测的数据,

      而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。

根据应用类型分类

​ 1.REINFORCEMENT learning 强化学习

​ 2.TRANSFER LEARNING 迁移学习

一、线性回归

二、逻辑回归

优点:计算事件概率,能减少极端值的影响

缺点:是由时间的线性分布转化为概率来进行判断,所以只适合线性分布的数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GyciRCqj-1597824699351)(C:\Users\Free\AppData\Roaming\Typora\typora-user-images\image-20200819104518451.png)]

实际上我们会采用更多的方法对逻辑回归的结果进行评估

如:精确度,混淆矩阵confusion matrix,f-score

三、K临近算法:环境会影响决策

K-NEAREST NEIGHBOR

step1:找到待测样本周围最近的已知样本点,这一步需要定义空间、距离公式

step2: 录入样本点信息

step3:找最近的k个样本点

step4:找到最近的k个样本点中,哪个类别最多

k临近算法和逻辑回归都是做分类问题

KNN只关注待测样本的局部分布,所以不需要用到loss函数(交叉熵函数)

逻辑回归则关注是对全局分布

KNN还可以用来做推荐系统

优点:

  1. 直观,好解释
  2. 局部分布,不需要估算整体

缺点:

  1. 局部估算可能不符合全局的分布
  2. 不能计算概率
  3. 对K的取值非常敏感

通常为了保证一个合理的K的取值,我们会采取交叉验证(cross-validation)找到哪个K的设置会保证最优的估算

四、决策树

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。

决策树生成的主要分为两步:

step1:节点的分裂:一般当一个节点所代表的属性无法给出判断时,则选择将这一节点分成2个

子节点(如不是二叉树的情况会分成n个子节点)

step2: 阈值的确定:选择适当的阈值使得分类错误率最小 (Training Error)。

比较常用的决策树有ID3,C4.5和CART(Classification And Regression Tree),CART的分类效果一般优于其他决策树。下面介绍具体步骤。

ID3: 由**增熵(Entropy)**原理来评估当前条件下的所有情况并决定哪个做父节点,那个节点需要分裂。

对于一组数据,熵越小说明分类结果越好。熵定义如下:

Entropy=- sum [p(x_i) * log2(P(x_i) ]

其中p(x_i) 为x_i出现的概率。假如是2分类问题,当A类和B类各占50%的时候,

Entropy = - (0.5log_2( 0.5)+0.5log_2( 0.5))= 1

当只有A类,或只有B类的时候,

Entropy= - (1*log_2( 1)+0)=0

所以当Entropy最大为1的时候,是分类效果最差的状态,当它最小为0的时候,是完全分类的状态。因为熵等于零是理想状态,一般实际情况下,熵介于0和1之间。

熵的不断最小化,实际上就是提高分类正确率的过程。

决策树是否能用来做回归问题呢?

五、梯度下降法

梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。

梯度是一个向量,具有大小和方向。想象我们在爬山,从我所在的位置出发可以从很多方向上山,而最陡的那个方向就是梯度方向。
对函数 f(x1,x2,…,xn)f(x1,x2,…,xn) 来讲,对于函数上的每一个点 P(x1,x2,…,xn)P(x1,x2,…,xn),我们都可以定义一个向量 {∂f∂x1,∂f∂x2,…,∂f∂xn}{∂f∂x1,∂f∂x2,…,∂f∂xn},这个向量被称为函数 ff 在点 PP 的梯度(gradient),记为 ∇f(x1,x2,…,xn)∇f(x1,x2,…,xn) 。函数ff在PP点沿着梯度方向最陡,也就是变化速率最快。比如对于二元函数 f(x,y)f(x,y)来讲,我们先将函数的偏导数写成一个向量 {∂f∂x,∂f∂y}{∂f∂x,∂f∂y},则在点 (x0,y0)(x0,y0)处的梯度为 {∂f∂x0,∂f∂y0}{∂f∂x0,∂f∂y0}。
梯度方向是函数上升最快的方向,沿着梯度方向可以最快地找到函数的最大值,而我们要求误差的最小值,所以在梯度下降中我们要沿着梯度相反的方向。

  1. 梯度下降只能知道导数方向,并不知道最优点的距离,所以我们需要手动设定一个步长,他对学习率很敏感
  2. 不能保证全局最优性

六、Kmeans 物以类聚

是无监督学习

  1. 随机从数据集中选取K个样本当做centroids
  2. 对于数据集中的每个点,计算它距离每个centroid的距离,并把它归为距离最近的那个cluster
  3. 更新新的centroid位置
  4. 重复2.3,知道centroid的位置不再改变

优点:非监督类的算法不需要样本的标注信息

缺点:

  1. 不能利用到数据的标注信息,意味着模型的性能不如其他监督学习

  2. 对于K的取值,也就是你认为数据集中的样本应该分为几类,这个参数的设置极为敏感

七、向量支持机

目的是找到分界面,并最大化这个间距

即等于最小化间距倒数的平方

SVMLOSS FUNCTION: Loss(β)= ||β||^2/2

所以也叫大间隔分类器

优点:

  1. 是强分类器,能保证最大化区分两个类别,所以模型的性能优异

缺点:

  1. Hard-margin SVM是线性分类器不能处理不同类别相互交融情况

  2. 在这种情况下可以强制允许对于一些错误样本的分类来保持大体上的容错率

    这就是 SOFT_MARGINSVM

  3. 分类器,不可用于求解线性完全不可分的情况 当出现这种情况时,会引入KERNEL,来把数据映射到更高的维度,用线性超平面去使用。

八、随机森林

是一种集成学习中Bagging类型算法(Bootstrap Aggregation

)即引导聚合类算法,内部是多个弱监督模型结合,这类算法不专注于解决困难样本,所以模型的Performance往往会受限,集成学习中的另一种算法Boosting,即可解决这种缺点。

森林意思是模型中包含很多决策树

随机意思是从数据集中采用以训练模型中的每颗决策树(即看问题角度不一样)

设计步骤:

  1. 预设模型的超参数,几棵树,分几层?

  2. 随机采用,训练每个决策树

  3. 输入待测样本到每个树中,再将每个树的结果整合

    求均值或者求众数

    优点:

    1. 模型随机性很强,不容易overfit,但是抗噪性强,表示对异常点outlier不敏感
    2. 处理高位数据相对更快
    3. 树状结构,模型可解释度高,可以告诉你每个特征的重要性

    缺点:

    ​ 模型往往过于General不具备正确处理过于困难的样本的能力

九、Adaboost

可以解决随机森林的问题,一句话总结特点,前人栽树,后人乘凉!

ADABOOST:自适应增强算法

后一个模型的训练永远是在前一个模型的基础上完成的,是顺序,级联的结构

step1:对于训练每个weak learner计算样本困难度

  1. 初始化所有样本的困难度为 wi= 1/N
  2. 利用当前weak learner的训练结果 更新所有样本的困难度,如果正确则减少困难反正增加
  3. 然后在这个基础上训练下一个模型

step2:学习每个weak learner的权重

​ 然后权限*输出整合起来

优点

  1. 顺序,级联的结构+利用权重组合结果擅长解决困难问题
  2. 模型性能的天花板高

缺点:

  1. 容易Overfit
  2. 对于异常点Outlier过于敏感,模型的性能起点低
  3. 速度慢

九种机器学习模型的简单介绍相关推荐

  1. HTTP请求方式中8种请求方法(简单介绍)

    HTTP请求方式中8种请求方法(简单介绍) 简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动 ...

  2. VAE 模型基本原理简单介绍

    VAE 模型基本原理简单介绍 1. 编写目的 2. 推荐资料 3. 相关背景 3.1 生成模型(Generative model): 3.2 隐变量模型(Latent Variable Models) ...

  3. 基于三种机器学习模型的岩爆类型预测及Python实现

    写在前面 由于代码较多,本文仅展示部分关键代码,需要代码文件和数据可以留言 然而,由于当时注释不及时,且时间久远,有些细节笔者也记不清了,代码仅供参考 0 引言 岩爆是深部岩土工程施工过程中常见的一种 ...

  4. 几种机器学习模型的基本思路

    本文试图从分类学习来分析现有几种机器学习模型的基本思路. 首先强调,机器学习所使用的训练数据和测试数据被看作是依联合分布概率P(X,Y)P(X,Y)P(X,Y)独立同分布产生,这是监督学习关于数据的基 ...

  5. Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用

    Python 框架 之 Django MVT 下的 M 的 模型的简单介绍和使用 目录

  6. 常见7种直流/交流电源简单介绍

    1.调压电源 通过变压器和整流器把交流电转换成直流电的装置称为整流电源.它是将其他形式的能量转化为电能,其特点是电压调节. 常见7种直流/交流电源简单介绍 2.开关型交流稳压电源 开关电源又称开关电源 ...

  7. 论文解读+代码复现【AIDD】贝叶斯、决策树、随机森林+2种机器学习模型在癌症治疗药物发现中的应用

    AIDD(AI Drug Discovery & Design):是近年来非常火热的技术应用,且已经介入到新药设计到研发的大部分环节当中,为新药发现与开发带来了极大的助力.倾向于机器对数据库信 ...

  8. 【机器学习】总结了九种机器学习集成分类算法(原理+代码)

    大家好,我是云朵君! 导读: 本文是分类分析(基于Python实现五大常用分类算法(原理+代码))第二部分,继续沿用第一部分的数据.会总结性介绍集成分类算法原理及应用,模型调参数将不在本次讨论范围内. ...

  9. 总结了九种机器学习集成分类算法(原理+代码)

    公众号后台回复"图书",了解更多号主新书内容作者:云朵君来源: 数据STUDIO 导读: 本文是分类分析(基于Python实现五大常用分类算法(原理+代码))第二部分,继续沿用第一 ...

  10. 分析Booking的150种机器学习模型,我总结了六条成功经验

    (图片付费下载自视觉中国) 作者 | Adrian Colyer 译者 | Monanfei 出品 | AI科技大本营(ID:rgznai100) 本文是一篇有趣的论文(150 successful ...

最新文章

  1. apache2.2 虚拟主机配置
  2. 为什么大家都说 SELECT * 效率低?
  3. TextView显示颜色高亮的问题
  4. Spring中BeanPostProcessor 执行过程
  5. 3d face paper
  6. java 性能测试文档模板_Java中IO字节流基本操作(复制文件)并测试性能
  7. L2-018 多项式A除以B(模拟)
  8. 【自然语言处理】1.中文语言的机器处理
  9. 通用时与儒略日代码解析
  10. (转)男人的梦想之野性篇 什么是真正的越野车
  11. 【Linux】swp文件
  12. 计算机科学与技术学院老师颁奖词,各种颁奖词收集与各类奖学金、各种称号、各种职位中英文对照(个人简历用得上)合集.doc...
  13. charles安装教程--以及针对安装证书后https<unknown>爬坑
  14. 嫁给年薪百万的程序员,结婚 6 年后的我竟然还是处女
  15. 文字识别(二)--字符识别技术总览
  16. shell脚本_ grep和egrep命令
  17. 微信的NATIVE支付提示201商户订单号重复的解决方案
  18. 3dmax和python做3d动画_ThingJS问答录 | 三维动画师和程序员的职业前景 3D 可视化
  19. dinfo-oec hadoop部署方案
  20. MyEclipse7.0~7.1下载 + 汉化 + doc 汉化(最新的)

热门文章

  1. Acer 4750 安装黑苹果_黑苹果安装 你要知道的那些坑
  2. Java项目:企业固定资产管理系统(java+SpringBoot+VUE+maven+mysql)
  3. Day23:算法之分支定界
  4. 如何检测浏览器是否安装了Adblock,uBlock Origin,Adguard,uBlock等广告屏蔽插件
  5. Oracle 锁表查询语句及解锁
  6. 拖放 Drag and drop
  7. Oracle 公有云(OCI)价格与计费工具
  8. 检查mysql敏感词_违禁词在线查询神器(百度敏感词在线检测)
  9. 搭建基于Python的数字图像识别系统(一)
  10. CSR867x — CSR蓝牙开发调试经验