1.判別函式
統計模式識別分為聚類分析法和判決函式法,其中判決函式法又包括幾何分類法(確定性時間分類,線性,非線性)以及概率分類法(隨機事件分類)。
判別函式即用來對模式進行分類的準則函式。
2.線性判別函式
n維線性判別函式的一般形式為:
其中x,w不包含最後一項常數項
:權向量,解向量,即引數向量
增廣向量就把最後一項加進去,
w加乙個wn+1,x加乙個1
這裡有乙個多類情況:
1):用線性判別函式將屬於ωi類的模式與其餘不屬於ωi類的模式分開。將某個待分類模式 x 分別代入 m 個類的d (x)中,若只有di(x)>0,其他d(x)均<0,則判為ωi類。對某一模式區,di(x)>0的條件超過乙個,或全部
的di(x)<0 ,分類失效。相當於不確定區(indefiniteregion ,ir)。
2):在 m 類模式中,與i 有關的m-1個判決函式全為正時,x∈ωi。其中若有乙個為負,則為ir區。
3.廣義線性判別函式
通過某對映,把模式空間x變成x*,以便將x空間中非線性可分的模式集,變成在x*空間中線性可分的模式集。
4.線性判別函式的幾何性質
模式空間:以n維模式向量x的n個分量為座標變數的歐氏空間。
模式向量的表示:點、有向線段。
線性分類:用d(x)進行分類,相當於用超平面d(x)=0把模式空間分成不同的決策區域。
5.感知器演算法
只要求出權向量,分類器的設計即告完成。利用已知類別的模式樣本訓練出權向量w。
訓練:用已知類別的模式樣本指導機器對分類規則進行反覆修改,最終使分類結果與已知類別資訊完全相同的過程。
感知器:對一種分類學習機模型的稱呼,屬於有關機器學習的仿生學領域中的問題,由於無法實現非線性分類而下馬。但「賞罰概念( reward-punishment concept)」 得到廣泛應用。
對樣本進行規範化處理,即ω2類樣本全部乘以(-1),則有:
感知器演算法通過對已知類別的訓練樣本集的學習,尋找乙個滿足上式的權向量。
感知器演算法步驟:
(1) 選擇n個分屬於ω1和 ω2類的模式樣本構成訓練樣本集構成增廣向量形式,並進行規範化處理,一類每個向量變成增廣加1,二類每個乘以-1再加-1。任取權向量初始值w(1)(eg=(0,0,0)),c=1開始迭代。迭代次數k=1。
(2) 用全部訓練樣本進行一輪迭代,計算wt(k)xi 的值,並修正權向量分兩種情況,更新權向量的值:
分類器對第i個模式做了錯誤分類,權向量校正為
,其中c:正的校正增量,取1。
分類正確,權向量不變
(3) 分析分類結果:只要有乙個錯誤分類,回到(2),直至對所有樣本正確分類
感知器演算法是一種賞罰過程:
分類正確時,對權向量「賞」——這裡用「不罰」,即權向量不變;
分類錯誤時,對權向量「罰」——對其修改,向正確的方向轉換。
收斂性:經過演算法的有限次迭代運算後,求出了乙個使所有樣本都能正確分類的w,則稱演算法是收斂的。
當c、w(1)取其他值時,結果可能不一樣,所以感知器演算法的解不是單值的。
多類:訓練樣本為增廣向量形式,但不需要規範化處理。
第k次迭代時,乙個屬於ωi類的模式樣本 x 被送入分類器,計算所有判別函式
分二種情況修改權向量:
1)則權向量不變;
2)若第l個權向量使
,則相應的權向量作調整,即:
編寫感知器演算法程式,求下列模式分類的解向量:
ω1:
ω2:
設w(1)=(-1 -2 -2 0) t.
先做規範化處理,然後把兩組向量合併到乙個列表中,然後每輪進行8次矩陣乘法運算,得到8個d值,每次根據d值正負對w作不同獎罰處理,每輪結束後若d值大於0的次數不等於8則進行下一輪。最終等於8時跳出並列印出此時的w。
python**計算過程:
1
.import pandas as pd 2.
from numpy import*3
. l1=[[
0,0,
0],[
1,0,
0],[
1,0,
1],[
1,1,
0]]#len=4
4. l2=[[
0,0,
1],[
0,1,
1],[
0,1,
0],[
1,1,
1]]5
. w=[[
-1,-
2,-2
,0]]
6. w=mat(w)7.
#規範化處理
8. gl1=l1
9. gl2=l2 10.
for i in
range
(len
(l1)):
11. gl1[i]1)
12.#print(gl1) 13.
14.for i in
range
(len
(l2)):
15. gl2[i]1)
16. gl2[i]
=[j*(-
1)for j in gl2[i]]17
.#print(gl2) 18.
19. gl=gl1+gl2 20.
#print(gl)
21. f=022
. t=023
.while t!=8:
24. f=025
. t=026
.for i in
range
(len
(gl)):
27. d=w*mat(gl[i]
).t
28. d=d.tolist()29
. d=d[0]
[0]30
.print
(d)31
.if d>0:
32. w=w
33. t=t+134
.else:35
. w=w+mat(gl[i])36
. f=f+137
.38.print
(w)
輸出結果:
驗算:輸出w之前的8個d值均為正數,正確。
所以解向量為w=[3,-2,-3,1]t
感知器演算法
coding utf 8 created on thu oct 15 13 58 06 2015 author think 感知器演算法 import mkdata as mk import numpy as np import matplotlib.pyplot as plt n 100 生成測試...
感知器演算法
感知器演算法步驟 1.給出m個帶有標籤的樣本,其中yi 1 or 1 xi xi1,xi2,xin 2.將資料的標籤併入訓練樣本,形成增廣向量,每個資料的維數為n 1 3.在 0,1 均勻分布區間內生成1x n 1 權值矩陣w 4.將資料依次送入感知器進行學習。如果w data k,yk 0 說明訓...
感知器演算法
clc clear all fprintf 感知器演算法 n x 1,4,1 2,6,1 1,2,1 2,2,1 x 0,0,0,1 1,0,0,1 1,0,1,1 1,1,0,1 0,0,1,1 0,1,1,1 0,1,0,1 1,1,1,1 n,n size x 獲取樣本數目和維數 n為樣本數目...