特徵提取簡介
sift原理
sift原理
sift原理
1.k近鄰法,簡單來說就是哪個點離得近就把例項點歸到哪一類中。特殊情況是最近鄰演算法-----1近鄰演算法。演算法主要包括演算法的模型,距離度量、k值的選擇和演算法的具體實現。
其中演算法的實現主要有兩種形式:線性掃瞄法和構建資料索引。改善演算法最好的當屬kd樹。我認為當特徵數目很小的時候沒有必要用kd樹,(嘿嘿,主要是kd樹太難理解。)
等以後遇到大的特徵集的時候再來研究kd樹。
2.決策樹演算法。簡單的形式化的例子可以見:中的母親給女兒推薦男友的例子。決策樹的主要演算法有id3,c4.5,cart。cart演算法在opencv庫中已經有實現。決策樹中主要包括:特徵選擇、決策樹生成、決策樹剪枝組成。其中決策樹的剪枝主要是為了解決決策樹在生成過渡擬合的曲線的一種應對策略。
3.樸素貝葉斯
演算法的較通俗的解釋,但有一定的公式推導。
樸素貝葉斯是根據好算的概率來倒推希望得到的難以得到的概率,感覺算得的概率的最大值來確定y的分類。
我理解的演算法描述如下(下面的符號的意義可以見:《統計學習方法》p49):
(1)首先根據極大似然估計法估計出p(y=ck),最大似然就是根據已有的經驗來推出來的。例如1出現了20次,0出現了28次那麼p(y=1) = 20/(20+28)......p(y=0)= 28/(28+20);
(2)根據貝葉斯公式計算出當y= ck發生的情況下xj = ajl的概率。
(3)感覺公式4.4算出各個式子的概率
(4)找出最大值。y= 最大值。
貝葉斯演算法 改進:由於可能出現分母為0的情況,所以要去掉這種情況,可以依據4.10式進行laplace 平滑。從而去掉分母等於0的情況。通常平滑係數取1
4支援向量機
介紹了一些svm需要的一些基礎概念。
svm入門理論知識。
svm相當於官網咖。
支援向量機和神經網路的理論基礎均是「感知機」,感知機的函式模型:f(x) = sign(w*x+b), 其中sign(x)的取值可以取-1,+1,並不是0,1;w是超平面w*x+b = 0的法向量。感知機的資料集的必須是線性可分的,只有這樣的資料集才能使損失函式l(w,b)可以為0。感知機學習演算法有兩種形式:1原始形式,2對偶形式。(詳見p32-p35)
支援向量機有很多種演算法。
(1)最簡單的演算法:最大間隔法。演算法過程參看p100演算法7.1.
訓練集中的樣本點中與分離平面距離最近的點的例項成為支援向量。yi*(w*xi+b)+1=0為正例項點。yi*(w*xi+b)-1=0為fu例項點。由於確定分離平面進決定與支援向量,所以支援向量機只有很少的點來決定。
(2)最大間隔法的對偶演算法。演算法過程見:p106演算法7.2.
根據定理7.2和拉格朗日函式推導出來的,這個演算法引進了乙個alpha*這個引數。只要求出alpha*依據定理7.2就可以推導出w和b。但是跟上個演算法一樣沒有給出具體的求解方法,只能依靠自己的數學經驗來算出alpha*。
(3)線性支援向量機演算法,演算法過程見p112 演算法7.3;
上面的兩種演算法要求訓練樣本線性可分,這樣的條件過強,一般的樣本由於有雜訊的存在,樣本一般為線性不可分的,所以上面兩種演算法不具有實用價值。
這種演算法引入了乙個懲罰引數c>0,懲罰引數越大對誤分類的懲罰越大,容易產生過擬合,c越小對誤分類的懲罰越小,容易產生欠擬合,一般懲罰引數通過實驗來獲得。另外這種演算法產生的超平面並不是乙個,w*是唯一的,但是b*不是唯一的。
(4)非線性支援向量機學習演算法。
尚未看懂。
機器學習 特徵提取
from sklearn.feature extraction import dictvectorizer import numpy as np 定義一組字典列表,用來表示多個資料樣本 d1 例項化 dict dictvectorizer data dict fit transform d1 轉化後...
機器學習特徵提取
本文主要介紹基於sklearn的特徵提取,旨在為機器學習提供乙個好的開端 1.分類特徵提取 如上圖所示 許多特徵如pclass代表乘客船艙等級,分為1,2,3。還有例如性別,乘客登船碼頭,稱之為分類特徵。對於這一類資料的提取,採用one hot編碼。例如 data資料有兩個特徵,分別是城市和溫度,顯...
機器學習 特徵提取(一)
原始資料的種類有很多,除了數位化的訊號資料,還有大量符號化的文字。然而,無法將符號化的文字用於任務計算,二是通過某些處理手段,預先將文字量化為特徵向量。有些用符號化表示的資料特徵已經相對結構化,並且以字典這種資料結構進行儲存。這時使用dictvectorizer對特徵進行抽取和量化。定義乙個字典列表...