感知器演算法

2021-07-29 07:01:58 字數 1506 閱讀 4323

感知器演算法步驟:

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 ,說明訓練錯誤,則對權值進行懲罰,w = w + c*[data(k,:) yk];

否則對權值進行獎勵即不懲罰,w = w;

5.對所有資料訓練完成後,如果至少有乙個資料訓練錯誤,則要對權值進行重新訓練,直到對所有資料訓練正確,結束訓練。

感知器演算法matlab實現:

[plain]view plain

copy

function [w, mis_class] = perceptron(x,t)  

% the perceptron algorithm   

%by lifeiteng   email:[email protected]  

%   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  

end  

[dim num_data] = size(x);  

w = ones(dim+1,1);%%w = [w0 w1 w2]'  

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

maxiter = 100000;  

mis_class = 0;  

iter = 0;  

while iteriter = iter+1;  

y = w'*x;  

label = ones(1, num_data);%  

label(y<=0) = -1;    

index = find(label~=t); %錯誤分類的點  

mis_class = numel(index); %錯誤分類點的數目     

if mis_class==0  

break  

end  

for i = 1:mis_class  

w = w + x(:,index(i))*t(index(i));  

end  

end  

if iter==maxiter  

disp(['達到最大迭代次數' num2str(maxiter)])  

end  

**引自:

感知器演算法

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 生成測試...

感知器演算法

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為樣本數目...

感知器演算法

1.判別函式 統計模式識別分為聚類分析法和判決函式法,其中判決函式法又包括幾何分類法 確定性時間分類,線性,非線性 以及概率分類法 隨機事件分類 判別函式即用來對模式進行分類的準則函式。2 線性判別函式 n維線性判別函式的一般形式為 其中x,w不包含最後一項常數項 權向量,解向量,即引數向量 增廣向...