java - 如何使用 TestData 在 javaml 中创建实例?
问题描述
我的问题的小样本在repo中。
我在文件中有以下数据集.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
。
我已经根据这个链接成功地训练了我的模型。
knn = new KNearestNeighbors(5);
knn.buildClassifier(data);
但现在,我需要测试我的模型。所以,TestData 的格式是 16 个整数,我希望knn
模型能够预测动作。
样本测试数据为:
4,4,0,0,2,0,0,0,0,0,0,0,0,0,0,2
根据我需要有一个Instance
接口对象的代码net.sf.javaml.core.Instance
,但问题是:
我想知道如何创建这样的实例?
解决方案
那么你可以简单地使用SparseInstance方法,它要求一个双精度数组。如果,您将您的 TestData 转换为Double
,那么它将非常容易:
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
推荐阅读
- asp.net-mvc - 在 MVC 应用程序中执行命令行命令时出现路径问题
- substrate - 如何将字符串或字节转换为 AccountId
- python - 在python中获取api时如何避免这些错误
- c# - SQLiteExtensions 一对多与 GUID 主键
- sql - pgAdmin中没有时区的时间戳命令?
- ios - 即使在用户强制退出应用程序后调用了 ViewController deinit,也未调用 viewDidLoad
- php - WooCommerce 上的 OrderDate + Days 简码
- mysql - Mysql,选择多行并以事务方式为每一行分配不同的值
- autosys - Autosys File Watcher - 查找具有部分名称的新文件
- javascript - 无法在文本中写入状态