python - 分类模型中的概率仅给出小数点后 1 位的概率
问题描述
我正在对数据集进行基本分类。我的问题是,有时 target_probabilities 只给出小数点后 1 位。这似乎是随机的,例如,有时它们会保留几个小数位。请注意,这不仅仅发生在 Bagging Classifier 上——它似乎发生在几个 Classifier 上。
这是下面的代码,带有输出。
train = df[df['Season']<2018]
test = df[df['Season'] == 2018]
X_train = train.drop([target,'Season','Team'],axis=1)
X_test = test.drop([target,'Season','Team'],axis=1)
Y_train = train[target]
Y_test = test[target]
model = BaggingClassifier()
model.fit(X_train, Y_train)
y_predicted = model.predict(X_test)
target_probabilities = model.predict_proba(X_test)[:,1]
target_probabilities = np.clip(target_probabilities, a_min=0.05,a_max=0.95)
print(target_probabilities)
解决方案
你得到了 1 个小数,因为它是所有估计器预测BaggingClassifier
结果的平均值。默认情况下,您的估算器是s, 。DecisionTree
n_estimators=10
因此,您对 DT 的预测是二进制的(0 或 1),BC 将它们汇总并除以估计器的数量。这就是为什么你得到 1 个小数。
如果你把n_estimators=10000
你得到一个更精确的数字。
请注意,这不仅仅发生在 Bagging Classifier 上——它似乎发生在几个 Classifier 上。
您测试了哪些分类器?对于 LogisticRegression,一切都按预期工作。
推荐阅读
- wordpress - Nuxt SSR 应用程序在生产环境中加载时间过长
- javascript - MongoDB获取数组对象内的最新文档
- c - 确保结构中的字段对齐
- clickonce - 如何让 Microsoft Edge 正确打开 ClickOnce 部署到 LAN 共享的应用程序的 setup.exe 文件?
- ibm-mq - 将 XML 文件发送到 MQ
- vue.js - 在 Quasar Framework 上的 Cordova 应用程序中运行构建命令时出现问题(在 Windows 上)
- dynamics-crm - 无法在 Microsoft CRM 365 (v.8) 中更新或创建报告
- php - WORDPRESS:如果用户登录/未登录,则重定向用户,仅当他们在某个 url 上时
- javascript - 如何正确循环数组?
- python - 这个问题陈述的代码可以做得更小吗?