感知器演算法 MATLAB

2021-08-03 02:14:32 字數 1570 閱讀 5704

axis([0 10 0 10]);%橫、縱座標範圍

hold on

%hold on 使當前軸及圖形保持而不被重新整理,準備接受此後將繪製的圖形,多圖共存

%hold off 使當前軸及圖形不在具備被重新整理的性質,新圖出現時,取消原圖

x=;%存放滑鼠取點座標

n=0;%計數

%w1類取點向量

disp('單擊滑鼠左鍵點取需要的點');

disp('單擊滑鼠右鍵點取最後乙個點');

but=1;

while but==1

[xi,yi,but]=ginput(1);%[x,y,button] = ginput(...) 返回x和y的座標,以及button值(1=左鍵,2=中,3=右)或者按鍵的asxii碼值

plot(xi,yi,'b-o')

n=n+1;

disp('單擊滑鼠左鍵點取下乙個點');

x(n,1)=xi;

x(n,2)=yi;

end;

nn=n;%w1分界點

%disp(num2str(nn));

hold on

%w2類取點向量

disp('單擊滑鼠右鍵點取需要的點');

disp('單擊滑鼠左鍵點取最後乙個點');

but=3;

while but==3

[xi,yi,but]=ginput(1);

plot(xi,yi,'r-.*')

n=n+1;

disp('單擊滑鼠右鍵點取下乙個點');

x(n,1)=xi;

x(n,2)=yi;

end%disp(num2str(n));

y=zeros(n,3);%w1,w2類樣本的增廣向量

for i=1:nn

y(i,1)=x(i,1);

y(i,2)=x(i,2);

y(i,3)=1;

end%disp(num2str(y));

for i=nn+1:n

y(i,1)=-x(i,1);

y(i,2)=-x(i,2);

y(i,3)=-1;

end%disp(num2str(y));

w=[0;0;0];p=1;k=0;%給定初始權向量,增量,步數

d=zeros(n,10000);%用來儲存判別函式

for i=1:10000

for j=1:n

k=k+1;

d(j,i)=y(j,:)*w;

if d(j,i)<=0

w=w+y(j,:)';

endend

if d(:,i)>0

disp('所求的解向量為:');

disp(num2str(w));

break;

endend

fun=@(xx,yy)w(1)*xx+w(2)*yy+w(3);%匿名函式的定義:函式控制代碼=@(變數名) 函式表示式

h=ezplot(fun,[0 10 0 10]);%畫出函式圖形

set(h,'color','y','linewidth',2);%%設定顏色和線寬

hold off

感知器演算法

coding utf 8 created on thu oct 15 13 58 06 2015 author think 感知器演算法 import mkdata as mk import numpy as np import matplotlib.pyplot as plt n 100 生成測試...

感知器演算法

感知器演算法步驟 1.給出m個帶有標籤的樣本,其中yi 1 or 1 xi xi1,xi2,xin 2.將資料的標籤併入訓練樣本,形成增廣向量,每個資料的維數為n 1 3.在 0,1 均勻分布區間內生成1x n 1 權值矩陣w 4.將資料依次送入感知器進行學習。如果w data k,yk 0 說明訓...

感知器演算法

clc clear all fprintf 感知器演算法 n x 1,4,1 2,6,1 1,2,1 2,2,1 x 0,0,0,1 1,0,0,1 1,0,1,1 1,1,0,1 0,0,1,1 0,1,1,1 0,1,0,1 1,1,1,1 n,n size x 獲取樣本數目和維數 n為樣本數目...