【发布时间】:2015-02-13 15:03:51
【问题描述】:
我在 weka 中使用 j48 方法。我的样本训练数据 .arff 文件如下,
@relation l4_tbl_final
@attribute MouseVariance numeric
@attribute EyeValue numeric
@attribute SocialTime numeric
@attribute KeyWords numeric
@attribute InvolvedTime numeric
@attribute grade {B,A,C}
@data
2731.35,87,47.55,0,49.7,B
864.891,55,0,0,94.33,B
2495.8,1386,0,2,71.75,A
1104.04,4490,0,0,61.91,B
前 5 个值是参数,基于给出的等级 'A'、'B'、'C'。
现在我需要提供测试数据集并预测这些数据的等级。为此,我应该提供如下 testdata.arff 文件(?分数)
@attribute MouseVariance numeric
@attribute EyeValue numeric
@attribute SocialTime numeric
@attribute KeyWords numeric
@attribute InvolvedTime numeric
@attribute grade {B,A,C}
@data
2731.35,87,47.55,0,49.7,?
864.891,55,0,0,94.33,?
2495.8,1386,0,2,71.75,?
1104.04,4490,0,0,61.91,?
我使用以下 java 代码将 sql 数据库转换为 csv,然后将 csv 转换为 arff:
while (resultSet.next()) {
row = spreadsheet.createRow(i);
cell = row.createCell(0);
cell.setCellValue(resultSet.getString("MouseVariance"));
cell = row.createCell(1);
cell.setCellValue(resultSet.getString("EyeValue"));
cell = row.createCell(2);
cell.setCellValue(resultSet.getString("SocialTime"));
cell = row.createCell(3);
cell.setCellValue(resultSet.getString("KeyWords"));
cell = row.createCell(4);
cell.setCellValue(resultSet.getString("InvolvedTime"));
cell = row.createCell(5);
cell.setCellValue("?");
i++;
}
但是当我以这种方式创建 arff 文件时,属性显示为
@attribute grade {numaric} value.
因此无法预测预期成绩。 但是如果是这样就可以解决问题了。
@attribute grade {B,A,C}
我该如何解决?
【问题讨论】: