WEKA工具中如何为weather.numeric.arff文件添加并应用list属性?
WEKA ARFF数据集新增list类型属性的实现方案
WEKA的ARFF格式原生未提供通用list属性类型,可根据你的使用场景选择以下三种等效实现方式:
方案1:字符串属性存储序列化list
- 适用场景:list元素为同类型简单值、无需直接在WEKA图形界面对单个元素做统计分析
- 操作方法:
- 手动编辑ARFF文件新增属性定义:
@attribute 自定义属性名 string - 将每条样本的list元素按统一分隔符拼接为字符串,写入对应字段,例如list
[1,2,3]可存储为"1,2,3" - 后续使用时可通过
StringToWordVector过滤器或自定义代码拆分字符串还原list结构 - 若在WEKA Explorer界面操作,可直接选择
weka.filters.unsupervised.attribute.Add过滤器,配置属性类型为string后应用即可。
- 手动编辑ARFF文件新增属性定义:
方案2:list展开为多列独立属性
- 适用场景:list长度固定或最大长度可控、需要直接对list每个位置的元素做特征统计、建模
- 操作方法:
- 确认所有样本的list最大长度为N,新增N个独立属性,命名可参考
list_item_1、list_item_2...list_item_N - 长度不足N的样本对应空缺位置填入WEKA缺失值标记
?即可 - Explorer界面批量新增可使用
weka.filters.unsupervised.attribute.AddMultiple过滤器。
- 确认所有样本的list最大长度为N,新增N个独立属性,命名可参考
方案3:relational类型属性存储结构化list
- 适用场景:list长度不固定、需要保留结构化存储格式、后续使用支持relational属性的WEKA算法/过滤器
- 操作方法:
- 手动编辑ARFF文件按格式新增relational属性:
@attribute 自定义属性名 relational @attribute list_item numeric % 可根据实际元素类型调整 @end 自定义属性名- 每条样本的list内容按格式写入,例如长度为3的list
[1,2,3]存储为"3,1,2,3",首位为list长度,后续为元素值。
注意:如果你的list是用于常规分类/回归建模,优先选择方案2,绝大多数WEKA基础算法都支持该格式的特征输入。
内容的提问来源于stack exchange,提问作者S C
相关产品推荐
相关产品推荐

