如何将neuralnet输出的分类矩阵转换为单列因子?
解决neuralnet预测结果矩阵转单列因子的问题
你可以通过以下步骤将3列的预测矩阵转换为与原数据class列格式一致的单列因子:
提取类别编号
利用max.col()函数获取每行中值为1的列的索引(你的矩阵每行仅有一个1,对应类别1/2/3),这个索引就是对应的类别编号:# 获取每行对应的类别编号 pred_class_num <- max.col(pred.wine.nn.5.5)转换为匹配格式的因子
将得到的类别编号转换为因子,并指定其水平与原数据框的class列完全一致,确保格式匹配:# 转换为因子,对齐原class列的水平 pred_class_factor <- factor(pred_class_num, levels = levels(wine.test$class))
补充说明
- 如果原
class列的水平顺序不是默认的1、2、3(比如是字符型或自定义顺序),levels = levels(wine.test$class)会保证新因子的水平顺序、类型完全和原列一致。 - 也可以用
apply(pred.wine.nn.5.5, 1, which.max)替代max.col(),但max.col()在处理大矩阵时效率更高。
内容的提问来源于stack exchange,提问作者Tuan Jason
相关产品推荐
相关产品推荐

