这是课程中的代码
y_pred_train=logreg.predict(x_train)
y_predict_train=logreg.predict_proba(x_train)[:,1]
logreg.score(x_test,y_train)
这是我找到的一个很好的解释。
model.predict(X_test) - 预测目标变量的值
model.predict_proba() - 给出答案的“置信度”(概率) - 对于某些模型
model.score() - 大多数模型都有用于评估其性能的内置方法
1)我不太明白置信度是什么意思?为什么你不能给出一个你百分百确定的答案?
2) 如果输入 x_train 和 y_train, score() 如何评估模型的性能?虽然,从逻辑上讲,应该 y_pred 和 y_train 吗?评价是什么意思?
某处提到了行列式,虽然我不熟悉这个概念。
score(self, X, y, sample_weight=None)[source] 返回预测的决定系数 R^2。...一个始终预测 y 的期望值的常量模型,不考虑输入特征,将获得 0.0 的 R^2 分数。来自 sklearn 文档
最后,为什么我们要将所有内容分配给不同的变量?
为什么不
a=predict(x_test)
b=a.predict_proba()
我怀疑我们侥幸逃脱,因为我预定义了 random_state,也就是说,无论您调用多少次 predict(),系数或权重都是相同的。但我不太确定)
在您之前的问题中,建议您至少阅读一些有关该主题的文献,至少对于年轻学生而言。看来你没有听从建议。因为这个问题表明在理解你在做什么方面没有真正的进展,而且没有,嗯,除了你查看了另外三个团队的格式,不了解他们在做什么,总的来说 - 为什么这一切.
不过,我会尽量回答。
在您“学习”的方法中,结果是一个介于零和一之间的数字。对于一些(许多)问题——这正是所需要的——表明这两种选择都是可能的,并表明一个对象属于一个类或另一个类的概率是多少。对于其他问题(也有很多),需要给出一个绝对明确的答案,即答案属于哪个类。在这种情况下,使用触发功能将根据第一变体的答案简化为二值逻辑“0”-“1”。同时,必须了解答案将有错误,也应进行评估。(见下文)
应该将 x_train 和 y_train 馈送到此函数的输入。该函数知道 y_train 模型的响应应该是什么,执行分类任务,然后将接收到的响应与每个 x_train 的预期响应进行比较。分数是指(二元)分类的准确度分数和回归模型的决定系数 R^2 的值。
你写了一些奇怪的东西。同时,您要求我们告诉您,您为什么如此挪用它们?理论上应该是
但你想分配不同的
事实上,所有这些问题的答案都可以在文档中找到: https ://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
如果您使用相同的模型和相同的数据,为什么它们会有所不同?
再一次,知道 fit、predict 或 score 命令的格式 并不能使人成为机器学习专家。