Weka导入CSV时real类型属性被识别为string的解决求助
Weka CSV导入属性类型识别错误解决方案
- 优先检查CSV纯文本内容:Excel设置单元格格式不会修改CSV本身的纯文本存储内容,用记事本打开CSV文件排查两处问题:
- 首行第一个属性的列名是否包含多余引号、空格、特殊字符,这类字符会干扰Weka的类型判断逻辑
- 第一个属性的所有取值是否存在非数字内容,哪怕单行出现空格、字母、全角字符,都会导致整列被判定为string类型
- 调整Weka导入参数:
- 在Weka Explorer导入CSV文件的弹窗中点击选项按钮,找到
numericAttributes配置项,手动填入第一个属性的索引(Weka属性索引从1开始,即填1),强制指定该列为数值类型 - 同时可勾选
autoDetectNumeric选项,调高数值检测的精度阈值后重新导入
- 在Weka Explorer导入CSV文件的弹窗中点击选项按钮,找到
- 手动生成ARFF文件兜底:
自定义ARFF格式文件可以完全控制属性类型,步骤如下:- 新建文本文档,开头写入
@relation 你的数据集自定义名称 - 按顺序声明属性,第一个属性手动指定为real类型:
@attribute 第一个属性的名称 real,其余nominal属性按枚举格式声明,例如@attribute 第二个属性名 {取值A,取值B,取值C} - 写入
@data后,将原CSV文件中除首行列名外的所有数据复制粘贴到该行下方,保存文件后缀改为.arff,直接用Weka打开该文件即可避免类型识别错误
- 新建文本文档,开头写入
内容的提问来源于stack exchange,提问作者Bob Matthews
相关产品推荐
相关产品推荐

