python-3.x - predict_proba() 预测单个值时的逻辑回归
问题描述
给定一个数据集,我想使用逻辑回归来预测一个类(-1 或 +1),我将其拆分如下(在测试集中只预测一个条目):
x_train, x_test = loc_indep[:-1], loc_indep[-1:]
y_train, y_test = loc_target[:-1], loc_target[-1:]
然后我使用以下内容来训练模型:
regr = LogisticRegression()
regr.fit(x_train, y_train)
predictions = regr.predict(x_test)
probabilities = regr.predict_proba(x_test)
print(probabilities) # prints probabilities
鉴于上述情况, probabilities
总是打印 [1. 0.] 或 [0. 1.],这意味着选择 +1 类或 -1 类的概率为 100%。为什么会这样?我预计概率总和为 1,但模型选择了,比如说,+1 类,概率为 54%。
解决方案
您的代码似乎是正确的。所以这意味着你有一个超级准确的模型(这让我怀疑有什么问题......)。我会建议检查你的训练数据,也许你有一些变量,错误地解释了太多(例如相同的输出)。
还尝试输出训练的测试精度。如果训练准确度为 100%,而测试准确度低得多,则说明您过拟合了。然后你将不得不改变一些超参数来避免它。
总而言之,试着理解你的数据,也许区分这两个类非常容易,也许正是因为这个原因,你才获得了如此好的模型。
推荐阅读
- python - 从头开始实现 numpy 协方差矩阵
- docker - 码头工人群。无法对 docker 堆栈的容器运行 exec,因为“docker 容器列表”找不到容器
- selenium - 为什么 Facebook 帖子抓取在数百个帖子被抓取后变得非常缓慢或停止?
- python - Numpy:模型的特征数量必须与输入相匹配。模型 n_features 为 2,输入 n_features 为 3
- javascript - 如何使用 jszip 和 pdfmake 在其中保存带有 pdf 的 zip?
- javascript - 如何将 babel-loader 与原生 es6 模块一起使用?
- opencv - Tesseract OCR v4 应该做哪些图像预处理
- javascript - Material-ui 文本字段在重新渲染后失去焦点。如何解决?
- linux - Linux PTP so_timestamping 标志
- kubernetes - etcd 使用什么操作系统