Java 是否可以用其他方法替换apriori中的fastvector?
希望你们都有一个美好的星期五。我的名字是明,我是论坛的新成员。我正在学习使用Weka,我有一个问题,如果你知道答案,我想寻求你的帮助。我计划在我的Java学校项目中使用weka,我相信我在我的项目中使用的是weka-3.7.7JAR文件。这一切都很好,当我使用关联规则的apriori包时,我能够查看输出。但是,当我尝试使用FastVector(如FastVector=apriori.getAllTheRules())打印apriori.getAllTheRules()中的每个数据项时,我遇到了麻烦。我被卡住了,因为FastVector被弃用了,我在谷歌上读到一些评论,它说我可以用一种叫做列表数组的东西来代替它,而不需要进一步的例子或解释如何使用它 但是,由于我是Weka的新手,我在网上找不到更多关于如何使用apriori.getAllTheRules()的列表数组的文章。因此,如果您碰巧知道一些文章或程序教程提到了如何使用列表数组,请参考这些参考资料。我非常感谢你事先的帮助 attach是使用apriori规则的示例java程序Java 是否可以用其他方法替换apriori中的fastvector?,java,weka,Java,Weka,希望你们都有一个美好的星期五。我的名字是明,我是论坛的新成员。我正在学习使用Weka,我有一个问题,如果你知道答案,我想寻求你的帮助。我计划在我的Java学校项目中使用weka,我相信我在我的项目中使用的是weka-3.7.7JAR文件。这一切都很好,当我使用关联规则的apriori包时,我能够查看输出。但是,当我尝试使用FastVector(如FastVector=apriori.getAllTheRules())打印apriori.getAllTheRules()中的每个数据项时,我遇到了麻
package org.minh;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import weka.associations.Apriori;
import weka.core.Instances;
public class Main
{
public static void main(String[] args)
{
Instances data = null;
try {
BufferedReader reader = new BufferedReader( new
FileReader( "c:\\weka\\CRMArff.arff" ) );
data = new Instances(reader);
reader.close();
data.setClassIndex(data.numAttributes() - 1);
}
catch ( IOException e ) {
e.printStackTrace();
}
double deltaValue = 0.05;
double lowerBoundMinSupportValue = 0.05;
double minMetricValue = 0.5;
int numRulesValue = 100;
double upperBoundMinSupportValue = 1.0;
String resultapriori;
Apriori apriori = new Apriori();
apriori.setDelta(deltaValue);
apriori.setLowerBoundMinSupport(lowerBoundMinSupportValue);
apriori.setNumRules(numRulesValue);
apriori.setUpperBoundMinSupport(upperBoundMinSupportValue);
apriori.setMinMetric(minMetricValue);
try
{
apriori.buildAssociations( data );
}
catch ( Exception e ) {
e.printStackTrace();
}
resultapriori = apriori.toString();
System.out.println(resultapriori);
}
}
为了使用FastVector提取每个规则,我使用了以下循环:
FastVector[] ass=ap.getAllTheRules();
for (FastVector rule : ass) {
if (rule == null) continue;
System.out.println("---> " + rule);
for (int i = 0; i < rule.size(); ++i) {
Object o = rule.elementAt(i);
if (o instanceof AprioriItemSet) {
System.out.println(((AprioriItemSet) o).toString(data));
} else {
System.out.println("rule: "+o);
}
}
}
FastVector[]ass=ap.getAllTheRules();
for(FastVector规则:ass){
如果(规则==null)继续;
System.out.println(“-->”+规则);
对于(int i=0;i
不幸的是,我无法帮助您了解如何使用数组列表实现此目的 嗨!“AprioriItemSet”描述了什么?