機器學習的三要素:模型,策略,演算法
模型:感知機是二分類線性分類模型,屬於判別模型。
策略:基於誤分類點到超平面的總距離。
學習演算法:略
感知機存在的問題:
存在多解,解依賴於初始超平面的選擇以及迭代過程中誤分類點的選擇。
訓練集線性不可分,演算法無法收斂,解決方法: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稱為分離超平面。假設資料集是線性可分的,即存...