我在Weka Explorer中训练了一个SimpleKMeans群集器并将模型保存到我的计算机上。现在我想在我的Java代码中使用它来集群我创建的实例,但是当我尝试反序列化它时出现以下错误:
java.io.InvalidClassException:weka.core.Instance; weka.core.Instance; 对于反序列化,类无效 java.io.Object.StreamClass.checkDeserialize(未知来源)at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at java.io.ObjectInputStream.readObject0(未知来源)at java.io.ObjectInputStream.readArray(未知来源)at java.io.ObjectInputStream.readObject0(未知来源)at java.io.ObjectInputStream.defaultReadFields(未知来源)at java.io.ObjectInputStream.readSerialData(未知来源)at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at java.io.ObjectInputStream.readObject0(未知来源)at java.io.ObjectInputStream.defaultReadFields(未知来源)at java.io.ObjectInputStream.readSerialData(未知来源)at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at java.io.ObjectInputStream.readObject0(未知来源)at java.io.ObjectInputStream.defaultReadFields(未知来源)at java.io.ObjectInputStream.readSerialData(未知来源)at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at java.io.ObjectInputStream.readObject0(未知来源)at java.io.ObjectInputStream.readObject(未知来源)at weka.core.SerializationHelper.read(SerializationHelper.java:288)at weka.core.SerializationHelper.read(SerializationHelper.java:270)at Test.main(Test.java:32)
我的Test类的第32行是
Clusterer kmeans_temp = (Clusterer) weka.core.SerializationHelper.read("path/to/model/myclusterermodel.model");
我做得对吗?
答案 0 :(得分:4)
问题是因为我使用两个不同版本的WEKA来创建模型并反序列化模型。我下载了用于WEKA资源管理器的版本的源代码,问题解决了。