• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

(转载)简单线性分类学习机(平分最近点法)matlab实现(1) ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本人新手小白,研一渣渣一名,信息与通信工程专业,本科为物联网专业。研究生期间想在网上学习一些知识,但是无从下手,于是乎想用写博客的方式来督促自己学习,我没有什么方向,还请志同道合的伙伴为我指明方向,一起讨论同时进步。这是我学习的第一个程序在matlab下可以运行,转载自百度经验,如有不妥之处请大家见谅,这是一个简单线性分类学习机(利用了平分最近点法)matlab实现https://jingyan.baidu.com/album/6079ad0eafe4b028ff86dbf8.html?picindex=3

我们假设现在又两类样本点A 类,B类,每类分别拥有5个数据样本,A类的五个坐标如图:

                                                                        

                                                                       B类的五个坐标如下:    

                                                                       

        假设现在有一个点(4,3.5)我们需要判别它具体应该属于哪一类,我们需要进行如下代码,作者已经给出详细的注释:


clc;
clear all;
%@ auther yutianduo
%   2018 July 19th
%@简单线性分类学习机matlab代码实现
%请大家互相交流学习 QQ:120371935
datax=[1 2;1.5 2;0.5 1;2 1.5;2.5 2];%属于A类的5个样本点

datay=[3 4;3.5 4;3.5 5;5 4.5;5.5 5];%属于B类的5个样本点

distance_matrix=zeros(length(datax),length(datay));%建立一个5X5的零矩阵

for i=1:length(datax)

for j=1:length(datay)

distance_matrix(i,j)=sqrt((datax(i,1)-datay(j,1))^2+(datax(i,2)-datay(j,2))^2);%求距离  欧几里得距离???哈哈哈

end
end

[c,i]=min(distance_matrix);%每列的最小值,并标注出行数

[k,j]=min(c);

data=[datax(i(1),:);datay(j,:)];%data中保存的是两类中距离最短的点的坐标A类(2.5,2)B类(3,4)
x=0:0.01:5;%抽样点

y=-1.0/((data(2,2)-data(1,2))/(data(2,1)-data(1,1)))*(x-(data(1,1)+data(2,1))/2)+(data(1,2)+data(2,2))/2;%y-y0=-1/k(x-x0)

plot(datax(:,1),datax(:,2),'r+');hold on %画出第A类数据在坐标系中的位置,并用红色+号标注出来 保持

plot(datay(:,1),datay(:,2),'go');hold on%画出第B类数据在左边系中的位置 并用绿色圆圈标注  保持

plot(x,y,'b-') ;%绘制中垂线 用蓝色短线

xlim([0,6]); %设置 x的范围

ylim([0,6]); %设置 y的范围

plot(4,3.5,'r*') %标出来你想分类的(4,3.5)这个点在坐标系中的位置

 

 


 

                                                   

如图我们将A类数据用红色加号表示,B类数据用绿色圆圈表示,图中绘制的直线将平面区域分成两部分,红色星号为所需分类的样本点,我们由图可知,他被分到了B类。这是我对这个程序的理解和解读。希望大家多多指教。这也是我的第一篇博客,希望大家给我这个小小的信通研一小白多多提供方向,小弟感激不尽。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap