我对机器学习是全新的,我试图用scikit-learn用1个输入变量(X)和一个二元结果(Y)来建立一个简单的逻辑回归模型。我的数据包含325个样本,39个成功和286个失败。数据分成训练和测试(30%)。如何确定sklearn逻辑回归的预测概率是否准确?
我的目标实际上是根据我的数据获得任何给定X的预测成功概率,而不是为了分类预测本身。也就是说,我将把预测的概率用于我正在构建的单独模型中,并且不会将逻辑回归用作分类器。所以预测概率实际上适合数据很重要。
但是,我很难理解我的模型是否适合数据,或者如果计算的概率实际上是准确的。
我得到以下数据:
分类精度:metrics.accuracy_score(Y_test,预测的) = 0.92。 我对这一指标的理解是,该模型有很高的机会做出正确的预测,所以它在我看来很像模型。
登录损失:cross_val_score(逻辑回归(),X,Y,得分= 'neg_log_loss',CV = 10) = -0.26 这可能是我最混乱的度量,显然是最重要的它是预测概率的准确度。我知道越接近于零的分数越好 - 但距离足够近?
AUC:metrics.roc_auc_score(Y_test,probs [:,1]) = 0.9。此外,这看起来不错,因为ROC分数越接近1越好。
混淆矩阵:metrics.confusion_matrix(Y_test,预测) =
[ 88, 0] [8, 2]
在这里,我的理解是,对角线给出设定所以这看起来不错的训练正确的预测数。
报告:metrics.classification_report(Y_test,预测) =
precision recall f1-score support 0.0 0.92 1.00 0.96 88 1.0 1.00 0.20 0.33 10 avg/total 0.93 0.92 0.89 98
根据这种分类报告显示,该模型具有良好的精度所以它是一个不错的选择。 我不知道如何解释召回,或者如果这个报告对我的模型来说是个坏消息 - sklearn文档指出召回是一种能够找到所有阳性样本的模型 - 所以对于1的预测得分为0.2意味着它只能在20%的时间内找到正数?这听起来像是一个非常不适合的数据。
我真的很感激,如果有人可以澄清,我interpeting这些指标以正确的方式 - 也许阐明我的模型是否是好还是假的一些情况。另外,如果还有其他测试可以做,以确定计算出的概率是否准确,请让我知道。
如果这些都不是很好的公制分数,我真的很感谢下一步的改进方向。
谢谢!