#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)) print map(str, parameters) # [on] <= When [morning, home] for a in range(1,300): learner.addSample(['on', 'morning', 'home'] + map( lambda x: x.sample(), parameters[3:]), parameters) # [off] <= When [morning, work] for a in range(1,200): learner.addSample(['off', 'morning', 'work'] + map( lambda x: x.sample(), parameters[3:]), parameters) # [on] <= When [afternoon, work] for a in range(1,200):
#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) learner.setTreshold(0.7) learner.setMinSamples(2) #add "on" <- "home", 4 times