分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估_小葵向前冲的博客-程序员秘密

技术标签: 算法  机器学习  线性代数  神经网络  

分类算法介绍

概念

数据挖掘任务通常分为两大类:

  • 预测任务,根据其他属性的值,预测特定属性的值。
  • 描述任务,概括数据中潜在联系的模式(相关性,趋势,聚类,轨迹和异常)

分类属于预测任务,就是通过已有数据集(训练集)的学习,得到一个目标函数f(模型),把每个属性集x映射到目标属性y(类),且y必须是离散的(若y为连续的,则属于回归算法)。

分类流程:
在这里插入图片描述

分类算法

分类算法按原理分为以下四大类:

  • 基于统计:如贝叶斯算法
  • 基于规则:如决策树算法
  • 基于神经网络:如神经网络算法
  • 基于距离:如KNN算法

分类算法按模型可以分为一下两类:

  • 预测性模型:直接告诉你数据应被分到哪个类
  • 概率性模型:不直接告诉你结果,但告诉你属于每个类的概率

常见分类算法

参考

 常用的分类算法包括:
 NBC(Naive Bayesian Classifier,朴素贝叶斯分类)算法、
 LR(Logistic Regress,逻辑回归)算法、
 决策树类算法(ID3;Iterative Dichotomiser 3 迭代二叉树3 代、C4.5 决策树算法、C5.0 决策树算法)
 SVM(Support Vector Machine,支持向量机)算法、
 KNN(K-Nearest Neighbor,K 最近邻近)算法、
 ANN(Artificial Neural Network,人工神经网络)算法等。

NBS

朴素贝叶斯

NBC算法的优点:

  • 逻辑简单,易于实现;
  • 所需估计的参数很少;
  • 对缺失数据不太敏感;
  • 具有较小的误差分类率;
  • 性能稳定,健壮性比较好;

NBC算法的缺点:

  1. 在属性个数比较多或者属性之间相关性较大时,NBC 模型的分类效果相对较差;
  2. 算法是基于条件独立性假设的,在实际应用中很难成立,故会影响分类效果

LR

LR详细笔记

LR算法的优点

  1. 对数据中小噪声的鲁棒性好;
  2. LR 算法已被广泛应用于工业问题中;
  3. 多重共线性并不是问题,它可结合正则化来解决。

LR算法的缺点

  1. 对于非线性特征,需要转换
  2. 当特征空间很大时,LR的性能并不是太好

SVM算法

SVM详细说明
通过学习算法,SVM 可以自动寻找出对分类有较好区分能力的支持向量,由此构造出的分类器可以最大化类与类的间隔,因而有较好的适应能力和较高的分准率。

SVM 算法的目的在于寻找一个超平面H,该超平面可以将训练集中的数据分开,且与类域边界的沿垂直于该超平面方向的距离最大,故SVM 法亦被称为最大边缘算法。

SVM算法的优点

  1. SVM 模型有很高的分准率;
  2. SVM 模型有很高的泛化性能;
  3. SVM 模型能很好地解决高维问题;
  4. SVM 模型对小样本情况下的机器学习问题效果好。

SVM算法的缺点

  1. SVM 模型对缺失数据敏感;
  2. 对非线性问题没有通用解决方案,得谨慎选择核函数来处理。

ID3算法

ID3 算法是一种基于决策树的分类算法,该算法是以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。信息增益用于度量某个属性对样本集合分类的好坏程度。ID3 算法的时间复杂度为O(n*|D|*log|D|)。

ID3算法的优点

  • ID3 算法建立的决策树规模比较小;
  • 查询速度快。

ID3算法的缺点

  1. 不适合处理连续数据;
  2. 难以处理海量数据集;
  3. 建树时偏选属性值较大的进行分离,而有时属性值较大的不一定能反应更多的数据信息。

C4.5 算法

