#prepare the data set
mySet = SampleSet()

#the set of attributes that are correlated
att1 = RandomAttribute("WiFi")
att2 = RandomAttribute("time")
att3 = RandomAttribute("location")

#declare attributes
att1.add("off", "on")
att2.add("morning", "afternoon", "evening", "night")
att3.add("home", "work", "other")

#add the attributes
mySet.addDefinition(att1)  # wifi
mySet.addDefinition(att2)  # time
mySet.addDefinition(att3)  # location
parameters = [att1, att2, att3]

#add 10 random attributes
random_factory = RandomAttributeFactory(1000)
for idx in range(1, 10):
    rndatt = random_factory.getNext()
    parameters.append(rndatt)
    mySet.addDefinition(rndatt)
    
#select classifier
learner = RulesLearner('tree_learner', mySet, 'on')
learner.setTemplateRuleLearnerName("[WiFi] <= When [Location] ")
learner.setFieldNames(map(str, parameters))
mySet = SampleSet()


#declare attributes
att = Attribute("WiFi")
att.add("off", "on")

att2 = Attribute("time")
att2.add("morning", "afternoon", "evening", "night")

att3 = Attribute("location")
att3.add("home", "work", "other")

#add the attributes
mySet.addDefinition(att)   # wifi
mySet.addDefinition(att3)  # location

#select classifier
learner = RulesLearner('full_likelihood', mySet)
learner.setTemplateRuleLearnerName("[WiFi] <= When [Location] ")

#not necessary as learner already has the set
#rule.learner = FullLikelihood(mySet)

print("Action " + learner.getAction())

parameters = [att.getName(), att3.getName()]

learner.setFieldNames(parameters)