首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >航班数据集的KNN错误

航班数据集的KNN错误
EN

Stack Overflow用户
提问于 2017-05-24 18:39:27
回答 1查看 115关注 0票数 0

我正在尝试学习如何在R中使用KNN,并在来自包nycflights13的飞行数据集上进行练习。我在运行以下代码时遇到一个错误:

“火车”和“班次”有不同的长度

我的代码:

代码语言:javascript
复制
library(nycflights13)
library(class)


deparr <- na.omit(flights[c(4, 7, 16)])

classframe <- deparr[3]

flights %>% ggvis(~dep_time, ~arr_time, fill = ~distance) %>% layer_points()

set.seed(1234)

ind <- sample(2, nrow(deparr), replace=TRUE, prob=c(0.67, 0.33))

flights.training <- deparr[ind==1, 1:2]
flights.test <- deparr[ind==2, 1:2]
flights.trainlabels <- deparr[ind==1, 3]
flights.testlabels <- deparr[ind==2, 3]

predictions <- knn(train = flights.training, test = flights.test, cl = flights.trainlabels[,1], k = 3)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 20:25:26

下面是根据百分比划分训练集和测试集的代码。如果您想以不同的方式拆分这两个子集,您应该能够从这一点出发,但是它证明了它是有效的。

代码语言:javascript
复制
deparr <- na.omit(flights[c(4, 7, 16)])
set.seed(1234)

# prepare to divide up the full dataset into two groups, 65%/35%
n <- nrow(deparr)
train_n <- round(0.65 * n)

# randomize our data 
deparr <- deparr[sample(n)]

# split up the actual data. We will use these as inputs to knn
flights.train <- deparr[1:train_n, ]
flights.test <- deparr[(train_n + 1):n, ]

# target variable, $distance, is in column 3, so exclude from train and test
predictions <- knn(train = flights.train[, 1:2], test = flights.test[, 1:2], cl = flights.train$distance, k = 10)

我得到的结果是:

代码语言:javascript
复制
> str(predictions)
Factor w/ 209 levels "80","94","96",..: 121 159 18 54 207 18 94 55 159 136 ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44166228

复制
相关文章

相似问题

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