Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package regulyasocjacyjne; import static regulyasocjacyjne.Data.loadData; import weka.associations.Apriori; import weka.core.Instances; import weka.core.Utils; import weka.filters.Filter; import weka.filters.supervised.attribute.Discretize; /** * * @author Dominika */ public class WekaApriori { private String numRules; private String minConfidence; public WekaApriori() { } public WekaApriori(String numRules, String minConfidence) { this.numRules = numRules; this.minConfidence = minConfidence; } public String getMinConfidence() { return minConfidence; } public String getNumRules() { return numRules; } public void setNumRules(String numRules) { numRules = this.numRules; } public void setMinConfidence(String minConfidence) { this.minConfidence = minConfidence; } /** * Generowanie regu Asocjacyjnych algorytmem Apriori * * @param data * @param n Liczba regul do policzenia (standardowo: 10) * @param c Minmalna ufnosc reguly (standardowo: 0.9). * @return * @throws Exception */ public String regulyAsocjacyjne(Instances data, String c, String n) throws Exception { data.setClassIndex(data.numAttributes() - 1); String[] options = Utils.splitOptions("-N " + n + " -C " + c); Apriori apriori = new Apriori(); apriori.setOptions(options); apriori.buildAssociations(data); //Generowanie regul asocjacyjnych System.out.println("Liczba regul=" + apriori.getNumRules()); System.out.println(apriori.toString()); //Wypisanie informacji o regulach return apriori.toString(); } //Generowanie regul asocjacyjnych z wczesniejsza dysretyzacja tablicy public static void regulyAsocjacyjneDyskret() throws Exception { Instances data = loadData("./src/data/osmolski.arff"); data.setClassIndex(data.numAttributes() - 1); Discretize filter = new Discretize(); filter.setInputFormat(data); //Dyskretyzacja tablicy Instances trainDiscret = Filter.useFilter(data, filter); //Opcje liczenia regul asocjacyjnych String[] options = Utils.splitOptions("-N 10 -C 0.9"); Apriori apriori = new Apriori(); apriori.setOptions(options); apriori.buildAssociations(trainDiscret); System.out.println("Liczba regul=" + apriori.getNumRules()); System.out.println(apriori.toString()); // wynik = eval.toSummaryString("Wyniki:", false); } }