(李航統計學習方法)感知機Python實現

2021-09-23 20:27:26 字數 1157 閱讀 7683

機器學習的三要素:模型,策略,演算法

模型:感知機是二分類線性分類模型,屬於判別模型

策略:基於誤分類點到超平面的總距離。

學習演算法:略

感知機存在的問題:

存在多解,解依賴於初始超平面的選擇以及迭代過程中誤分類點的選擇。

訓練集線性不可分,演算法無法收斂,解決方法:pocket演算法或者使用核函式。

無法解決異或問題

python**實現:

import numpy as np

def train(x_train,y_train):

print(np.shape(x_train))

m,n=np.shape(x_train)

w=np.zeros((n,1))

b=0while true:

count=m

for i in range(m):

result=y_train[i]*(np.dot(x_train[i],w)+b)

if result<=0:

count-=1

for j in range(n):

w[j]=w[j]+x_train[i][j]*y_train[i]

b=b+y_train[i]

print("w:",w)

print("b:",b)

break

if count==m:

break

return w,b

def predict(w,b,x_test):

y_=np.dot(x_test,w)+b

return np.where(y_>1,1,-1)

def main():

x_train=np.array(([3,3],[4,3],[1,1]))

y_train=np.array(([1,1,-1]))

w,b=train(x_train,y_train)

x_test=np.array(([2,3],[-15,6],[1,4]))

print(predict(w,b,x_test))

if __name__=='__main__':

main()

李航《統計學習方法》 感知機

這一章就講了感知機。我覺得是深受工業革命的影響,把一些可以實現功能的基本單元都喜歡叫做什麼機,這裡的感知機,還有後來的以感知機為基礎的支援向量機。直接看定義,看本質,實際上,感知機是一種線性分類模型。下面就以這句話為中心仔細闡述一下。什麼叫線性。線性liner,正如其名,兩個變數的關係的函式是一條直...

李航統計學習方法 感知機的實現

感知機 假設輸入空間是 rn,輸出空間是 1,1 輸入 x表示例項的特徵向量,對應於輸入空間的點 輸出y 表示例項的類別。由輸入空間到輸出空間的如下函式 f x sign wx b 稱為感知機。其中,w和b為感知機模型的引數,sign是符號函式,即 sign好像很簡單,當x大於等於0,sign輸出1...

李航 統計學習方法 筆記 2 感知機學習演算法

感知機是二類分類的線性分類模型,屬於判別模型,輸入例項特徵向量,輸出例項的類別,取 1和 1。是神經網路與支援向量機的基礎。f x sign w.x b 幾何解釋 線性方程 w.x b 0 對應特徵空間的乙個超平面s,位於超平面兩側的點被分為正類或負類,s稱為分離超平面。假設資料集是線性可分的,即存...