gpt4 book ai didi

python - 在 Python 中设置分类器输出的阈值

转载 作者:行者123 更新时间:2023-11-28 17:36:44 25 4
gpt4 key购买 nike

假设我在 Python 中有一个训练有素的 SVM 分类器,其标记为“Probability=True”:

classifier = SVC(C = 1000000, gamma = 10, probability=True) 
classifier.fit(my_data, the_labels)

当我对新数据进行分类时,我只想保留概率高于阈值(假设为 0.90)的已分类新数据。我怎样才能做到这一点?直到现在我正在做这样的事情,但我被卡住了:

labels_predicted = classifier.predict(new_data)
probabilities = classifier.predict_proba(new_data)

第一个命令返回实际标签,第二个命令返回其标签的概率。因此,对于每个数据点,我都有它的最大似然标签和属于所有标签的所有相关概率。但最大似然标签可能是 0.4,我不想要它。如何只保留具有特定阈值的标签?

最佳答案

据我所知,SVC 本身不允许以您想要的方式设置概率阈值。在构建 labels_predictedprobabilities 之后,您可以执行第二遍索引并获得接受的标签。

thresh = 0.9
accepted_probabilities_idx = probabilities.max(axis=1) > thresh
accepted_labels_predicted = labels_predicted[accepted_probabilities_idx]
accepted_new_data = pandas.DataFrame(new_data, index=accepted_probabilities_idx)

我不确定您想如何处理 ML 概率较低的数据。该解决方案将其完全丢弃。

关于python - 在 Python 中设置分类器输出的阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29772831/

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