300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 构造matlab决策树分类器 Matlab建立逻辑回归 决策树 SVM KNN和朴素贝叶斯模型分类

构造matlab决策树分类器 Matlab建立逻辑回归 决策树 SVM KNN和朴素贝叶斯模型分类

时间:2019-07-13 20:26:03

相关推荐

构造matlab决策树分类器 Matlab建立逻辑回归 决策树 SVM KNN和朴素贝叶斯模型分类

尽管对于较高的阈值,SVM可以产生更好的ROC值,但逻辑回归通常更擅长区分不良雷达收益与良好雷达。朴素贝叶斯的ROC曲线通常低于其他两个ROC曲线,这表明样本内性能比其他两个分类器方法差。

比较所有三个分类器的曲线下面积。

R

1

2

3

4

5

6

AUClog

AUClog=0.9659

AUCsvm

AUCsvm=0.9489

AUCnb

AUCnb=0.9393

Logistic回归的AUC度量最高,而朴素的贝叶斯则最低。该结果表明,逻辑回归对此样本数据具有更好的样本内平均性能。

确定自定义内核功能的参数值

本示例说明如何使用ROC曲线为分类器中的自定义内核函数确定更好的参数值。

在单位圆内生成随机的一组点。

定义预测变量。将第一象限和第三象限中的点标记为属于正类别,而将第二象限和第二象限中的点标记为负类。

R

1

2

3

pred=[X1;X2];

resp=ones(4*n,1);

resp(2*n+1:end)=-1;%Labels

创建函数mysigmoid.m,该函数 接受要素空间中的两个矩阵作为输入,并使用S形内核将其转换为Gram矩阵。

使用Sigmoid内核函数训练SVM分类器。使用标准化数据。

设置 gamma = 0.5,使用调整后的S形核训练SVM分类器。

R

1

2

3

4

SVMModel2=fitPosterior(SVMModel2);

[~,scores2]=resubPredict(SVMModel2);

计算两个模型的ROC曲线和曲线下面积(AUC)。

绘制ROC曲线。

R

1

2

3

4

5

6

plot(x1,y1)

holdon

plot(x2,y2)

holdoff

title('ROC for classification by SVM');

将gamma参数设置为0.5的内核函数可提供更好的样本内结果。

比较AUC度量。

R

1

2

3

4

5

6

7

8

9

10

auc1

auc2

auc1=

0.9518

auc2=

0.9985

伽玛设置为0.5时曲线下的面积大于伽玛设置为1时曲线下的面积。这也证实了伽玛参数值为0.5会产生更好的结果。为了直观比较这两个伽玛参数值的分类性能。

绘制分类树的ROC曲线

加载样本数据。

R

1

loadfisheriris

列向量 species由三种不同物种的鸢尾花组成。双矩阵 meas包含对花朵的四种测量类型:萼片长度,萼片宽度,花瓣长度和花瓣宽度。所有度量单位均为厘米。

使用萼片的长度和宽度作为预测变量训练分类树。

根据树预测物种的分类标签和分数。

R

1

[~,score]=resubPredict(Model);

分数是观察值(数据矩阵中的一行)所属类别的后验概率。列 score对应于所指定的类 'ClassNames'。

由于这是一个多类问题,因此不能仅将其 score(:,2)作为输入。这样做将无法提供 perfcurve有关两个阴性类别(setosa和virginica)分数的足够信息。此问题与二元分类问题不同,在二元分类问题中,知道一个类别的分数就足以确定另一个类别的分数。因此,必须提供 perfcurve将两个否定类的得分纳入考虑范围的函数。一种函数是score(:,2)-max(score(:,1),score(:,3))。

X,默认为假阳性率,Y,默认为真阳性率(召回率或敏感性)。正类标签为 versicolor。由于未定义否定类别,因此 perfcurve假设不属于肯定类别的观测值属于一个类别。该函数将其接受为否定类。

R

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

suby=12×2

00

0.18000.1800

0.48000.4800

0.58000.5800

0.62000.6200

0.80000.8000

0.88000.8800

0.92000.9200

0.96000.9600

0.98000.9800

subnames=1x2cell

{'setosa'}{'virginica'}

在ROC曲线上绘制ROC曲线和最佳工作点。

找到与最佳工作点相对应的阈值。

R

1

2

T((X==OPTROCPT(1))&(Y==OPTROCPT(2)))

ans=0.2857

指定 virginica为否定类,并计算和绘制ROC曲线 versicolor。

同样,必须提供 perfcurve将否定类分数纳入考量的函数。要使用的函数的一个示例是score(:,2)-score(:,3)。

计算ROC曲线的逐点置信区间

加载样本数据。

R

1

loadfisheriris

仅将前两个变量用作预测变量,来定义二元问题。

R

1

pred=meas(51:end,1:2);

定义二进制因变量。

R

1

resp=(1:100)'>50;%Versicolor=0,virginica=1

拟合逻辑回归模型。

通过垂直平均(VA)和使用bootstrap进行采样,计算真实正率(TPR)上的逐点置信区间。

'NBoot',1000将引导样本的数量设置为1000。 'XVals','All'提示 perfcurve返回 X, Y和 T所有分数的Y值,并X使用垂直平均将所有值的值(真阳性率) 平均 (假阳性率)。默认情况下将使用阈值平均来计算置信范围。

绘制逐点置信区间。

R

1

2

errorbar(X,Y(:,1),Y(:,1)-Y(:,2),Y(:,3)-Y(:,1));

不一定总是可以控制误报率(FPR,X此示例中的 值)。因此,可能希望通过阈值平均来计算真实正利率(TPR)的逐点置信区间。

绘制置信区间。

R

1

2

3

figure()

errorbar(X1(:,1),Y1(:,1),Y1(:,1)-Y1(:,2),Y1(:,3)-Y1(:,1));

指定阈值计算ROC曲线。然后绘制曲线。

R

1

2

3

4

figure()

errorbar(X1(:,1),Y1(:,1),Y1(:,1)-Y1(:,2),Y1(:,3)-Y1(:,1));

构造matlab决策树分类器 Matlab建立逻辑回归 决策树 SVM KNN和朴素贝叶斯模型分类绘制ROC曲线...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。