使用保存的模型进行预测(使用Weka,Eclipse+Java)

我对代码行”Instances originalTrain=”的参数感到困惑。作为Weka的新手,我希望有人能帮助我纠正这个错误。我们正在使用Java和Weka创建一个疾病预测系统。

import weka.classifiers.Classifier;import weka.core.Instances;public class Main {    public static void main(String[] args) throws Exception    {        String rootPath="/some/where/";         Instances originalTrain= //在这里添加实例(不知道如何完成这个语句)        //加载模型        Classifier cls = (Classifier) weka.core.SerializationHelper.read(rootPath+"tree.model");        //预测实例类值        Instances originalTrain= //加载或创建要预测的Instances(这个语句也是)        //要预测哪个实例的类值        int s1=0;        //执行预测        double value=cls.classifyInstance(originalTrain.instance(s1));        //获取预测百分比或分布        double[] percentage=cls.distributionForInstance(originalTrain.instance(s1));        //获取类值的名称        String prediction=originalTrain.classAttribute().value((int)value);         System.out.println("实例的预测值 "+                            Integer.toString(s1)+                            ": "+prediction);         //格式化分布        String distribution="";        for(int i=0; i <percentage.length; i=i+1)        {            if(i==value)            {                distribution=distribution+"*"+Double.toString(percentage[i])+",";            }            else            {                distribution=distribution+Double.toString(percentage[i])+",";            }        }        distribution=distribution.substring(0, distribution.length()-1);        System.out.println("分布:"+ distribution);    }}

回答:

为了完整起见,问题中的代码片段来源于使用自己的Java代码和模型在Weka中获取预测百分比

originalTrain应该是你的训练实例。我知道有两种方法可以向originalTrain添加实例。

  1. 这种方法从.arff文件加载数据,基于这里的说明。

    // rootPath应该是.arff文件所在的位置// filename应该包含.arff文件的完整名称public static Instances instanceData(String rootPath, String filename) throws Exception{   // 初始化源   DataSource source = null;  Instances data = null;  source = new DataSource(rootPath + filename);  data = source.getDataSet();
    // 将类设置为数据的最后一个属性(可能需要调整) if (data.classIndex() == -1) data.setClassIndex(data.numAttributes() -1 ); return data;}

  2. 你可以按照这个回答中描述的方式手动创建和添加实例使用Weka API定义聚类输入数据

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注