感知器演算法步驟:
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不包含最後一項常數項 權向量,解向量,即引數向量 增廣向...