R knn大数据集

scr*_*Owl 5 r knn

我正在尝试使用kn中的kn(使用几个包(knnflex,class))来预测基于8个变量的默认概率.数据集大约是100k行的8列,但是我的机器似乎很难处理10k行的样本.在数据集> 50行(即iris)上做任何建议?

编辑:

澄清有几个问题.

1)classknnflex包中的例子有点不清楚,我很好奇是否有一些类似于randomForest包的实现,你给它想要预测的变量和你想用来训练模型的数据:

RF <- randomForest(x, y, ntree, type,...) 
Run Code Online (Sandbox Code Playgroud)

然后转身并使用模型使用测试数据集预测数据:

pred <- predict(RF, testData)
Run Code Online (Sandbox Code Playgroud)

2)我真的不明白为什么knn要训​​练和测试数据来构建模型.据我所知,包创建了一个矩阵〜nrows(trainingData)^2似乎也是预测数据大小的上限.我创建了一个使用5000行的模型(上面的#我得到了内存分配错误)并且无法预测测试集> 5000行.因此我需要:

a)找到一种在训练集中使用> 5000行的方法

要么

b)找到在完整的100k线上使用该模型的方法.

jor*_*ran 8

其原因knn(中)要求同时提供训练和测试数据是,如果不这样做,"模式",它将返回,简直是训练数据本身.

训练数据模型.

为了进行预测,knn计算测试观察与每次训练观察之间的距离(尽管我认为对于不检查每个距离的疯狂大数据集有一些奇特的版本).因此,在您进行测试观察之前,没有真正的模型需要构建.

IPRED包提供你描述出现的结构化的功能,但如果你看看他们,你会看到有基本上没有什么在"培训"功能发生.所有工作都在"预测"功能中.这些实际上是用作使用交叉验证进行错误估计的包装器.

对于案件数量的限制,这将取决于您拥有多少物理内存.如果您遇到内存分配错误,那么您需要减少其他地方的RAM使用率(关闭应用程序等),购买更多内存,购买新计算机等.

虽然我有8GB的RAM,但是对于我来说knn,类中的函数运行良好,具有10k行或更多行的训练和测试数据集.另外,我怀疑knn课堂上比knnflex更快,但我没有做过大量的测试.