WEKA中将带百分号的标称型属性转换为数值型的方法
把WEKA中带百分号的标称列转成数值型的方法
给你两种实用的解决方案,新手也能快速上手:
方法一:直接修改原CSV文件(最省心)
- 用Excel、Notepad++或者其他文本编辑器打开你的CSV文件
- 找到带百分号的目标列,批量替换掉所有
%符号:- Excel里按
Ctrl+H,查找内容填%,替换为留空,点击「全部替换」 - 文本编辑器里用全局替换功能,同样把
%替换成空
- Excel里按
- 保存修改后的CSV,再导入WEKA,这时候系统会自动识别该列为数值型
方法二:用WEKA内置过滤器处理(不用改原文件)
如果不想动原数据集,用WEKA的过滤器一步步来:
- 导入数据集后,切换到Preprocess标签页
- 点击右侧Filter面板的Choose按钮,找到
weka.filters.unsupervised.attribute.ReplaceString - 点击过滤器旁边的Edit按钮,配置参数:
- 在「Attribute index」里选择要处理的列(可以填列的序号,比如第2列就输
2;或者用列名,格式是-R 列名) - 「Find」框输入
%,「Replace with」框留空
- 在「Attribute index」里选择要处理的列(可以填列的序号,比如第2列就输
- 点击OK,再点击面板下方的Apply,这时候该列的百分号会被移除,但还是标称型
- 接着再选一个过滤器:
weka.filters.unsupervised.attribute.NominalToNumeric,同样选择目标列,点击Apply,就能把列转成数值型了
注意事项
- 如果目标列里有非数字+%的内容(比如
无效%、N/A%),要先清理这些无效值,不然转换会报错 - 转换完成后,可以在Preprocess标签页的Attributes面板里查看列类型,确认已经变成
Numeric
内容的提问来源于stack exchange,提问作者PBB
相关产品推荐
相关产品推荐

