gpt4 book ai didi

python - 总是百分百的概率 : predict_proba, sklearn

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:32 28 4
gpt4 key购买 nike

我正在使用 Python 的 sklearn 对文本进行分类。

我调用函数 predict_proba,它看起来像这样:

[[  6.74918834e-53   1.59981248e-51   2.74934762e-26   1.24948745e-43
2.93801753e-48 3.43788315e-18 1.00000000e+00 2.96818867e-20]]

即使我尝试输入歧义数据,它看起来也总是这样。在我看来,分类器总是百分百确定的可能性不大,那有什么问题呢?

目前我正在使用MultinomialNB 分类器,它是关于文本分类的。我正在使用新闻报纸文章体育经济等类(class)来训练我的模型。训练样例大小为175,分布如下:

    {'business': 27,
'economy': 20,
'lifestyle': 22,
'opinion': 11,
'politics': 30,
'science': 21,
'sport': 21,
'tech': 23}

我的流水线看起来像这样,我的特征主要是词袋和一些语言关键指标,如文本长度。

cv = CountVectorizer(min_df=1, ngram_range=(1,1), max_features=1000)
tt = TfidfTransformer()
lv = LinguisticVectorizer() # custom class
clf = MultinomialNB()

pipeline = Pipeline([
('features', FeatureUnion([
('ngram_tf_idf', Pipeline([
('counts', cv),
('tf_idf', tt),
])),
('linguistic', lv),
])),
('scaler', StandardScaler(with_mean=False)),
('classifier', clf)
])

如果您想看一下我的训练示例,我已将其上传到此处:wetransfer.com

更新:也许值得一提的是当前设置在测试样本上的得分为 0.67。但在使用 StandardScaler 之前,概率的分布更加真实(即并不总是 100%)——但它的得分仅为 0.2。

更新:在管道中添加 MaxAbsScaler 后,它似乎可以正常工作。有人可以解释这种奇怪的行为吗?

最佳答案

这意味着,特别是考虑到至少有一个是朴素贝叶斯:

  • 您的数据处理例程中有一个错误,也许您将整个文档转换为一个单词,而不是将其实际分成多个部分?检查每一个步骤,以确保您的文档实际上是在单词级别编码的。
  • 你的数据是“损坏的”(有唯一标识你的类的唯一词),例如新闻组数据集最初由标题信息组成,其中类名是按字面指定的(因此每个文档关于运动有“group:sport@...”等)
  • 你有巨大的类比例失调,而你的模型只是一直在预测多数类。

关于python - 总是百分百的概率 : predict_proba, sklearn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40747857/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com