我使用weka依赖关系通过Apriori Algorithm获取关联规则。下面是我的密码。当我得到值时,fast vector会显示内存位置值。如果有人能给我发个回复来得到association rules,我会非常感激。
package com.smart.product.analyser;
import org.apache.log4j.Logger;
import weka.associations.Apriori;
import weka.core.FastVector;
import weka.core.Instances;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
public class App {
static Logger log = Logger.getLogger(App.class.getName());
public static BufferedReader readDataFile(String filename) {
BufferedReader inputReader = null;
try {
inputReader = new BufferedReader(new FileReader(filename));
} catch (FileNotFoundException ex) {
}
return inputReader;
}
public static void main(String[] args) throws Exception {
//Define ArrayList to Add Clustered Information
Apriori apriori = new Apriori();
apriori.setNumRules(10);
BufferedReader datafile = readDataFile("/media/dulithdecozta/IR1_CPRA_X6/FYP-Documents/Transactions.arff");
Instances data = new Instances(datafile);
apriori.buildAssociations(data);
log.debug("-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-");
log.debug("Number of Associations : " + apriori.getNumRules());
log.debug("Adding Association Information to ArrayList ..");
int num = apriori.getAllTheRules().length;
System.out.println("Num :" + num);
for (FastVector fastVector : apriori.getAllTheRules())
log.debug("rules " + fastVector.toArray());
}
}程序的输出:
[Ljava.lang.Object;@7254d7ac [Ljava.lang.Object;@201b97d8 [Ljava.lang.Object;@738df65f
发布于 2015-04-10 14:39:15
代码没有任何问题。
Log.debug(“规则”+fastVector.toArray())
它正在打印JVM上存在的地址,在本例中,有三个对象是来自java.lang.Object的类型。它是从存在于toString()上的java.lang.Object方法调用的。
在您的示例中,必须适当地将此引用转换为对象Rules (即m_allTheRules)。在每种情况下,获取或调用适当的方法或属性。
因此,请参见下面的示例:
AprioriItemSet premise = (AprioriItemSet) m_allTheRules[0].elementAt(i);
AprioriItemSet consequence = (AprioriItemSet) m_allTheRules[1].elementAt(i); 这只是一个例子,m_allTheRules是您提供程序在foreach中创建的匿名变量。
请参阅从这里提取的完整示例
https://stackoverflow.com/questions/29563379
复制相似问题