機器學習 線性感知機模型

2021-09-01 11:21:26 字數 1940 閱讀 6456

把斷斷續續學習的機器學習方面的東西整理一下,還是需要系統的記錄一下。

線性**定義下面的的函式

ld是乙個函式集合,w是d維度的引數,b是定義在r的標量。所以整個函式就是標量。

當y的值域是的時候,半空間可以定義為:

在於w垂直的超平面上面的部分,資料被標記為正類,當在超平面的下面的話,資料被標記為負類。

=>兩邊同時乘以

假設存在w*

定義

因此:理想線性可分的情況python**實現:

封裝讀取dat檔案如下:

import numpy as np

#去取dat檔案

def readdat(path):

if path.strip() == '':

return ''

fr = open(path.strip())

index = 0

numberoflines = len(fr.readlines())

returnmat = np.zeros((numberoflines, 4), dtype=np.float64)

classlabelvector =

fr = open(path.strip())

for line in fr.readlines():

line = line.strip()

listfromline = line.split('\t')

listinputdata = listfromline[0].strip().split(' ')

returnmat[index,:]=listinputdata

index += 1

return returnmat,classlabelvector

理想線性可分假設下python的實現

def perceptronlearn(matdata, labeldata):

# 設定最大迭代次數

maxiteration = 100000

# 初始向量

w = [0, 0, 0, 0, 0]

# labely

iterationfinish = false

for interationcount in range(maxiteration):

for dataindex in range(len(matdata)):

# 計算向量內積

vect = matdata[dataindex, :]

resulty = vdot(w, extrabiasvect)

if (resulty <= 0):

labely = -1

else:

labely = 1

if (labely != labeldata[dataindex]):

w = w + labeldata[dataindex] * extrabiasvect

break

else:

if (dataindex == (len(matdata) - 1)):

iterationfinish = true

if (iterationfinish == true):

break

return w

機器學習 感知機模型

感知機模型,主要的思想是用乙個函式,通過不斷的調節權值和偏置的數值,將乙個線性可分的集合分類 感知機演算法 fx sign w x b sign 1 x 0,1 x 0 對於最優的w,b的值,採用了損失函式 l w,b sum xi 屬於 m yi w xi b m 為錯誤分類點的集合 感知機學習演...

機器學習 感知機模型

目錄感知機 perceptron 是二類分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取 1 和 1 二值.感知機對應於輸入空間 特徵空間 中將例項劃分為正負兩類的分離超平面,屬於判別模型.感知機學習旨在求出將訓練資料進行線性劃分的分離超平面,為此匯入基於誤分類的損失函式,利用梯度下...

機器學習 手寫感知機模型

資料集來自mnist資料集,主要利用numpy裡的matrix矩陣計算。演算法的實現主要在於對引數w和b的求解。演算法的推導過程參考李航 統計學習方法 推導最優化函式然後更新引數的過程。import numpy as np import pandas as pd import time defdat...