《Machine Learning:Regression》課程第6章KNN-Regression & Kernel Regression & non-parametric問題集
1.KNN Regression的過程?
第一步:找出和x最相近的K個點
第二歩:
就是這K個點y的均值
2.KNN Regression的缺點是什麼?
第一個缺點是對於樣本少的區域容易overfitting。在邊界處有很大的bias。
第二個缺點是曲線彎彎曲曲,不太連續。
這一點帶來的問題就是比如預測房價,80平米和81平米的預測值可能會因為不連續導致差異較大,這樣讓人感覺預測效果並不可信。搜房什麼的肯定不會用這種方法,因為不好對客戶解釋。
這些問題也導致KNN Regression在實際應用中並不多見。
3.K-NN相比1-NN有什麼提升?
對noise相對不敏感了。K的選擇也是bias-variance tradeoff,K越大,bias越大,variance越小。
4.什麼是Weighted KNN?
Weighted的想法就是給越相近的neighbor越大的權重。
5.如何定義weight?
最簡單的方法就是1/distance。
比較好的方法是用kernel weights。
6.什麼是kernel weights?
不同的kernel,weight的衰減不同。
每種kernel都
引數,叫做bandwidth。
7.什麼是Kernel Regression?
Weighted KNN是隻對K個點進行Weighted。
而Kernel Regression是對所有的點進行Weighted。
下邊是用epanechnikov核的例子,綠色的曲線是擬合出來的,藍色的是真實的曲線,可以看到比KNN要平滑了很多。
9.如何選擇kernel?如何選擇kernel的bandwidth(#FormatImgID_11#)?
一般來說,選擇
比選擇kennel更重要。
的選擇也可以看做是bias-variance tradeoff。
小,bias小,但variance大,
大,bias大但variance小。
而kernel的選擇對最終結果相對影響小一些。比如我們把epanechnikov kernel換到boxcar kernel。
可以看到雖然不平滑,但是和epanechnikov kernel的結果很相似。
是超引數,同樣用validation set/cross validation的方法來選擇。
10.什麼是nonparametric regression?
Commonly, a nonparametric model is defined as a model that cannot be described by a fixed number of parameters, because the actual number of parameters will be determined by the data。 In a nonparametric model, by getting more data, you can construct a more sophisticated model, so the number of parameters will tend to grow。 In the limit of “infinite” data, you get “infinite” parameters。雖然parametric model/nonparametric model
表面上說的是引數,但實際上是指模型複雜度,模型複雜度固定的模型為parametric model,不固定的為nonparametric model。
KNN regression和kernel regression都是nonparametric regression。
nonparametric的goal有三個:
a。flexibility
b。make few assumptions about f(x)
c。complexity can grow with the number of observations N(當樣本數趨於無限多時,MSE趨於0)
之所以c很重要,是因為parametric model並不能隨著樣本數增多到無窮,true error趨於0。因為無論樣本數有多少,一定會有一點bias在裡邊。
也就是說,對於complexity fixed model, 即便沒有noise,也無法收斂到true error=0,因為模型有內在的bias。
所以非參方法的優勢在於,隨著樣本的增多,可以動態增加模型的複雜度。
其它是nonparametric的有trees(決策樹),locally weighted structured regression model,神經網路,support vector machine
11.上面的10討論的是1-NN noiseless的情況,那麼當有noise時,隨著樣本增多,最後non-parametric model的true error會收斂到0嘛?
只要我們允許KNN的K隨著樣本量增長也增長,那true error就收斂到0。而parametric model依然會有bias。
12.parametric和non parametric的優點和缺點是?
parametric在model selection時融入了一些人的先驗知識,當樣本較少時更有優勢。
而non-parametric則沒有,但是依靠無窮多的樣本,可以自己調整模型的複雜度,當樣本較多時比較有優勢。當資料量沒有那麼多,或者資料的維度較高時,non-parametric表現則不好。
另外一個KNN的問題是它的predict效率很低。所以線上預測不太適用。
13.KNN可以用於regression,它可以用於classification嘛?
可以。在classification的課裡會講。基本的想法就是regression裡我們把K個NN做average,而在classification裡,我們把K個NN做majority。比如郵件分類就可以用KNN。
14.KNN涉及到距離的計算,是不是要先進行feature normalization?
是的。
15.KNN演算法中涉及求top-k問題,這是一個傳統演算法問題,如何快速高效求解?
待填坑。
16.為什麼svm是non-parametric model?
應該是因為它對於資料分佈並沒有假設。
17.統計學和ML的區別在哪裡?
Breiman,Random Forrest的發明人,寫了一篇paper來闡述statistic和ML兩種文化。
是不是說真正機器學習血統的演算法只有svm,random forrest,boosting,neural network?