基於簡單感知器分類演算法(matlab實現)

2021-08-13 14:03:38 字數 1055 閱讀 2341

% 定義感知器演算法 d=w1*x1+w2*x2+w3;

x=[0,0;0,1;1,0;1,-1];

class=[1,1,-1,-1];

%定義修改權重p

p=1;

% 初始化權重引數

w=[0,0,0];

%判別準則是錯誤次數err_count

err_count=1;

[n,m]=size(x);

%增廣and規範化

x=[x,ones(n,1)];

xx=zeros(n,m+1);

for i=1:n

xx(i,:)=x(i,:)*class(i);

end% 演算法停止準則--錯誤次數為0

while(err_count>=1)

err_count=0;

for i=1:n

if dot(w,xx(i,:))<=0   %err

w=w+p*xx(i,:);

err_count=err_count+1;

else

w=w;

endend

end%畫圖and結果

xmin=0;

xmax=5;

ymin=-2;

ymax=4;

plot(x(1:2,1),x(1:2,2),'ro','marke***cecolor','r');

hold on

plot(x(3:4,1),x(3:4,2),'go','marke***cecolor','g');

hold on

x1=-2:4;

result_x2 =(-w(3)-w(2)*x1)/w(1);

plot(result_x2,x1,'-');

axis([xmin xmax ymin ymax]);

title('感知器演算法');

xlabel('x1');

ylabel('x2');

legend('w1','w2','感知器分類線',-1)

disp(sprintf('最終權重值:w1=%d w2=%d w3=%d',w));

Fisher線性判別與感知器演算法Matlab實現

本文是在學習此書chapter4時,跑的實驗。x d n維輸入資料 t 標籤 w w0 w1 w2 mis class 錯誤分類資料點數 對t做簡單的檢查 if size unique t 2 2 return elseif max t 1 return elseif min t 1 return ...

感知器演算法

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 說明訓...