1
、惰性學習法
說到惰性學習法,就要提到急切學習法。
急切學習法:給定訓練集, 在接收待分類的新元祖(如檢驗元組)之前,就構造泛化(即分類)模型。如:決策樹歸納、貝葉斯分類、基於規則的分類、後向傳播分類、支援向量機和基於關聯規則挖掘的分類等。
惰性學習法(也稱為基於例項的學習法):給定乙個訓練元組,簡單地儲存它 (或只是稍加處理) ,一直等到給定乙個檢驗元組。僅當看到檢驗元組時,它才進行泛化,以便根據儲存的訓練元組的相似性對該元組進行分類。
優點:原理簡單,實現起來比較方便。支援增量學習。能對超多邊形的複雜決策空間建模。
缺點:計算開銷大,需要有效的儲存技術和並行硬體的支撐。
k
近鄰演算法就是惰性學習法的例子。
2
、k近鄰演算法(knn演算法)
k最近鄰分類法是20世紀50年代早期首次引進的。給定大量訓練集時,該方法是勞動密集的,直到20世紀60年代計算能力大大增強之後才流行起來。此後被廣泛用於模式識別領域。
工作原理:存在乙個樣本資料集合(訓練樣本集),並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料。最後,選擇k個最相似資料中出現次數最多的分類,最為新資料的分類。
例子:下圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果k=3,由於紅色三角形所佔比例為2/3,綠色圓將被賦予紅色三角形那個類,如果k=5,由於藍色四方形比例為3/5,因此綠色圓被賦予藍色四方形類。
鄰近性的度量方法
「鄰近性」用距離度量,距離越大,表示兩個點越不相似。
計算距離的方法:歐幾里得距離、曼哈頓距離或其它距離。但多採用歐幾里得距離(簡單)。
例:兩個點或元組x1=(x11,x12,...,x1n)和x2=(x21,x22,...,x2n)的歐幾里得距離是:
換言之,對於每個數值屬性,取元組x1和x2該屬性對應值的差,取差的平方並累計。並取累計距離計數的平方根。
2.2
屬性的數值規範化
有助於防止具有較大初始值域的屬性(如收入)比具有較小初始值域的屬性(如二元屬性)的權重過大。
例如,可以通過計算下式,使用最小—最大規範化將數值屬性a的值v變換到[0,1]區間中的v'
其中mina和maxa分別是屬性a的最小值和最大值。
2.3
比較的屬性不是數值型別而是分類型別(如顏色),如何計算距離?
對於分類屬性,一種簡單的方法是比較元組x1和x2中對應屬性的值。如果二者相同(例如,元組x1和x2都是藍色),則二者之間的差為0。如果二者不同(例如,元組x1是藍色,而元組x2是紅色),則二者之間的差為1。
其他方法可採用更複雜的方案。(例如,對藍色和白色賦予比藍色和黑色更大的差值。)
2.4
缺失值的處理
解決辦法:取最大的可能差。
對於分類屬性,假設每個屬性都已經對映到[0,1]區間,如果屬性a的乙個或兩個對應值丟失,則取差值為1;
如果a是數值屬性,若兩個比較的元組屬性a的值均缺失,則取差值為1,若只有乙個缺失,另乙個存在並且已經規範化(記作v'),則取差值為|1-v'|和|0-v'|中的最大者。
2.5
確定近鄰數
k的值
引用李航博士的書【統計學習方法】中的內容:
k值的選擇會對k近鄰法的結果產生重大影響。
如果選擇較小的k值,就相當於用較小的鄰域中的訓練例項進行**,「學習」的近似誤差會減小,只有與輸入例項較近或相似的訓練例項才會對**結果起作用。但缺點是「學習」的估計誤差會增大,**結果會對近鄰的例項點非常敏感。如果近鄰的例項點恰巧是雜訊,**就會出錯。換句話說,k值的減小就意味著整體模型變得複雜,容易發生過擬合。
如果選擇較大的k值,就相當於用較大鄰域中的訓練例項進行**。其優點是可以減少學習的估計誤差。但缺點是學習的近似誤差會增大。這時,與輸入例項較遠(不相似的)訓練例項也會對**起作用,使**發生錯誤。k值的增大就意味著整體的模型變得簡單。
如果k=n,則完全不足取,因為此時無論輸入例項是什麼,都只是簡單的**它屬於在訓練例項中最多的類。模型過於簡單,忽略了訓練例項中大量有用資訊。
在實際應用中,k值一般取乙個比較小的數值。例如採用交叉驗證
法(簡單來說,就是一部分樣本做訓練集,一部分做測試集)來選擇最優的k值。
引用【資料探勘概念與技術】中的內容:
可以通過實驗確定。
從k=1開始,使用檢驗集估計分類器的誤差率。重複該過程,每次k增值1,允許增加乙個近鄰。選取產生最小誤差率的k。
一般,訓練元組數越多,k的值越大。
2.6
對雜訊資料或不相關屬性的處理
最近鄰分類法使用基於距離的比較,本質上賦予每個屬性相等的權重。因此,當資料存在雜訊或不相關屬性時,它們的準確率可能會受到影響。
對屬性賦予相關性權重w,w越大說明屬性對分類的影響越相關。對雜訊資料可以將所在的元組直接cut掉。
2.7
演算法流程
演算法的改進策略
最近鄰分類法在對檢驗元組分類時可能非常慢。如果d是具有|d|個元組的訓練資料庫,而k=1,則對乙個給定的檢驗元組分類需要o(|d|)次比較。改進如下:
、kd樹
上面「演算法的改進策略」已經提到了搜尋樹。
其實,實現k近鄰演算法時,考慮的主要問題是如何對訓練資料進行快速k近鄰搜尋。這點在特徵空間的維數大及訓練資料容量大時尤其重要。
k近鄰法最簡單的實現方法是線性掃瞄。這時要計算輸入例項與每乙個訓練例項的距離。當訓練集很大時,計算耗時,這種方法是不可行的。
為了提高k近鄰搜尋的效率,可以考慮使用特殊的結構儲存訓練資料,以減少計算距離的次數。具體方法很多,其中比較常見的是kd
樹方法。
kd樹的詳細介紹:
參見:1、李航博士的《統計學習方法》中的章節(k近鄰法的實現:kd樹)
2、大牛的部落格
更多文獻:可以參見大牛的部落格
演算法導論 第九章
這章介紹了中位數和順序統計學 中位數即乙個序列中最中間的數字,在快速排序中非常有意義,在其它的一些應用中也很有效,因為可以2分序列,這樣會有更好的效率。這章主要介紹如何不排序來找到序列的順序,由於不需要排序,可以減少很多比較的操作,最終可以獲得一些線性的演算法,得到排名第i的數字。演算法的基礎是首先...
第九章(筆記)
轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...
第九章作業
班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...