R语言Knn算法中的训练集和测试集必须各占一半吗

Python011

R语言Knn算法中的训练集和测试集必须各占一半吗,第1张

这个不一定。之所以要分训练集和测试集是因为怕过度拟合(overfitting),所以需要一个测试集来检验确定 你建立的模型并不只是适合于这一组数据。我一般都是70%训练集30%测试集。当然,得看数据量有多大,以及复杂程度。只要训练集>=测试集,就不会错,但好不好得具体分析。如果数据量在1000以下的话,最好是k折交叉验证(基本上只要不是特别复杂的数据,都推荐k折交叉验证)。如果要是数据量大于10万的话,最好考虑80:20甚至90:10。

train_sub <- sample(nrow(data),0.7*nrow(data))##随机无回放抽取

train_set <- data[train_sub,]

test_set <- data[-train_sub,]##

可以这样来划分,把data改成你自己的数据名称就可以了