機器學習是大資料應用發展最快的乙個領域,同時也是支撐著人工智慧領域的脊柱。機器學習是模擬人的學習方式,即經驗學習,讓計算機自己具有一定的學習能力,能夠從已經存在的資料集中總結出一些模型,以此模型來解決現實存在的某些問題。機器學習的特點就是『智慧型』,因為計算機可以根據訓練資料集自動地改進模型的**效果和效能,從而使得計算機具有了自己『學習』,提公升『自己』的能力。
k-最鄰近演算法是機器學習中最簡單,最容易掌握的監督學習的分類演算法了。
k-最鄰近演算法的步驟如下:
1.計算已知類別資料集中的點與當前點之間的距離;
2.按照距離遞增次序排序
3.選取與當前點距離最小的k個點
4.確定前k個點所在類別的出現頻率
5.返回前k個點出現頻率最高的類別作為當前點的**分類
舉例:電影編號
打鬥鏡頭
接吻鏡頭
電影型別13
104愛情片22
100愛情片31
81愛情片
4101
10動作片599
5動作片698
2動作片718
90未知
如上圖,假設有這樣一些資料,這裡有7部電影,前6部電影是已知類別的電影,而第7部電影是未知類別的電影,現在要把前6部電影當做訓練集,用k-最鄰近演算法來判斷第7部電影所屬的類別。
步驟如下:
1.先建立各電影的特徵向量:
x1=(3,104)
x2=(2,100)
x3=(1,81)
x4=(101,10)
x5=(99,5)
x6=(98,2)
x7=(18,90)
2.要判斷x7所屬哪個電影類別,利用歐式距離算出x7與其他6個向量的距離,並按照由小到大排序:
d(x7,x1)=sqrt((18-3)^2+(90-104)^2)=20.52
d(x7,x2)=sqrt((18-2)^2+(90-100)^2)=18.87
d(x7,x3)=sqrt((18-1)^2+(90-81)^2)=19.24
d(x7,x4)=sqrt((18-101)^2+(90-10)^2)=115.28
d(x7,x5)=sqrt((18-99)^2+(90-5)^2)=117.41
d(x7,x6)=sqrt((18-98)^2+(90-2)^2)=118.93
排序結果:d(x7,x2)
4.選取前最小的k個距離(k=4)
得d(x7,x2)、d(x7,x3)、d(x7,x1)、d(x7,x4)
其中x2、x3、x1都屬於愛情片,而只有x4屬於動作片,k個點中愛情片出現的頻率大於動作片出現的頻率,則說明x7與x2、x3、x1三個向量更加接近,則可以判斷x7是愛情片。
以上便是k-最鄰近演算法具體使用例項,該演算法簡單,易掌握,要求樣本特徵值必須可以量化。
機器學習之k 最近鄰(kNN)演算法
一 knn k nearest neighbor 演算法原理 事物都遵循物以類聚的思想,即有相同特性的事物在特徵空間分布上會靠得更近,所以knn的思路是 乙個樣本在特徵空間中k個靠的最近的樣本中,大多數屬於某個類別,這個樣本就屬於某個類別。如圖所示,藍色方框和橙色三角分別代表不同的類別,此時來了乙個...
機器學習之十大機器學習演算法
邏輯回歸 機器學習實戰書籍和 分享 pca簡介 機器學習演算法篇 從為什麼梯度方向是函式變化率最快方向詳談梯度下降演算法 資源 有沒有必要把機器學習演算法自己實現一遍?推薦 用python實現 pattern recognition and machine learning 裡的演算法 推薦 斯坦福...
機器學習之k 近鄰演算法
k nearest neighbor演算法又叫knn演算法,這個演算法是機器學習裡面乙個比較經典的演算法,總體來說knn演算法是相對比較容易理解的演算法 定義 如果乙個樣本在特徵空間中的k個最相似 即特徵空間中最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別 2 相似度 就是指兩個點之...