C4.5 算法是ID3 算法的修订版,采用信息增益率来加以改进,选取有最大增益率的分割变量作为准则,避免ID3 算法过度的适配问题。

C4.5算法优点

  1. C4.5 继承了ID3 优点;
  2. 在树构造过程中进行剪枝;
  3. 能对不完整数据进行处理;
  4. 能够完成对连续属性的离散化处理;
  5. 产生的分类规则易于理解,准确率较高;
  6. 用增益率来选择属性,克服了用增益选择属性时偏向选择取值多的属性。

C4.5 算法缺点

  1. 构造树时,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效;
  2. 只适合于能驻留于内存的数据集,当训练集达到内存无法容纳时程序无法运行。

C4.5 用于遥感分类过程中,首先依据通常的方式建立第一个模型。随后建立的第二个模型聚焦于被第一个模型错误分类的记录。以此类推,最后应用整个模型集对样本进行分类,使用加权投票过程把分散的预测合并成综合预测。Boosting 技术对于噪声不大的数据,通常通过建立的多模型来减少错误分类的影响,提高分类精度。

C5.0算法

C5.0 算法是 Quinlan 在C4.5 算法的基础上改进而来的产生决策树的一种更新的算法,它除了包括C4.5 的全部功能外,还引入许多新的技术,其中最重要的技术是提升(Boosting)技术,目的是为了进一步提高决策树对样本的识别率。同时C5.0 的算法复杂度要更低,使用更简单,适应性更强,因此具有更高的使用价值。

C5.0算法的优点

  1. C5.0 模型能同时处理连续和离散的数据
  2. C5.0 模型估计模型通常不需要很长的训练时间;
  3. C5.0 引入Boosting 技术以提高分类的效率和精度;
  4. C5.0 模型易于理解,模型推出的规则有非常直观的解释;
  5. C5.0 模型在面对数据遗漏和特征很多的问题时非常稳健。

C5.0算法的缺点

  • 目标字段必须为分类字段。

在分类模块中采用C5.0 模型来完成决策树分类、形成分类文件,实现遥感影像的分类。

KNN 算法

KNN 算法是Cover 和Hart 于1968 年提出的理论上比较成熟的方法,为十大挖掘算法之一。

该算法的思路非常简单直观:如果一个样本在特征空间中的k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。

KNN算法的优点

  1. KNN 算法简单、有效;
  2. KNN 算法适用于样本容量比较大的类域的自动分类;
  3. 由于KNN 方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN 方法较其他方法更为适合。

KNN算法的缺点

  1. KNN 算法计算量较大;
  2. KNN 算法需要事先确定K 值;
  3. KNN 算法输出的可解释不强;
  4. KNN 算法对样本容量较小的类域很容易产生误分。

ANN 算法

人工神经网络(ANN)算法就是一组连续的输入/输出单元,其中每个连接都与一个权相关。在学习阶段,通过调整神经网络的权,使得能够预测样本的正确类标号来学习。

ANN算法的优点

  1. 能处理数值型及分类型的属性;
  2. 分类的准确度高,分布并行处理能力强;
  3. 对包含大量噪声数据的数据集有较强的鲁棒性和容错能力。

ANN算法的缺点

  1. 不能观察之间的学习过程;
  2. 学习时间过长,甚至可能达不到学习的目的;
  3. 对于非数值型数据需要做大量数据预处理工作;
  4. 输出结果难以解释,会影响到结果的可信度和可接受程度;
  5. 神经网络需要大量的参数,如网络拓扑结构、权值和阈值的初始值。

在这里插入图片描述

选择分类算法

1、如何选择合适的算法

如果你的训练集很小,高偏差/低方差的分类器(如朴素贝叶斯)比低偏差/高方差的分类器(如K近邻或Logistic回归)更有优势,因为后者容易过拟合。
但是随着训练集的增大,高偏差的分类器并不能训练出非常准确的模型,所以低偏差/高方差的分类器会胜出(它们有更小的渐近误差)。
你也可以从生成模型与鉴别模型的区别来考虑它们。

