統計學習方法訓練營第一次作業 感知機

2021-09-19 03:48:42 字數 1968 閱讀 4964

感知機模型的假設空間是分離超平面 w·x + b = 0;

模型的複雜度主要體現在x的特徵數量,也就是維度d上

使用自程式設計實現:

import numpy as np

import matplotlib.pyplot as plt

class myperceptron:

def __init(self):

self.w = none #x維度未知

self.b = 0

self.l_rate = 1

def fit(self,x_train,y_train):

self.w = np.zeros(x_train.shape[1]) #用樣本點特徵數更新初始值w

self.b = 0

self.l_rate = 1#不加這兩句報錯了attributeerror: 'myperceptron' object has no attribute 'b'

i = 0

while i < x_train.shape[0]:

x = x_train[i]

y = y_train[i]

if y * (np.dot(self.w, x) + self.b) <= 0:

self.w = self.w + self.l_rate * np.dot(y,x)

self.b = self.b + self.l_rate * y

i = 0

else:

i = i + 1

def draw(x, w, b):

x_new = np.array([[0],[6]])

y_predict = -b - (w[0] * x_new)/w[1]

plt.plot(x[:2, 0], x[:2, 1],"g*",label="1")

plt.plot(x[2:, 0], x[2:, 0],"rx",label="-1")

plt.plot(x_new, y_predict, "b-")

plt.axis([0,6,0,6])

plt.xlabel('x1')

plt.ylabel('x2')

plt.legend()

plt.show()

def main():

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

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

perceptron=myperceptron()

perceptron.fit(x_train,y_train)

print(perceptron.w)

print(perceptron.b)

draw(x_train, perceptron.w, perceptron.b)

if __name__=="__main__":

main()

使用sklearn中的perceptron模組:

from sklearn.linear_model import perceptron

import numpy as np

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

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

perceptron = perceptron()

perceptron.fit(x_train,y)

print("w:",perceptron.coef_,"\n","b:",perceptron.intercept_,"\n","n_iter:",perceptron.n_iter_)

res = perceptron.score(x_train,y)

print("correct rate:".format(res))

借鑑了訓練營公布的答案,希望有機會可以繼續完善。

李航《統計學習方法》第一次

1.機器學習分類 監督學習 可以有輸入訓練後得到乙個模式 函式 並由此推斷新的例項。訓練資源是由輸入物件 通常是向量 和預期輸出可一世乙個連續的值 回歸分析 或者是乙個分類標籤 承做分類 函式輸出應用場景 手寫識別。半監督學習 一部分訓練示例已經標記,一部分沒有 強化學習 強調如何基於環境而行動,以...

統計學習方法 第一章統計學習方法概論

1.統計學習的方法是基於資料構建統計模型從而對資料進行 與分析。統計學習由監督學習,非監督學習,半監督學習和強化學習等組成。2.輸入變數和輸出變數都是連續變數,稱為回歸問題 輸出變數為有限個離散變數的 問題為分類問題 輸入變數和輸出變數均為變數序列的 問題稱為標註問題。3.統計學習常用的損失函式 0...

統計學習方法筆記 第一章統計學習方法概論

統計學習方法第一章筆記 赫爾伯特 西蒙曾經對學習下定義 如果乙個系統能夠通過執行某個過程改進它的效能,這就是學習。現在人們提到的機器學習就是統計機器學習。統計學習包括監督學習 supervised learning 非監督學習 unsupervisedlearning 半監督學習 semi supe...