我對機器學習是全新的,我試圖用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這些指標以正確的方式 - 也許闡明我的模型是否是好還是假的一些情況。另外,如果還有其他測試可以做,以確定計算出的概率是否準確,請讓我知道。
如果這些都不是很好的公制分數,我真的很感謝下一步的改進方向。
謝謝!