統計學習方法 感知機 python實現

2022-01-24 18:25:59 字數 1147 閱讀 5314

感知機是二類分類的線性分類模型,利用隨機梯度下降法對基於誤分類的損失函式進行極小化。

書中演算法可以將所有樣本和係數向量寫成增廣向量的形式,並將所有負樣本乘以-1,統一形式,方便計算。

(1)訓練資料集線性可分時,感知機學習演算法原始形式迭代收斂

(2)演算法存在許多解

感知機學習演算法的對偶形式使得訓練過程中例項僅以內積形式出現,可以提前儲存(gram矩陣)。

# train = [[(3, 3), 1], [(4, 3), 1], [(1, 1), -1]]

train = [[(0, 0), 1], [(0, 1), 1], [(1, 0), -1], [(1, 1), -1]]

w = [0, 0]

b = 0

def update(data):

global w, b

for i in range(len(data[0])):

w[i] = w[i] + 1 * data[1] * data[0][i]

b = b + 1 * data[1]

# print(w, b)

def cal(data):

global w, b

res = 0

for i in range(len(data[0])):

res += data[0][i] * w[i]

res += b

res *= data[1]

return res

def check():

flag = false

for data in train:

if cal(data) <= 0:

flag = true

update(data)

if not flag:

print("w: " + str(w) + " b: " + str(b))

return true

return false

for times in range(1000):

if check():

break

演算法的實現參考了這篇文章。

感知機 統計學習方法

一 感知機適用問題以及它的輸入,輸出,求解方法 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 稱為感知機。感知機是...

統計學習方法之感知機

在翻閱知乎時,得知李航所著的 統計學習方法 一書,於是就買了一本,看到csdn上已有大牛都發了相關的部落格,再次贅述就顯得囉嗦了,就直接上乾貨吧,自己用matlab寫的 和一些自己再看書時的小小的理解。感知機是一種二類分類的線性模型模型,是乙個將輸入空間 特徵空間 分成正負兩類的分離超平面。它的更多...