1、基於例項的學習(instance-based learning)
這應該是機器學習演算法中最簡單的演算法,它不像其他演算法需要在樣本的基礎上建立一般性的推理公式,而是直接通過儲存的資料集進行分類或回歸學習來得到結果。
它的缺點是對儲存空間的需求很大,需要占用的空間直接取決於例項數量的大小,並且**的時候需要與已知的例項進行比對,執行時間會相對慢。
2、飢餓式學習 & 懶惰式學習
區別點:懶惰式學習在對新例項進行**之前不需要進行訓練資料。
基於例項的學習就是懶惰式學習的一種。
3、knn演算法(k-neighbor-nearest )
→通過測量不同特徵值之間的距離進行分類。
※主要思路:
如果乙個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某乙個類別,則樣本也屬於這個類別。k通常是不大於20的整數。
knn演算法中,所選擇的令居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的乙個或幾個樣本的類別來決定待分類樣本所屬的類別。
注:knn演算法的結果很大程度上取決於k值的選擇。
例子:如下圖所示,藍色的原點屬於哪一類?
解答:k=3 的時候,綠色的方塊佔比1/3,紅色的三角形佔比2/3,由此得出藍色的實心圓被劃分為紅色的三角形。
k=5 的時候,綠色的方塊佔比3/5,紅色的三角形佔比2/5,由此得出藍色的實心圓被劃分為綠色的正方塊。
※knn演算法的描述:
(1)計算測試資料與各個訓練資料之間的距離;
(2)按照距離的遞增關係進行排序;(近→遠);
(3)選取距離最小的k個點;
(4)確定前k個點所在類別的出現頻率;
(5)返回前k個點中出現頻率最高的類別作為測試資料的**分類。
from sklearn import neighbors
#分類器預設k=5,可以通過n_neighbor來設定k的值
knn = neighbors.kneighborsclassifier()
knn.fit(features_train, labels_train)
pred = knn.predict(feature_test)
4、knn演算法的優勢
a、在knn演算法中,通過計算物件間的距離來作為各個物件之間的非相似性指標,避免了物件之間的匹配問題。
距離的計算採用兩種計算標準,實際計算中,選取哪種計算方式依據domain knowledge來判斷。
·歐幾里得距離:下圖中的綠色線條,兩點之間的直線距離。
·曼哈頓距離:下圖中紅色、藍色以及黃色的線條都是曼哈頓距離。
b、knn演算法通過依據k個物件中佔優的類別進行決策,而不是單一的物件類別決策。
5、維度災難(curse of dimensionality)
隨著維度的增加,需要維持準確**的已知例項的數量會隨之指數級增加。因為在增加了新維度之後,已知例項在新空間的投影就變得更稀疏,從而需要比原空間中多得多的例項進行填充。
6、總結
(1)基於例項的學習(instance-based learning)
(2)飢餓式學習 & 懶惰式學習
(3)knn演算法(k-neighbor-nearest )
(4)近鄰:相似性→通過距離來判定,需要運用domain knowledge。
距離的計算可採用兩種:歐幾里得距離以及曼哈頓距離兩種。
(5)分類 vs 回歸
(6)維度災難(curse of dimensionality)
監督學習和無監督學習 監督學習與非監督學習
監督學習 supervised learning 的任務是學習乙個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出乙個好的 即 利用訓練資料集學習乙個模型,再用模型對測試樣本集進行 例如kaggle上的鐵達尼號比賽。官方提供旅客資料 資料集1 姓名,年齡,性別,社會經濟階層,是否生存等 要求參賽...
監督學習 非監督學習 半監督學習(主動學習)
統計學習通常包括監督學習 非監督學習 半監督學習以及強化學習,在機器學習的領域中前三種研究的比較多的,也是運用的比較廣泛的技術。監督學習的任務是學習乙個模型,使模型對給定的任意的乙個輸入,對其都可以對映出乙個 結果。這裡模型就相當於我們數學中乙個函式,輸入就相當於我們數學中的x,而 的結果就相當於數...
監督學習,無監督學習和半監督學習
監督學習 supervised learning 無監督學習 unsupervised learning 半監督學習 semi supervised learning 2 概念 監督學習 用一部分已知分類 有標記的樣本來訓練機器後,讓它用學到的特徵,對沒有還分類 無標記的樣本進行分類 貼標籤。一句話...