2、简单的分类模型

  • 朴素贝叶斯(Naive Bayes, NB)
      根据条件独立假设与贝叶斯公式,计算样本属于每个类的概率。

  • 决策树(Decision Tree, DT)
      根据特征集取值不同,将样本逐层划分并建立规则,直到某一个样本集合内的所有样本属于同一类。

  • K近邻(K-nearest neighbors, KNN)
      kNN 算法的思路非常简单直观:如果一个样本在特征空间中的 k 个最相似 ( 即特征空间中最邻近 ) 的样本中的大多数属于某一个类别,则该样本也属于这个类别。

分类算法性能评估

性能与结果的衡量:

  • 准确率:指模型正确地预测新的或未见过的数据的类标号的能力,这也是模型的首要能力。如果一个模型的分类准确率小于百分之五十,那么可以认为其结果是无价值的。在其他条件等同的情况下,当然首选准确率高的分类方法。
  • 速度:指产生和使用模型的时间复杂度。产生模型的试验数据集通常是巨量的,因为一般情况下其数量和分类准确率成正比。如果产生和使用模型的时间过长,将严重影响用户的使用。
  • 稳健性:指给定噪声数据或具有空缺值的数据,模型正确预测的能力。现实中的数据库通常有噪声,有时还很大。如果一个分类器不善于消除噪声的影响,将严重影响分类准确率。
  • 可伸缩性:指给定大量数据,有效的构造模型的能力。有些分类器在数据量很小的情况下可以有效的构造模型,随着数据量的增大,其构造模型的能力显著下降,这最终也会影响分类准确率。
  • 可解释性:指学习模型提供的理解和洞察的层次。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44177594/article/details/124007514

智能推荐

BUU系列_flask靶场_小蓝同学`的博客-程序员秘密

[GYCTF2020]FlaskApp  开始打开这个靶场,发现这是一个加解密的应用,我们可以进行base64加解密,开始寻找网页的源代码,使用脚本扫描目录文件也没有什么发现,查看应用的网页源代码也没有发现。之前所解的一道题是一个基于flask框架的SSRF,然后就疯狂在输入框里面输入命令,看看有什么命令是执行的,试了几次之后发现有这样一个过程。我试了试{{3+7}}这种简单的注入测试发现加密的结果是10的base64加密,那这样子肯定是存在一个命令执行漏洞的(存在SSTI漏洞),之后的注入当中发现在

HD-SDI转HDMI转换器工作原理及功能介绍_杭州飞畅的博客-程序员秘密

高清HD-SDI转HDMI转换器是一款专用于单路高清数字分量串行接口(HD-SDI和3G-SDI)信号转换为HDMI信号的设备。该设备集成SDI接收器及HDMI调制器,可方便的将HD-SDI信号转为HDMI信号,同时会将SDI所带音频信号分离转换后嵌入到HDMI信号中,以实现声音及图像同步传输。那么,HD-SDI转HDMI转换器的工作原理是什么呢?有哪些功能优势呢?接下来我们就一起来看看吧!HD-SDI转HDMI转换器工作原理HD-SDI转HDMI转换器将广播级输出图像使用的SDI信号转换成HDMI影

ASN 和 PB 的编码效率比较_pb消息和asn消息_Rayking629的博客-程序员秘密

作者:王纯业### 第一个例子http://martin.kleppmann.com/2012/12/05/schema-evolution-in-avro-protocol-buffers-thrift.html 是一个很好的比较例子。我类似的做了一个 ASN1 的结构```Person DEFINITIONS AUTOMATIC TAGS ::=BEGIN  Person

洛谷.2051.[AHOI2009]中国象棋(DP)_weixin_30788619的博客-程序员秘密

