我有下表。
X10 $ Marital< - as.factor(X10 $ Marital)
X10 $ AgeZ< - scale(X10 $ Age,center = TRUE,scale = TRUE)
X10 $ IncomeZ< - scale(X10 $ Income,center = TRUE,scale = TRUE)
X10 $风险< - as.factor(X10 $风险)
然后我创建了测试和训练数据集和分类
Test10< - 子集(X10 [10,c(2,5,6)])
Train10< - subset(X10 [1:9,c(2,4,5,6)])
trueclass< - factor(X10 $ Risk)
我一直收到错误"' train'和'班级'在R"
中有不同的长度我确实看了另一个问题,这个问题可能是因为分类不是矢量,所以我用这9个值创建了一个矢量。
trueclass&lt; - c(&#34; Bad Loss&#34;,&#34; Bad Loss&#34;,&#34; Bad Loss&#34;,&#34; Bad Loss&#34;,& #34;不良损失&#34;,&#34;良好的风险&#34;,&#34;良好的风险&#34;,&#34;良好的风险&#34;,&#34;良好的风险&#34;)< / p>
我仍然得到同样的错误。我究竟做错了什么?
暗淡(Train10)
9 4
暗淡(Test10)
1 3
长度(trueclass)
9
答案 0 :(得分:0)
要使用knn,您应该具有标准化数据。在您的情况下,您只能使用AgeZ&amp;收入Z预测列车和风险测试数据帧。
实际上,测试&amp;火车必须具有相同的尺寸(cols)。您可以尝试以下代码:
Test10 <- subset(X10[10, c("AgeZ","IncomeZ")])
Train10 <- subset(X10[1:9,c("AgeZ","IncomeZ")])
trueclass <- as.factor(X10[1:9,"Risk"])
knn <- class::knn(Train10,Test10,trueclass)
knn
[1] Good risk
希望这会有所帮助
Gottavianoni