張憲騰 Sam Chang
工業與資訊管理學系
Kth Nearthest Neighbor 演算法
OUTLINE
1. 機器學習簡介
2. 介紹
3. 方法
4. 優缺點
5. 結論
機器學習簡介
演算法 運用資料和假設去得到最好的 模組
A takes D and H to get G
台
大
林
軒
田
老
師
機器如何找出好的模型?
監督式學習 :
是指在訓練機器學出一個模型的之前,會先有一段訓練的時間,在這
段時間裡面,每一筆資料會有一個正確答案,機器學習以後,會根據
答案調整自己學習的方法。
台
大
林
軒
田
老
師
非監督式學習 :
機器只能看到資料,資料是甚麼東西並不曉得。之後遇到新的資料,
機器是根據學出來的模型,判斷新的資料比較像以前看過的 一種資哪
料 ( 比較像以前看過的照片裡面的某幾張照片 ) ,而不是說這個資
料對應的答案  ( 男生還是女生 ) 。 台
大
林
軒
田
老
師
加強式學習 :
先定義每一種情況的好或壞,也就是給機器一套價 觀,值
之後讓機器自行去學習。
機器觀察很多資料以後,作出不同的反應 
結果的好壞就成為回饋  (feedback)  的資料,
Ex: 叫小狗坐下,他若撒尿就處罰他,他坐下就獎勵他
KNN 介紹
1. 給定特徵樣本( training set ),現在是紅色、藍色
2. 自定義 K 個最接近的鄰居(設定 K=5 )
3. 投票比較哪個比較多
3. 決定新樣本分類
KNN 方法
1.  設定紅點代表女生照片,藍點代表男生照片
2. KNN 的 K 如果設定成 1 ,也就是 (1-NN) 的話代表機器
會找第一位距離最近的點,這個點是男生的照片
1. 若 K=3
2. 計算圖中問號的點和各個顏色的點的距離
3. 選出前三名距離最近的點
4. 投票選出問號點所代表的類別
5. 以此類推 k=5,7,9... ...
( iteration... )
KNN 方法
小問題:
1. 為何 K 一定是奇數?
2. 若 Classes>2 ,則 K 有何限制?
x 為一篇待分類網頁的向量表示
d i 為訓練集中的一篇實例網頁的向量表示
c j 為一類別
y(d i ,c j )∈{0,1} (當 d 屬於 c j 時取 1 ;當 d 不屬於 c j 時取
0 )
b j 為預先計算得到的 cj 的最優截尾閾值
sim(x,d i ) 為待分類網頁與網頁實例之間的相似度
KNN 方法
KNN 優缺點
優點 :
1. 容易推測結論
2. 能運用在任何資料型態,甚至是非關聯式資料上
缺點 :
1. 空間複雜度高,計算量大
KNN 實例
1. 手語分析
2. 內容擷取(影片上字幕)
3. 基因表達
4. 3D 構造預測( A 蛋白質 +B 蛋白質 = ?)(生物方面)
1. 某些問題上 ( 例如語意問題 ) 以及特徵的選擇,是使用 KNN
需要注意的地方
2. KNN 是一種簡單好懂的機器學習演算法,很多時候他的結果
都具備一定的參考性
3. 但是很難過的他再某些問題並無法解決(選 feature )
4. k 的選擇是 critical, 太小的 k 雜訊會影響結果很多 , 太大的 k
又花時間,科學家有一個方法是
KNN 結論
看實例吧!

簡易KNN