gpt4 book ai didi

java - 创建一个新的 weka 实例

转载 作者:行者123 更新时间:2023-11-29 09:30:22 25 4
gpt4 key购买 nike

我是 Weka 的新手,我正在尝试创建新实例以使用之前训练过的 MultilayerPerceptron 进行标记,我不太了解如何创建实例所以我得到了第一个实例来 self 的训练数据,然后通过更改属性值对其进行修改:

//Opening the model
public boolean abrirModelo(String ruta) {
try {

clasificador = (MultilayerPerceptron) weka.core.SerializationHelper.read(ruta);

return true;
} catch (IOException e) {
System.out.println("Fallo la lectura del archivo");
return false;
} catch (ClassNotFoundException a) {
System.out.println("Fallo el casting");
return false;
}catch(Exception e){
System.out.println("Error con el castingo");
return false;
}
}

//getting the first instance to be modified
public boolean inicializarInstancias(String directorio){
archivo = new ArffLoader();
try {
archivo.setFile(new File(directorio));
structure = archivo.getStructure();
structure.setClassIndex(structure.numAttributes() - 1);
actual = archivo.getNextInstance(structure); //instance to be used
} catch (IOException ex) {
System.out.println("Algo salio mal al cargar la estructura de lsa instancias");
}
return true;
}

//creating an instance from my local data using the previous instantiated actual instance, it is a List of Points with x and y
public Instance convertir(LineaDeArchivo line) {
int size = line.getDatos().size();
for (int i = 0; i < size; i+=2) {
actual.setValue(i, line.getDatos().get(i).x);
actual.setValue(i + 1, line.getDatos().get(i).y);
}
return actual;
}
//getting the class
public String getClase(Instance e){
try{
double clase;
clase = clasificador.classifyInstance(e);
return structure.classAttribute().value((int) clase);
}catch(Exception a){
System.out.println("Algo salio mal con la clasificacion");
return "?";
}

}

可能这不是正确的方法,分类器对我提供的所有实例都获得相同的类值,我认为问题出在我创建实例的方式上。

我希望有人能给我一个建议,在此先感谢

最佳答案

如果您已经有了可用的 arff 结构并想添加额外的实例,那么您可以通过以下方式实现:

 //assuming we already have arff loaded in a variable called dataset
Instance newInstance = new Instance();
for(int i = 0 ; i < dataset.numAttributes() ; i++)
{

newInstance.setValue(i , value);
//i is the index of attribute
//value is the value that you want to set
}
//add the new instance to the main dataset at the last position
dataset.add(newInstance);
//repeat as necessary

关于java - 创建一个新的 weka 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19334494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com