% 定義感知器演算法 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 說明訓...