-1

我正在研究具有 21 个属性的数据集。16 个是分类的,3 个是序数因子,2 个是日期/时间(目标变量)。行数为 14512。

我要实现的目标:这个数据集基本上是关于不同团队关闭的日常办公室事件,我们试图预测在某些预测变量的情况下将花费的时间。

我正在使用 R-Studio 进行分析。

完成的工作:所以我想使用 Knn 进行计算,并将所有预测变量转换为二进制虚拟变量,将目标变量转换为 A、B、C 分类。

问题:现在,一旦我应用了 knn 函数示例:

RPS_test_pred <- knn(train = RPS_train, test = RPS_test,cl = RPS_train_labels, k=1121)

保持 k 为 1121(因为我们在数据集中有 14513 行,训练和测试数据也按 70:30 的比例划分)

R studio 崩溃并关闭说明 - 发生致命错误。

请建议任何其他方法来计算此数据或我应该使用的任何其他建模技术,以更适合此类数据的示例。

4

1 回答 1

0

过去,我使用过包含许多有序变量和分类变量的数据集,并成功地进行了一些转换以使它们成为数字。以下是一些使用房价数据的示例。

序数变量 我首先建议根据它们的相对顺序将序数变量更改为数值:

train$Exter.Quality[train$ExterQual == "Excellent"] <- 4
train$Exter.Quality[train$ExterQual == "Good"] <- 3
train$Exter.Quality[train$ExterQual == "Nominal"] <- 2
train$Exter.Quality[train$ExterQual == "Fair"] <- 1

分类变量 根据您正在查看的响应变量的平均值(在我的情况下为销售价格)利用组排名:

nbhdprice <- summarize(group_by(train, Neighborhood),
          mean(SalePrice, na.rm=T))


nbhdprice_lo <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` < 140000)
nbhdprice_med <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` < 200000 &
                          nbhdprice$`mean(SalePrice, na.rm = T)` >= 140000 )
nbhdprice_hi <- filter(nbhdprice, nbhdprice$`mean(SalePrice, na.rm = T)` >= 200000)

train$nbhd_price_level[train$Neighborhood %in% nbhdprice_lo$Neighborhood] <- 1
train$nbhd_price_level[train$Neighborhood %in% nbhdprice_med$Neighborhood] <- 2
train$nbhd_price_level[train$Neighborhood %in% nbhdprice_hi$Neighborhood] <- 3

更多示例可以在此处的代码空间中找到:https ://www.kaggle.com/skirmer/fun-with-real-estate-data/code

于 2017-11-27T19:15:49.580 回答