邏輯回歸:使用Python的簡化方法

點擊上方關注,All in AI中國

邏輯迴歸的目標是什麼?

在邏輯迴歸中,我們希望根據一個或多個自變量(X)對因變量(Y)進行建模。這是一種分類方法。此算法用於分類的因變量。Y使用一個函數建模,該函數為X的所有值提供0到1之間的輸出。在邏輯迴歸中,使用Sigmoid(aka Logistic)函數。

使用混淆矩陣進行模型評估

在針對某些訓練數據訓練邏輯迴歸模型之後,我們將評估模型在某些測試數據上的性能。為此,我們使用混淆矩陣(Confusion Matrix)。混淆矩陣是一個表,通常用於描述分類模型在一組已知真實值的測試數據上的性能。下面給出的是混淆矩陣。

邏輯迴歸:使用Python的簡化方法

TP代表真正例(True Positive),即我們預測為"是(yes)"且實際值為"真(true)"的情況。TN代表真負例(True Negative),即我們預測為"否(no)"且實際值為"假(false)"的情況。FP代表假正例(False Positive),這是我們預測為"是(yes)",實際值為"假(false)"的情況。FN代表假負例(False Negative),這是案例我們預測為"否(no)",實際值是"真(true)"的情況。

我們從混淆矩陣中推斷出什麼?

混淆矩陣有助於我們確定模型預測是正確的,或者換句話說,模型的準確性。通過上面的表格,它給出:

(TP+TN )/Total = 100+50/165 =0.91

這意味著該模型的正確度為91%。混淆矩陣還用於測量錯誤率,該錯誤率由下式給出:

(FP+ FN)/Total=15/165 = 0.09

模型中有9%的錯誤。

在本文中,我們將在python中處理非常簡單的步驟來模擬邏輯迴歸。

Python代碼詳細解釋

我們將觀察數據、分析數據,將其可視化,清理數據,構建邏輯迴歸模型,分成訓練和測試數據,進行預測並最終評估。所有這些都將一步一步完成,我們將要處理的數據是kaggle.com提供的"泰坦尼克號數據集"。這是一個非常著名的數據集,通常是學生基於分類學習機器學習的第一步。我們正在嘗試預測分類:生存或死亡

首先,我們將導入numpy和pandas庫:

邏輯迴歸:使用Python的簡化方法

我們來進行可視化導入:

邏輯迴歸:使用Python的簡化方法

我們將繼續將泰坦尼克號數據集導入pandas數據幀。之後,我們將檢查數據框的頭部,以便清楚地瞭解數據框中的所有列。

邏輯迴歸:使用Python的簡化方法

我們遇到的大多數數據都缺少數據。我們將檢查缺失的數據,並將其可視化以獲得更好的想法並將其刪除。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

在這裡,我們找到布爾值。True表示該值為null,False表示負值,反之亦然。由於有大量數據,我們使用seaborn庫來顯示空值。在這種情況下,我們的任務變得更加容易。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

年齡(Age)和船艙(Cabin)列具有空值。我在之前的博客中處理過處理NA值的問題。有興趣可以查看。

使用數據並充分利用可視化庫來獲取數據是一種很好的做法。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

這是一個計數圖,顯示倖存的人數,這是我們的目標變量。此外,我們可以根據性別(SEX)和乘客(train)類別繪製計數圖。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

在這裡,我們看到一種趨勢,即女性比男性倖存的更多。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

從上圖可以看出,屬於3級的乘客死亡人數最多。

我們可以通過更多方式可視化數據。但是,我不是在這裡討論它們,因為我們需要進入模型構建的步驟。

數據清理

我們想要填寫缺少的年齡(Age)數據,而不是僅刪除缺少的年齡(Age)數據行。一種方法是填寫所有乘客(train)的平均年齡(估算)。但是,我們可以更加明智地按乘客(train)級別檢查平均年齡。例如:

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

我們可以看到較高級別中較富裕的乘客(train)往往年齡較大,這是有道理的。我們將根據年齡的Pclass使用這些平均年齡值來估算。

邏輯迴歸:使用Python的簡化方法

現在應用該功能!

邏輯迴歸:使用Python的簡化方法

現在讓我們再次檢查熱圖。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

很好!讓我們繼續看船艙(Cabin)列。

邏輯迴歸:使用Python的簡化方法

轉換分類功能

我們需要使用pandas庫將分類特徵轉換為虛擬變量!否則,我們的機器學習算法將無法直接將這些特徵作為輸入。

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

在這裡,我們正在篩選性別之後並列出專欄。在篩選之後,我們將丟棄其他不需要的列。

邏輯迴歸:使用Python的簡化方法

我們將連接新的性別並將列導入數據框。

邏輯迴歸:使用Python的簡化方法

現在,數據框看起來像這樣:

邏輯迴歸:使用Python的簡化方法

測試訓練劃分

邏輯迴歸:使用Python的簡化方法

訓練和預測

邏輯迴歸:使用Python的簡化方法

評估

我們可以使用分類報告來檢查精確度、召回率、f1分數

邏輯迴歸:使用Python的簡化方法

邏輯迴歸:使用Python的簡化方法

分類報告

邏輯迴歸:使用Python的簡化方法


分享到:


相關文章: