統計學習方法之感知機

2021-07-03 05:20:08 字數 1544 閱讀 4731

在翻閱知乎時,得知李航所著的《統計學習方法》一書,於是就買了一本,看到csdn上已有大牛都發了相關的部落格,再次贅述就顯得囉嗦了,就直接上乾貨吧,,自己用matlab寫的**,和一些自己再看書時的小小的理解。

感知機是一種二類分類的線性模型模型,是乙個將輸入空間(特徵空間)分成正負兩類的分離超平面。它的更多文字簡介可參考這篇博文,裡面已經講的很詳細了。

下面總結了一些自己的理解以及需要自己注意的地方,更加的利於我們去理解。

感知機學習演算法分為原始形式和對偶形式:

1、在原始形式中,權重w的維度與訓練集中單個例項是一樣的,它是通過誤分類點不斷的改變w的值,而在對偶形式中,w被表示為例項和每個例項的線性組合,在yita為1的前提下,其可表示為n個alfa,n是訓練集中例項的個數。

2、因為二者的解太多了,所以需要加上相關的約束條件,於是便有了後面的svm。

例2.1的**:

close all;

clear all;

clc;

x =[3 3 1;

4 3 1;

1 1 -1];

w=[0 0]'; b=0;

mispot=1;%只是讓迴圈能夠開始

while mispot~=0

mispot=0;%每次迴圈後,記錄誤分類點的個數,並將其歸零進行下一次記錄

for row_=1:row

temp=x(row_,3)*(x(row_,1:2)*w+b);

if temp<=0

mispot=mispot+1;

w=w+x(row_,1:2)'*x(row_,3); b=b+x(row_,3);

disp('w_dq'),disp(w);

disp('b_dq'),disp(b);

endend

end

例2.2

close all;

clear all;

clc;

x =[3 3; 4 3; 1 1];

y=[1 1 -1];

alfa=zeros(1,3);

b=0;

yita=1;

[row,col]=size(x);

gram=zeros(3,3);

for i=1:row

for j=1:row

gram(i,j)=x(i,:)*x(j,:)';

endendcount=1;

while count~=0

count=0;

for i=1:row

temp=y(i)*(...

alfa(1)*y(1)*gram(1,i)+...

alfa(2)*y(2)*gram(2,i)+...

alfa(3)*y(3)*gram(3,i)+...

b);if temp<=0

count=count+1;

alfa(i)=alfa(i)+yita;

b=b+y(i);

endend

end

一些愚見奉上!

統計學習方法之感知機模型

寫這篇部落格的時候,我頭暈腦脹的。晚上11點多,特別想睡覺,但是一種深深的負罪感把我從床上拉了起來。世界上最遙遠的距離,就是明明非常喜歡那張床,卻還得假裝絲毫沒有把它放在心上。為什麼要寫感知機呢?這麼乙個老古董。因為我正好看到了 統計學習方法 的那一課。欲生欲死 死不足惜 夕陽西下 夏天真的特別容易...

感知機 統計學習方法

一 感知機適用問題以及它的輸入,輸出,求解方法 1 感知機 perceptron 適用於二類分類問題 該分類問題是線性可分問題 2 感知機模型是線性分類模型 3 感知機的幾何解釋,感知機對應的是乙個超平面 4 輸入 例項的特徵向量 5 輸出 例項的類別,取 1和 1二值 6 求解方法 有監督學習 給...

《統計學習方法》 感知機

最近終於有開始看 統計學習方法 了,畢竟無腦調參確實沒有什麼意義。一方面是作為看書的筆記,一方面作為比部落格或許能起到一點參考作用吧。希望可以日更。由輸入空間到輸出空間的函式 f x si gn w x b f x sign w cdot x b f x s ign w x b 稱為感知機。感知機是...