def weka_algorithm(algorithm, type, minsup, minconf):
    # Weka worker start
    jvm.start()

    loader = Loader(classname="weka.core.converters.ArffLoader")
    data = loader.load_file(arr_file)

    associator = Associator(classname=f"weka.associations.{algorithm}",
                            options=["-M", minsup, "-C", minconf, "-N", "100"])
    associator.build_associations(data)

    with open(f"results/{type}_weka_{algorithm}.output", "w") as fw:
        fw.write(associator.__str__())
        fw.close()

    # Weka worker end
    jvm.stop()
def main():
    """
    Just runs some example code.
    """

    # load a dataset
    vote_file = helper.get_data_dir() + os.sep + "vote.arff"
    helper.print_info("Loading dataset: " + vote_file)
    loader = Loader("weka.core.converters.ArffLoader")
    vote_data = loader.load_file(vote_file)
    vote_data.class_is_last()

    # train and output associator
    associator = Associator(classname="weka.associations.Apriori",
                            options=["-N", "9", "-I"])
    associator.build_associations(vote_data)
    print(associator)
Ejemplo n.º 3
0
def associateRule(request):

    jvm.start()

    data_dir = os.path.dirname(os.path.abspath(__file__))
    data = converters.load_any_file(data_dir +
                                    "/templates/upload_files/export.csv")
    data.class_is_last()

    associator = Associator(classname="weka.associations.Apriori",
                            options=["-C", "-1", "-I"])
    # associator = Associator(classname="weka.associations.Apriori", options=["-N", "9", "-I"])
    associator.build_associations(data)

    rules = str(associator)

    jvm.stop()

    return HttpResponse(rules)
Ejemplo n.º 4
0
# More Data Mining with Weka - Class 3.3
# Copyright (C) 2014 Fracpete (fracpete at gmail dot com)

# Use the WEKAMOOC_DATA environment variable to set the location
# for the datasets
import os
data_dir = os.environ.get("WEKAMOOC_DATA")
if data_dir is None:
    data_dir = "." + os.sep + "data"

import weka.core.jvm as jvm
from weka.core.converters import Loader
from weka.associations import Associator

jvm.start()

# load weather.nominal
fname = data_dir + os.sep + "weather.nominal.arff"
print("\nLoading dataset: " + fname + "\n")
loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(fname)
data.class_is_last()

# build Apriori
assoc = Associator(classname="weka.associations.Apriori")
assoc.build_associations(data)
print(assoc)

jvm.stop()
Ejemplo n.º 5
0
import weka.core.jvm as jvm
from weka.core.converters import Loader
from weka.associations import Associator

jvm.start()

# load weather.nominal
fname = data_dir + os.sep + "weather.nominal.arff"
print("\nLoading dataset: " + fname + "\n")
loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(fname)
data.class_is_last()

# build Apriori (output as many rules as possible that min support of 0.01)
print("\n--> Output many weather rules\n")
assoc = Associator(classname="weka.associations.Apriori",
                   options=["-M", "0.01", "-N", "10000"])
assoc.build_associations(data)
print(assoc)

# build Apriori (default options, outputting itemsets)
print("\n--> Output weather itemsets\n")
assoc = Associator(classname="weka.associations.Apriori", options=["-I"])
assoc.build_associations(data)
print(assoc)

# load supermarket
fname = data_dir + os.sep + "supermarket.arff"
print("\nLoading dataset: " + fname + "\n")
loader = Loader(classname="weka.core.converters.ArffLoader")
data = loader.load_file(fname)
data.class_is_last()