4 7基於例項的學習

2021-09-24 12:12:00 字數 1019 閱讀 5048

k-nn在k/n->0時效果更顯著,但是這必然帶來巨大計算量,使用kd樹能緩建情況。

歸類到例項空間受控於例項與例項之間距離

1. 數值型1.1 處理方式:歸一化

1.2 採用距離公式

* 歐幾里得

* 曼哈頓

* city-block

* …2. 名詞性屬性

1.1 處理方式:

1.2 無需量度尺寸

1.kd樹結構長什麼樣?

k指k個屬性。

二叉樹,用乙個超平面將輸入例項空間分隔開,再將每乙個部分遞迴進行分割。

二維空間上,所有的**都與乙個軸平行或垂直,而不是決策邊界。

當加入新的資料點時,需要從頭構建樹。

2.如何才能在乙個訓練樣本集上建立一棵好樹?

重點在第乙個訓練例項的選擇以及**方向,因為後續都是基於該點做超平面分割的。

q:如何尋找乙個好的方向?

a:好的方向應該使得資料散布範圍最廣,因此在確定根節點有以下兩個步驟

s1.分別計算資料點在每個軸的方差,選擇最大方差所對應的軸為**軸。

s2.找出位於該軸的中間值(或平均值,取平均值可以使得平面不至於變成瘦長的矩形,而導致不平衡),選擇閾值對應的點。

3.超球體?

q:為什麼不用超矩形?

kd樹使用超矩形缺點:由於在切分時,切分平面是一塊一塊的矩形,而矩形有腳。

超球體沒腳,可代替。雖然超球體相互重疊,而超矩形相鄰,但kd樹並沒有要求不能重疊。

超球體之間的層級關係,更清晰表達樹的層級關係

監督學習四 基於例項的學習

1 基於例項的學習 instance based learning 這應該是機器學習演算法中最簡單的演算法,它不像其他演算法需要在樣本的基礎上建立一般性的推理公式,而是直接通過儲存的資料集進行分類或回歸學習來得到結果。它的缺點是對儲存空間的需求很大,需要占用的空間直接取決於例項數量的大小,並且 的時...

python 例題 Python 練習例項47

參考 encoding utf 8 三種簡單的變數交換方法 引數法 相互運演算法 字元拼剪法 def shuru a raw input 請輸入a的值 b raw input 請輸入b的值 return a,b def change1 a,b 加入第三變數 t a a b b t print 一種變...

學習OpenCV課後題4 7

include include include include pragma comment lib,cv.lib pragma comment lib,cvcam.lib pragma comment lib,cxcore.lib pragma comment lib,highgui.lib vo...