You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rpart模型生成混淆矩阵时遇“Matrix must have equal dimensions”错误求助

问题原因及解决办法
  • 报错核心原因:使用rpart进行分类任务时,默认调用predict()函数返回的是每个样本对应各类别的概率矩阵,而confusionMatrix()要求输入的预测值是与真实标签维度一致的类别向量,两者维度不匹配就会触发"matrix must have equal dimensions"错误。

  • 最简解决方法:
    在predict()中指定type="class"参数,直接输出预测类别而非概率矩阵:

    fit <- rpart(taste ~ ., data = train, method="class", control = rpart.control(cp = 0.01)) 
    summary(fit)
    
    # 添加type="class"获取类别预测
    knn_prediction <- predict(fit, test, type="class")
    confusionMatrix(knn_prediction, test$taste)
    
  • 备选方案(从概率矩阵转换类别):
    如果需要保留概率矩阵的同时生成混淆矩阵,可以通过以下方式将概率矩阵转为类别向量:

    # 获取概率矩阵
    knn_prob <- predict(fit, test)
    # 提取概率最大的类别
    knn_prediction <- colnames(knn_prob)[max.col(knn_prob)]
    # 生成混淆矩阵
    confusionMatrix(knn_prediction, test$taste)
    

内容的提问来源于stack exchange,提问作者Jaspreet Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:01:04