题目链接/*每行每列不能超过2个棋子,求方案数 前面行对后面行的影响只有 放了0个、1个、2个 棋子的列数,与排列方式无关 所以设f[i][j][k]表示前i行,放了0个棋子的有j列,放了1个棋子的有k列,则放了2个棋子的为(m-j-k)列 则放棋子一共可分为6种情况 不放棋子:1.f[i+1][j+2][k] += f[i][j][k]放一个棋子:2.放在没有棋子的那一列 f[i+...

微信小程序使用echart绘图遇到的问题及注意事项_ec-charts_灰鸽私塾的博客-程序员秘密

echart 组件下载echart官网github下载使用1、直接引入(文件太大了,第2点使用自定义构建可减少一部分)下载后将 ec-canvas整个文件 直接复制到项目下面 如:放的位置不同,在引入的时候路径就不一样,切记!引入:1、countDown.json 配置如下:{“usingComponents”: {“ec-canvas”: “…/…/ec-canvas/ec-canvas”}}2、countDown.js 如下所示:注意:js 一定要引入impor

Elasticsearch 启动失败的错误与解决方式_elasticsearch启动失败_罐装面包的博客-程序员秘密

Elasticsearch 在没有对系统配置的前提下,启动经常失败。常见错误错误一max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]对于 elasticsearch 进程来说,最大的文件描述符限制 65535 太低了,至少增加到 65536。如何查看当前文件描述符限制# H = hard 硬限制ulimit -Hn# S =..

随便推点

前端切图+网页排版的注意事项和经验分享_weixin_34417814的博客-程序员秘密

现在在学校里面,培训机构里面都有很多课程是前端切图这一方面的,简单来说就是学习div+css网页排版。有很多人经过这一轮的学习之后就发现自己对排版这一方面非常的熟悉甚至说自己的div+css的高手。其实真正说要懂得一个网页排版需要注意的一些问题是什么呢?是不是在电脑上面看到自己排版出来的页面就真的是一个成功的网页了吗?下面我说一下我自己在网页排版上面会注意的一些事情:一、使用样式的种类和名字的...

vgg训练自己的数据24分类ASL手势数据集_asl数据集_爱吃西瓜的小松鼠的博客-程序员秘密

今天心情相对于前几天好多了。上一个博客,是用VGG网络。载入别人模型。然后识别自己的图片。这一篇!训练ASL数据集。24分类。先看文件目录:三个文件。 最后一个是训练。第一个是数据集的处理。 中间的那个是用来测试的。使用:第一:把trainvgg.py 里面数据集换成自己的。这里注意开始的分类我是24分类。A、B、C、............ ...

Linux:上下文,进程上下文和中断上下文概念,上下文切换_linux中断上下文_Hani_97的博客-程序员秘密

操作系统二:上下文,进程上下文和中断上下文1. 上下文 context:(就是一个环境)1.1 进程上下文的三个部分:用户级上下文、寄存器上下文以及系统级上下文1.2 上下文切换1.3 cpu内核态的三种状态:2. 进程上下文:3. 中断上下文3.1 中断上下文概念:3.2 中断上下文代码中注意事项1. 上下文 context:(就是一个环境)上下文简单说来就是一个环境,相对于进程而言,就是进程执行时的环境。具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。1.1 进程上

ssh报错_vivian_wanjin的博客-程序员秘密

inux: SSH报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 解决方案, Remove key from known_hosts, Fix Offending key in ~/.ssh/known_hosts fileLinux: SSH报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGE...

2018年最新大数据系统学习路线图和最新Python学习路线图_python大数据学习_次世代群901739356的博客-程序员秘密

2017年,大数据、Python人工智能刷了全球的屏:高薪就业、人才被抢的新闻报道频频刷屏。从技术突破到商业应用落地再到国家政策支持等各个层面,都显示出这两个技术方向强大的生命力。为了让有学习需求的同学能尽早着手,我们决定把学习路线图公布出来,给同学们做参考。关注作者很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,...