Я новичок в scikit-learn, я пытаюсь создать модель Multinomial Bayes для прогнозирования кинокассет. Ниже приведен пример игры, я не уверен, что он логически корректен (предложения приветствуются!). Y соответствует оценке, которую я пытаюсь предсказать (1: < $ 20mi, 2:> $ 20mi). Я также дискретизировал количество экранов, на которых был показан фильм.Multinomial Naive Bayes с scikit-learn для непрерывных и категориальных данных
Вопрос в том, что это хороший подход к проблеме? Или было бы лучше назначать числа для всех категорий? Кроме того, правильно ли вставлять метки (например, «фильм: жизнь пирога») в объект DictVectorizer?
def get_data():
measurements = [ \
{'movie': 'Life of Pi', 'screens': "some", 'distributor': "fox"},\
{'movie': 'The Croods', 'screens': "some", 'distributor': "fox"},\
{'movie': 'San Fransisco', 'screens': "few", 'distributor': "TriStar"},\
]
vec = DictVectorizer()
arr = vec.fit_transform(measurements).toarray()
return arr
def predict(X):
Y = np.array([1, 1, 2])
clf = MultinomialNB()
clf.fit(X, Y)
print(clf.predict(X[2]))
if __name__ == "__main__":
vector = get_data()
predict(vector)
Почему 'toarray'? 'MultinomialNB' отлично справляется с разреженными матрицами. На самом деле, это будет намного быстрее. –