J'essaie d'utiliser NaiveBayesClassifier pour classer les temps passés dans certaines zones de la maison intelligente.Classement Nltk basé sur un seul paramètre
Mes données de formation ressemble à ceci:
[[{'time': '00:00'}, 'IN'], [{'time': '00:01'}, 'IN'], [{'time': '00:02'}, 'OUT'], [{'time': '00:03'}, 'OUT'], [{'time': '00:04'}, 'OUT'], [{'time': '00:05'}, 'OUT'], [{'time': '00:06'}, 'OUT'], ......, [{'time': '08:06'}, 'IN'], [{'time': '08:07'}, 'IN'], [{'time': '08:08'}, 'IN'], ... ]
Voici mon code:
classifier = nltk.NaiveBayesClassifier.train(training_data)
start_date = datetime.strptime('2010-11-19 00:00', '%Y-%m-%d %H:%M')
end_date = datetime.strptime('2010-11-19 23:59', '%Y-%m-%d %H:%M')
test_data = []
while start_date < end_date:
test_data.append(dict(time=start_date.strftime('%H:%M')))
start_date += timedelta(0, 60)
test = classifier.classify_many(test_data)
print(test)
Résultat ressemble à ceci:
['OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT',....]
Je ne me 'IN'
en conséquence. Quelqu'un peut-il voir quelque chose de mal avec mon classificateur?
Combien d'observations avez-vous dans l'ensemble d'entraînement et quel est le pourcentage d'IN au total? – MedAli
@MedAli 11,6% sont IN. 21626 observations au total, 2269 sont IN – bla0009
Vous essayez de créer un classificateur dans un ensemble de données déséquilibré, NaiveBayesClassifier n'est pas le meilleur ajustement pour cela. Commencez par consulter ce tutoriel: http://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/ – MedAli