2013-05-01 311 views
1

我無法理解knn()中的變量在R函數中的含義,因爲我不是來自統計背景。FNN包:R和knn()

比方說,我要預測一個池比賽結果爲每個池A,B和C

我知道每個候選人的賽車在比賽中競爭的身高和體重。假設每年競爭的候選人都是相同的,我也知道誰在過去30年中獲勝。

我如何預測今年誰將在A,B和C組贏得勝利?

我的猜測:

train參數是與體重,身高,和游泳池,他競爭在每個競爭者的列的數據幀。這是過去的29年。

test參數是一個數據框,包含他爲每個競爭對手競爭的權重,高度和池的列。這是去年。

cl爭論是競爭對手每年贏得比賽的向量。

這是如何使用knn()

參考:

http://stat.ethz.ch/R-manual/R-patched/library/class/html/knn.html

回答

1

不完全是。訓練數據用於訓練,但測試測試。你不能直接訓練和應用 - 你需要交叉驗證你的模型。模型訓練的目的不是爲了最小化誤差,而是爲了最小化樣本內和樣本外誤差之間的差異。否則,你會過度使用它:事實是,如果你做得足夠好,你的樣本內誤差將爲0.這不會給真正的預測帶來好的結果。該功能中的訓練集是您的樣本內,並且測試是樣本外。

然後建立實際模型,您可以使用mymodel.predict()進行預測(即當前年份)。