簡單易學的機器學習演算法——Rosenblatt感知機
阿新 • • 發佈:2022-05-04
一、感知機的概念
二、感知機模型的訓練
1、目標函式
2、感知機的訓練過程
三、例項
選自《統計學習方法》,訓練集為:正例項點是
負例項點是
原始點集
MATLAB程式碼
%讀入資料 x=[3,3;4,3;1,1]; y=[1;1;-1]; %--初始化w和b w = [0,0]; b = 0; a = 1;%步長 %--選擇未能初始化的點 flag = 0; i = 1; while flag~=1 while i <= 3 t = y(i)*(w*x(i,:)'+b); if t <= 0 w = w + a*y(i,:)*x(i,:); b = b + a*y(i,:); i = 1;%重置i break; else i = i+1; end if i == 4 flag = 1; end end end %畫出分隔線 hold on axis([0 5 0 5]);%axis一般用來設定axes的樣式,包括座標軸範圍,可讀比例等 for j = 1:3 plot(x(j,1),x(j,2),'.'); m(1,j) = (-b-w(1)*j)./(w(2)); end j = 1:3; plot(j,m);
分類結果