如何使用TestData在javaml中创建实例?

如何使用TestData在javaml中创建实例?,java,machine-learning,knn,Java,Machine Learning,Knn,我的问题的一个小例子是 我在.data文件中有以下数据集: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,Action 0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,"Up" 2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,"Left" 4,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,"Left" 4,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,"Up" 4,4,0,0,2,0,0,0,0,0,0,

我的问题的一个小例子是

我在
.data
文件中有以下数据集:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,Action
0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,"Up"
2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,"Left"
4,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,"Left"
4,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,"Up"
4,4,0,0,2,0,0,0,0,0,0,0,0,0,0,2,"Up"
8,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,"Left"
数据集有16个
int
特性,最后一列是
String
。我想使用前16个特性,使用
knn
预测最后一列

我已经成功地基于以下内容训练了我的模型

但是现在,我需要测试我的模型。因此,TestData的格式是,16个整数,我希望
knn
model能够预测动作

样本测试数据为:

4,4,0,0,2,0,0,0,0,0,0,0,0,0,0,2
基于代码,我需要从
net.sf.javaml.core.Instance
获得一个
实例
接口的对象,但问题是:

我想知道如何创建这样的实例?

好吧,您可以简单地使用要求一个双精度数组的方法。如果将测试数据转换为双精度
,则非常容易:

double[] testData = {32,16,8,2,16,8,2,2,8,2,0,0,0,0,0,0};
Instance inst=new SparseInstance(testData);
Object predictedClassValue = knn.classify(inst);
System.out.println("Result is: "+predictedClassValue);
我在您的回购协议上尝试了上述代码,它给了我:

Result is: Left
Result is: Left