数据挖掘十大算法之分类算法(分类介绍及评价指标)
文章目录
- 1. 分类相关知识
- 1.1 分类的概念
- 1.2 分类的流程
- 1.3 分类模型评价标准
- 2. 二分类分类案例
- 参考文章:
接上篇文章,接下来学习挖掘算法中的分类算法:
首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为
分类算法
,聚类算法
和关联规则
三大类
算法分类
连接分析:PageRank
关联分析:Apriori
分类算法:ID3、C4.5,朴素贝叶斯,SVM,KNN,Adaboost,CART
聚类算法:K-Means,EM
这里研究分类算法中的决策算法——ID3算法,有ID3算法的知识背景后分析C4.5算法就会容易很多
1. 分类相关知识
1.1 分类的概念
分析分类算法,那么首先我们需要知道什么是分类,这里我们给出定义:
分类是最常见的数据挖掘任务,也是人类众多规则之一
给定数据集D={t1,t2,…,tn},元组ti为D的真子集,类的集合C={C1,……,Cm}
我们将分类的问题定义为:
关于分类我们应该知道:
- 考察一个新出现的对象的特征,并归类到已定义类中。
- 在数据挖掘中,分类的对象通常是数据库表或文件中的记录
- 分类工作首先要有一个清晰定义的类
- 注意: 类的个数是确定的,预先定义好的
- 其次,要有一系列已分类实例
1.2 分类的流程
分类的流程为:
- 步骤一:数据准备
- 步骤二:特征选择
- 步骤三:建立分类器
我们通过一个例子来解释一下以上三个流程:
我们看下面的数据集,根据已知样本的相关信息,能否对未知的样本进行分类? 动物A和动物B是什么类型的动物呢?
步骤一:数据准备
步骤二:特征选择
选择与类别相关的特征,比如,绿色代表与类别非常相关,黑色代表部分相关,灰色代表完全无关
建立分类器。分类器通常可以看作一个函数。在这里我们可以简单的分析出:
产蛋并且有翅膀、脚的只数就可以分类为鸟类;不产蛋、没有翅膀、并且脚的只数为4只的可以分类为爬行动物,但是我们看动物A和动物B都不能满足所以的分类条件,所以在这里我们并不能将其进行分类
我们给出分类器的公式:
f ( x i 1 , x i 2 , x i 3 , . . . . . . , x i n ) → y i f (xi1,xi2,xi3,......,xin)→ yi f(xi1,xi2,xi3,......,xin)→yi
我们通过下面的分类过程来演示一下分类器
第一步 建立模型
例如下图中,训练集通过分类算法建立模型,我们可以得到:
- 如果这个人是教授或者他的任教时间超过了6年,那么他就可以被终身聘用
第二步:使用模型进行分类
我们看下图,通过上面建立好的分类集,我们就可以判断
Jeff
是教授,所以他可以被终身聘用
1.3 分类模型评价标准
分类流程中,最重要的一步就是怎么找到分类模型,并且如何衡量分类模型的正确性
这里就引出了如何评价分类模型的问题,对于分类模型,主要可以从以下几个方面进行评价:
- 预测的准确度:模型正确地预测新的或之前没见过的数据类别的能力
- 速度:产生和使用模型的计算成本
- 强壮型:当存在噪声数据或具有空缺值的数据时,模型正确预测的能力
- 可伸缩性:当给定大量数据时,有效地构造模型的能力
- 可解释性:学习模型提供的理解和洞察的层次
分类评价的常用术语有:
- 真正类(True Positive , TP):被模型预测为正例的正样本个数
- 假正类(False Positive , FP):被模型预测为正例的负样本个数
- 假负类(False Negative , FN):被模型预测为负例的正样本个数
- 真负类(True Negative , TN):被模型预测为负例的负样本个数
- 混淆矩阵(confusion matrix):是用来反应某一个分类模型的分类结果,其中行表示的是真实的类别,列表示的是模型预测的类别
在分类的时候,我们有二分类和多分类,所谓的二分类就是将分类的结果分为两类,例如我们将人的性别分为男人和女人
二分类算法的评价指标包括以下几个:
正确度(accuracy):
accuracy = (TP + TN) / (P + N)
,即被分对的样本数除以所有样本数,正确率越高,分类器越好错误率(error rate):错误率和正确率相反,描述被分类器错分的比例。
error rate = (FP + FN) / (P + N)
,对某一个实例来说,分队和分错是互斥事件,所以我们有accuracy = 1 - error rate
灵敏度(sensitive):
sensitive = TP / P
,表示的是所有正例中被分对的比例。灵敏度衡量了分类器对真例的识别能力特效度(specificity):
specificity = TN / N
,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力精度(precision):
precision = TP / (TP + FP)
,精度是精确性的度量,表示被分为正例的实例中实际为正例的比例召回率(recall):
recall = TP / (TP + FN) = TP / P = sensitive
,召回率是对覆盖面的度量,度量有多个正例被正确地分为正例ROC(Receiver Operating Characteristic)曲线和AUC(曲线包围面积),ROC曲线也被成为接受者操作曲线,来源于信号检测领域,可以用来比较两个分类器的性能。
ROC
曲线关注两个指标TPR
(true positive rate)和FPR
(false positive rate)
T P R = T P / ( T P + F N ) TPR = TP / (TP + FN) TPR=TP/(TP+FN)F P R = F P / ( F P + T N ) FPR = FP / (FP + TN) FPR=FP/(FP+TN)
详细的介绍请看这篇文章:机器学习分类模型评价指标详述
2. 二分类分类案例
我们通过一个二分类的例子来将上面的评价指标串起来
我们有以下数据集,我们需要进行海洋生物识别,鱼类标签为1,非鱼类为0:
我们根据分别表可以知道:
TP=900:真阳 FP=200: 假阳
FN=100: 假阴 TN=800: 真阴
参考文章:
- 机器学习分类模型评价指标详述
- 学校PPT
数据挖掘十大算法之分类算法(分类介绍及评价指标)相关推荐
- 数据挖掘十大经典算法之——Naive Bayes 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——KNN 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——AdaBoost 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法之——C4.5 算法
数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...
- 数据挖掘十大经典算法(转载)
数据挖掘十大经典算法 一.C4.5 C4.5,是机器学习算法中的一个分类决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法ID3的改进算法,所以基 ...
- 数据挖掘十大经典算法(详解)
数据挖掘十大经典算法 一. C4.5 C4.5算法是机器学习算法中的一种分类决策树算法 ...
- 数据挖掘十大经典算法笔记
主要总结一下数据挖掘十大经典算法,包括各自优缺点, 适用数据场景,做个小笔记,分享一下 数据挖掘主要分为分类算法,聚类算法和关联规则三大类,这三类基本上涵盖了目前商业市场对算法的所有需求.而这三类里又 ...
- 数据挖掘十大经典算法个人总结
数据挖掘十大经典算法个人总结 这两年对数据挖掘相关知识研究运用的已经很多了,最近看了关于数据挖掘十大经典算法的文章.想对其进行一个总结,强化下自己对这些算法的理解. 1. C4.5 C4.5 是基于I ...
- 决策树C4.5算法 c语言实现,数据挖掘十大经典算法(1) C4.5_决策树算法
数据挖掘十大经典算法(1) C4.5_决策树算法 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...
最新文章
- python怎么识别拼音-python获取一组汉字拼音首字母的方法
- Bulk批量操作API的介绍
- php 走马灯轮播,Vue.js轮播图走马灯代码实例(全)
- 我一个弱女子在欧洲大街上拉屎了,因为便秘惹的祸
- Go语言标准库之fmt.Print
- Vue v-for生成DOM元素
- EasyPR--中文车牌识别系统 开发详解(开源)
- 2021-01-11
- 避免eclipse下启动run就进入debug模式
- 预定义类型未定义或导入_探索类型系统的底层 - 自己实现一个 TypeScript
- JAVA 实现批量PDF 打印,线程池多线程执行(附完整代码)
- [Windows系统]查看电脑开关机时间
- 关于深圳商事登记招商ukey签名无效
- python随风飘落怎么画_树叶飘落动画制作 如何制作树叶飘落的动画?视频画面添加树叶随风飘落的动画效果...
- C语言socket重连和心跳,c# socket 心跳 重连
- 各国语言名称英文简写对照表
- wpsjs插件开发-采用js和wps交互功能
- Java 基本数据类型(八种基本数据类型)
- 5G工业路由器 千兆高速低延时
- cvi读写.csv文件
热门文章
- 身为一个安卓程序员Context都没弄明白?终局之战
- oracle分布式数据库搭建,ORACLE实现分布式数据库应用
- 花园除草机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 区块链+基因检测可行?不暴露个人信息就能测序基因组!
- 推荐一位零基础Python网络爬虫学习者,原来也爬虫也没有那么难
- 一文搞定GPS接收机定位
- Vmware虚拟机设置静态IP地址(windows)
- webdriver使用
- Context完全解析(一)什么是Context?
- 机器学习-多元线性回归(Multiple Regression)算法