KNN 在航班数据集上的错误

我正在尝试学习如何在 R 中使用 KNN,并在 nycflights13 包中的航班数据集上进行练习。运行下面的代码时,我得到了一个错误,错误信息如下:

‘train’ 和 ‘class’ 的长度不同

我的代码如下:

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)

回答:

这里是根据百分比划分训练集和测试集的代码。如果你想以不同的方式划分这两个子集,你可以从这个代码出发进行修改,但这证明了它是有效的。

deparr <- na.omit(flights[c(4, 7, 16)])set.seed(1234)# 准备将完整数据集分为两组,65%/35%n <- nrow(deparr)train_n <- round(0.65 * n)# 随机化我们的数据 deparr <- deparr[sample(n)]# 分割实际数据。我们将这些作为 knn 的输入flights.train <- deparr[1:train_n, ]flights.test <- deparr[(train_n + 1):n, ]# 目标变量,$distance,在第3列,所以从训练集和测试集中排除predictions <- knn(train = flights.train[, 1:2], test = flights.test[, 1:2], cl = flights.train$distance, k = 10)

这段代码运行后,我得到的结果如下:

> str(predictions)Factor w/ 209 levels "80","94","96",..: 121 159 18 54 207 18 94 55 159 136 ...

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注