一个监督学习(极大似然分类)与非监督学习(K-means)的例子(matlab实现)

上遥感原理与应用的时候,老师给我们大致讲了一下遥感图像的地物分类问题,大致了解了一下机器学习方法在遥感影像处理方面的应用问题。
下面将所做作业进行一个大致的总结:

数据

训练集一共四种:building、road、vegetation、water,分别对应标签1,2,3,4,测试集为unknown;
数据为高光谱遥感影像数据,包含八个波段,需要对unknown进行逐像素的分类。
数据链接如下:
https://pan.baidu.com/s/1gwa3GdXGxb9sfnbVsbFusw

监督分类-极大似然

一是假设每种地物每个波段都是正态分布的,然后根据贝叶斯判别准则计算测试集每个像素在四种类型中的概率,取概率最大为其地物类型。
代码如下:

 cd 'D:\桌面\大三下\遥感原理与应用\exp-1';
clear
clc
load('matlab.mat');
format long g
p=zeros(4,1);
p(1)=size(building,1)/size(sum_Mat,1);
p(2)=size(road,1)/size(sum_Mat,1);
p(3)=size(vegetation,1)/size(sum_Mat,1);
p(4)=size(water,1)/size(sum_Mat,1);
mul=[mean(building);mean(road);mean(vegetation);mean(water)];
SG=cell(4);
SG{
   1}=cov(building);
SG{
   2}=cov(road);
SG{
   3}=cov(vegetation);
SG{
   4}=cov(water);

predit=zeros(size(unknown,1),1);
t=zeros(1,4);
for i = 1:size(unknown,1)
    p=0;
    for j =1 :4
        t(j)=( 1/( (2*pi)^(1/2)*det(SG{j})^0.5 ) ) * exp( -0.5*(unknown(i,1:8)-mul(j,:))*inv(SG{j}) *(unknown(i,1:8)-mul(j,:))');
    end
     [~, x] = max(t);
    predit(i)=x;
end
tabulate(predit-unknown(:,9))
end
confuseMat=confusionmat(unknown(:,9),predit);
accuracy=length(find(predit==unknown(:,9)))/size(unknown,1);
K=size(unknown,1);
Pe=sum(sum(confuseMat,2).*diag(confuseMat))/K^2;
Kappar=(accuracy-Pe)/(1-Pe);

这里先验的地物概率并没有用到,因为这里假设了四种地物出现的概率是相等的,实际情况中其实要根据实际的地物情况进行处理。

有监督精度的评价

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值