我是 scikit-learn 的新手,我正在尝试创建一个多项式贝叶斯模型来预测电影票房。下面只是一个玩具示例,我不确定它是否在逻辑上正确(欢迎提出建议!)。Y 对应于我试图预测的估计总额(1:< $20mi,2:> $20mi)。我还离散化了电影放映的屏幕数量。
问题是,这是解决问题的好方法吗?或者将数字分配给所有类别会更好吗?此外,在 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)