我在 Kaggle 上做Forest-Cover-Type-prediction
这是训练和测试数据
> dim(train)
[1] 15120 56
> dim(test)
[1] 565892 56
到目前为止,我已经这样做了:
结合这些数据comb <- rbind(train,test)
然后将 40 个互斥的 Soil_Type 列映射为一个,并将 4 个互斥的 Wilderness_Area 列映射为一个。
comb$Soil <- apply(comb[grep("Soil_Ty+",colnames(comb))], 1 , function(x){which(x == 1)})
comb$Wilderness <- apply(comb[grep("Wilderness_Are+",colnames(comb))], 1 , function(x){which(x == 1)})
删除这 44 列后,我将其减少到 14 列。
> dim(comb)
[1] 581012 14
> colnames(comb)
[1] "Id" "Elevation" "Aspect"
[4] "Slope" "Horizontal_Distance_To_Hydrology" "Vertical_Distance_To_Hydrology"
[7] "Horizontal_Distance_To_Roadways" "Hillshade_9am" "Hillshade_Noon"
[10] "Hillshade_3pm" "Horizontal_Distance_To_Fire_Points" "Cover_Type"
[13] "Soil" "Wilderness"
然后我将数据分开
train <- comb[1:15120,]
test <- comb[15121:581012,]
并在此数据上运行 randomForest
set.seed(415)
fit <- randomForest(Cover_Type ~ .,data=train[-1], importance=TRUE, ntree=2000, na.action = na.omit)
varImpPlot(fit)
predi <- predict(fit,test)
在 Kaggle 上获得了 0.70372 的准确度。现在我已经碰壁了。我尝试根据 Cover_Type(要预测的变量)绘制各种变量,但无法弄清楚如何处理这些变量。

如何从这里提高准确性?在这种情况下,一般方法是什么?