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): learner.addSample(['on', 'afternoon', 'work'] + map( lambda x: x.sample(), parameters[3:]), parameters)
#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 sn1 = ["on", "home"] map(learner.addSample, [sn1] * 4) #add "off" <- "home", 1 times s4 = ["off", "home"] learner.addSample(s4) #add "on" <- "work", 1 times sn3 = ["on", "work"] learner.addSample(sn3)