1
NaiveBayesClassifierを使用して、スマートホームの一部の領域で費やされた時間を分類しようとしています。Nltkは単一のパラメータに基づいて分類します
私のトレーニングデータは、次のようになります。
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)
結果は次のようになります:
['OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT', 'OUT',....]
私は結果として'IN'
を取得することはありません
[[{'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'], ... ]
これは私のコードです。誰かが私の分級機に間違ったことを見ることができますか?
訓練セットにはいくつの観察がありますか、INの割合はどれくらいですか? – MedAli
@MedAli 11.6%はINです。 21626の合計で2269件が見つかりました – bla0009
あなたは不均衡なデータセットでクラシファイアを作成しようとしていますが、NaiveBayesClassifierはそれに最適ではありません。まずこのチュートリアルをチェックしてください:http://machinelearningmastery.com/tactics-to-combat-imbalanced-classes-in-your-machine-learning-dataset/ – MedAli