首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多维向量KNN

多维向量KNN
EN

Stack Overflow用户
提问于 2014-03-25 03:29:42
回答 1查看 2K关注 0票数 0

让我给出一些背景背景:我有100个向量的列表,每个向量有50个维度,我想把前50个向量与A类联系起来,最后一个向量与B类相关联。

我的问题是:为了以后应用kNN,我如何做到这一点?哪个库的kNN方法更适合这一点?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 05:19:52

我想到的第一个选项之一是从向量列表中创建一个data.frame,创建因子指示符,然后从类包中使用knn。

从向量列表生成一个data.frame

使用rbind,创建一个矩阵,然后使用as.data.frame函数(在这个问题中有更多的例子)。假设l是一个向量列表:

代码语言:javascript
复制
data <- as.data.frame(do.call(rbind, l))

因子指示器

代码语言:javascript
复制
class <- as.factor(c(rep("A", 50), rep("B", 50)))

使用类包kNN 进行分类

如果您没有单独的数据进行测试,最好的方法可能是

代码语言:javascript
复制
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)

如果您有单独的列车和测试数据,那么只需使用

代码语言:javascript
复制
resulting.classes <- knn(train = train.data, test = test.data, cl = class)

kNN的其他可能有用的选择-- ‘’kknn‘包裹‘'FNN’包裹,但类包似乎是简单的kNN分类中最简单的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22624933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档