2014-03-25 96 views
0

讓我給一些背景方面:我有100個向量的列表,每一個與50米的尺寸,我想第一個50個向量與A級和最後的與B類關聯KNN多維向量

我的問題是:我怎麼能做到這一點,以便以後應用的kNN和圖書館有kNN的方法更適合呢?

在此先感謝。

回答

0

一個浮現在我的腦海裏第一個選項是從向量的列表中進行data.frame,創造因數表,然後使用從class package KNN。

載體

使用rbind的列表中進行data.frame,使一個矩陣,然後使用as.data.frame函數(在本question更多的例子)。假設l爲向量的列表:

data <- as.data.frame(do.call(rbind, l)) 

因子指示器

class <- as.factor(c(rep("A", 50), rep("B", 50))) 

的kNN分類使用類包

如果你沒有用於測試單獨的數據,可能最好的辦法是

train.ind <- sample(1:100, 75) # making indexes to split data into 75% train and 25% test 
resulting.classes <- knn(train = data[train.ind, ], test = data[-train.ind, ], cl = class) 

如果你有單獨的訓練和測試數據然後只使用

resulting.classes <- knn(train = train.data, test = test.data, cl = class) 

的k近鄰的其他選擇,這可能是有用的 - ‘kknn’ package'FNN' package.,但類包似乎最簡單的一個簡單快速KNN分類。

+0

這工作出色,非常感謝! :) – gcolucci