首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多项式朴素贝叶斯与scikit学习连续和分类数据

多项式朴素贝叶斯与scikit学习连续和分类数据
EN

Stack Overflow用户
提问于 2013-04-01 14:23:10
回答 1查看 1.5K关注 0票数 0

我是个新手,我正在尝试创建一个多项贝叶斯模型来预测电影票房。下面只是一个玩具示例,我不确定它在逻辑上是否正确(欢迎提出建议!)Y对应于我试图预测的估计总额(1:<$20-2,2:>$20-1)。我还离散化了电影放映的屏幕数量。

问题是,这是解决问题的好方法吗?或者将编号分配给所有类别会更好?另外,在DictVectorizer对象中嵌入标签(例如“电影:馅饼的生活”)是否正确?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2013-04-01 20:11:46

我认为,原则上这是正确的。

也许将这个问题表述为票房销售的回归会更自然一些。

movie功能毫无用处。DictVectorizer将每个可能的值编码为不同的特征。由于每部电影都有一个不同的标题,它们都将具有完全独立的功能,并且不可能在那里进行泛化。

将屏幕编码为数字也可能更好,而不是作为不同范围的一次性编码。

不用说,你需要比这里更好的功能才能得到合理的预测。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15738641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档