- 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年,那么他就可以被终身聘用
1.3 分类模型评价标准第二步:使用模型进行分类
我们看下图,通过上面建立好的分类集,我们就可以判断
Jeff
是教授,所以他可以被终身聘用
分类流程中,最重要的一步就是怎么找到分类模型,并且如何衡量分类模型的正确性
这里就引出了如何评价分类模型的问题,对于分类模型,主要可以从以下几个方面进行评价:
- 预测的准确度:模型正确地预测新的或之前没见过的数据类别的能力
- 速度:产生和使用模型的计算成本
- 强壮型:当存在噪声数据或具有空缺值的数据时,模型正确预测的能力
- 可伸缩性:当给定大量数据时,有效地构造模型的能力
- 可解释性:学习模型提供的理解和洞察的层次
分类评价的常用术语有:
- 真正类(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)
详细的介绍请看这篇文章:机器学习分类模型评价指标详述
我们通过一个二分类的例子来将上面的评价指标串起来
我们有以下数据集,我们需要进行海洋生物识别,鱼类标签为1,非鱼类为0:
我们根据分别表可以知道:
TP=900:真阳 FP=200: 假阳
FN=100: 假阴 TN=800: 真阴
参考文章:- 机器学习分类模型评价指标详述
- 学校PPT
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)