模型研究15-判别分析与朴素贝叶斯
一、判别分析
判别分析是一种分类算法,属于有监督学习,在判别分析里面,最简单的是线性判别分析。
有这么一组数据,x1和x2,上图为x1和x2的分布,红色属于一类,蓝色属于一类,我们要找一个方法,将其分开,线性判别分析如下:
所有的点都可以在直线上做一个投影,通过投影间距离,来做判定标准,上图可以看出,红色投影在一边,蓝色在一边,如果分类分的特别好的话,我们就看他们的平均值,求红色点的平均数,再求蓝色点的平均数,如果两个点的平均数差的很远的话,就是说明分开的很好。还可以用另外一种线:
最后就是是想让平均值分的开一点,哪种分的开,那种就好一点。
寻求平均值的计算公式如下:
单纯看平均值来分析,还是有些缺点的。所以希望同时引入对集中程度的评价,相当于方差:
最终的评价指标为:
方差越集中越好,平均值差越大越好。通过这个标准,来寻找不同投影情况,来比较,选一个最好的。
判别分析在matlab的运用:
clear
load fisheriris
MdlLinear = fitcdiscr(meas,species);
meanmeas = mean(meas); % 人为创建一个新的x值
meanclass = predict(MdlLinear,meanmeas) %预测
% 二次
MdlQuadratic = fitcdiscr(meas,species,'DiscrimType','quadratic');
meanclass2 = predict(MdlQuadratic,meanmeas)
二、朴素贝叶斯
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。这里就来介绍贝叶斯定理以及贝叶斯分类中最简单的一种:朴素贝叶斯分类。
首先,了解一下贝叶斯定理:
例子:
一个班级有300个女生,200个男生
P(女)=300/500=0.6
P(男)=200/500=0.4
1%的学生不及格
P(不及格)=0.01
不及格的学生中,男生占50%,女生占50%
P(男|不及格)=0.5
P(女|不及格)=0.5
求:一个男生不及格的概率是多少?
P(不及格|男)=?
朴素贝叶斯算法即计算各种情况的概率,然后通过以下公式进行分类预测,,然后即可得到所需要的分类预测模型。
载入测试数据:
clear
load fisheriris
X = meas(:,1:2);
Y = species;
labels = unique(Y);
figure;
gscatter(X(:,1), X(:,2), species,'rgb','osd');
xlabel('Sepal length');
ylabel('Sepal width');
训练朴素贝叶斯分类器
mdl = fitcnb(X,Y);
测试数据
[xx1, xx2] = meshgrid(4:.01:8,2:.01:4.5);
XGrid = [xx1(:) xx2(:)];
预测
[predictedspecies,Posterior,~] = predict(mdl,XGrid);
sz = size(xx1);
s = max(Posterior,[],2);
结果绘图
figure
hold on
surf(xx1,xx2,reshape(Posterior(:,1),sz),'EdgeColor','none')
surf(xx1,xx2,reshape(Posterior(:,2),sz),'EdgeColor','none')
surf(xx1,xx2,reshape(Posterior(:,3),sz),'EdgeColor','none')
xlabel('Sepal length');
ylabel('Sepal width');
colorbar
view(2)
hold off
分别绘图
figure('Units','Normalized','Position',[0.25,0.55,0.4,0.35]);
hold on
surf(xx1,xx2,reshape(Posterior(:,1),sz),'FaceColor','red','EdgeColor','none')
surf(xx1,xx2,reshape(Posterior(:,2),sz),'FaceColor','blue','EdgeColor','none')
surf(xx1,xx2,reshape(Posterior(:,3),sz),'FaceColor','green','EdgeColor','none')
xlabel('Sepal length');
ylabel('Sepal width');
zlabel('Probability');
legend(labels)
title('Classification Probability')
alpha(0.2)
view(3)
hold off
计量21-