首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高斯朴素贝叶斯(GaussianNB)分类器不能处理大量特征

高斯朴素贝叶斯(GaussianNB)分类器不能处理大量特征
EN

Data Science用户
提问于 2020-01-31 16:25:03
回答 1查看 473关注 0票数 3

我正在尝试对GuassianNB进行部分拟合,这是我的代码的一个小片段

代码语言:javascript
复制
classfier = GaussianNB()
classfier.fit(X_init, y_init)
for i in range(X_train.shape[0]):
    if('some condition'):
        classfier = GaussianNB() 
        classfier.partial_fit(X_train[i, :].reshape(1, -1), y_train[i].reshape(1, -1).ravel(), classes = np.unique(y_train))
    else:
        classfier.partial_fit(X_train[i, :].reshape(1, -1), y_train[i].reshape(1, -1).ravel())

一切正常工作,直到条件为真,似乎分类器由于某种原因停止学习,并开始作出任意的预测(预测所有零)。

代码语言:javascript
复制
tn, fp, fn, tp = confusion_matrix(y_test, pred).ravel()
print(tn, fp, fn, tp)

>>> 1324 0 1031 0

我想,也许我的分类器在重新初始化它之后(在循环结束之前就满足了这个条件)做了预测,但是在我检查它之后,它在循环结束之前至少做了900个部分配件,同时带有0和1个标签。

我很困惑,怎么回事?谢谢

编辑:我发现了

出了什么问题

事实证明,问题在于,我的数据集有这么多特性(大约40000,因为它最初是一串评论,并使用tfidf对其进行矢量化),并且出于某种原因导致了GaussianNB分类器的崩溃。我想知道为什么GaussianNB没有大量的特性。如果有人知道的话,我会感谢你的帮助。谢谢

EN

回答 1

Data Science用户

发布于 2021-01-16 14:45:06

高斯朴素贝叶斯(GaussianNB)的问题不在于特征的数量。这是GaussianNB正在学习的决策边界。由于“朴素”假设,朴素贝叶斯被限制在学习数据的边缘分布上。通常情况下,条件分布对预测很有用。考虑到GaussianNB在该数据集上的性能,应用可以学习不同决策边界的不同分类器。可能是有意义的。

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

https://datascience.stackexchange.com/questions/67338

复制
相关文章

相似问题

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