如何在Weka中调整属性顺序 使测试集与训练集排序一致
Weka测试集属性与卡方排序后训练集属性对齐方法
你通过卡方特征选择得到的训练集排序属性列表示例如下:
按以下步骤操作即可实现测试集属性顺序和训练集完全对齐:
- 第一步:提取训练集的属性排序规则
完成卡方特征选择后,将已经重排好属性的训练集另存为filtered_training.arff文件,或手动按顺序记录所有保留的属性名列表。 - 第二步:GUI可视化操作(适合单文件处理)
两种操作方案可选:- 自动对齐(推荐)
进入Weka过滤器面板,选择unsupervised.attribute.AlignDatasets过滤器,配置参数时将datasetToAlignTo设置为你刚才保存的filtered_training.arff,将该过滤器应用到加载好的测试集上,系统会自动匹配属性名、调整属性顺序,自动删除测试集里训练集不存在的属性,补全训练集有但测试集缺失的属性(会默认填充缺失值)。 - 手动指定顺序
选择unsupervised.attribute.Reorder过滤器,在参数attributeIndices中按训练集的属性顺序填入对应属性索引,比如训练集排序后的属性对应原始索引为2、5、1、3、4(末尾为类别属性),则填2,5,1,3,4-last,应用过滤器即可得到顺序匹配的测试集。
- 自动对齐(推荐)
- 第三步:命令行/批量操作
如需批量处理多个测试集,可直接调用Weka命令行执行过滤器:# 自动对齐命令 java weka.filters.unsupervised.attribute.AlignDatasets -datasetToAlignTo filtered_training.arff -i raw_test.arff -o aligned_test.arff # 手动指定顺序命令 java weka.filters.unsupervised.attribute.Reorder -R 2,5,1,3,4-last -i raw_test.arff -o reordered_test.arff
注意:操作前需确保训练集和测试集的属性命名完全一致,拼写、大小写不匹配会导致对齐失败。
内容的提问来源于stack exchange,提问作者Khair Ahammed
相关产品推荐
相关产品推荐

