Python中的邏輯迴歸 - 資料準備



為了建立分類器,我們必須將資料準備成分類器構建模組所需的形式。我們透過進行獨熱編碼 (One Hot Encoding) 來準備資料。

資料編碼

我們稍後將討論資料編碼的含義。首先,讓我們執行程式碼。在程式碼視窗中執行以下命令。

In [10]: # creating one hot encoding of the categorical columns.
data = pd.get_dummies(df, columns =['job', 'marital', 'default', 'housing', 'loan', 'poutcome'])

如註釋所示,上述語句將建立資料的獨熱編碼。讓我們看看它建立了什麼?透過列印資料庫中的頭部記錄來檢查名為“data” 的建立資料。

In [11]: data.head()

您將看到以下輸出:

Created Data

為了理解上述資料,我們將透過執行data.columns 命令列出列名,如下所示:

In [12]: data.columns
Out[12]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur',
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'job_unknown', 'marital_divorced', 'marital_married', 'marital_single', 
'marital_unknown', 'default_no', 'default_unknown', 'default_yes', 
'housing_no', 'housing_unknown', 'housing_yes', 'loan_no',
'loan_unknown', 'loan_yes', 'poutcome_failure', 'poutcome_nonexistent', 
'poutcome_success'], dtype='object')

現在,我們將解釋get_dummies 命令是如何進行獨熱編碼的。新生成的資料庫中的第一列是“y”欄位,它指示該客戶是否訂閱了TD。現在,讓我們看看編碼的列。“job”是第一個編碼的列。在資料庫中,您會發現“job”列有很多可能的值,例如“admin”、“blue-collar”、“entrepreneur”等等。對於每個可能的值,我們在資料庫中建立一個新列,並在列名前新增字首。

因此,我們有“job_admin”、“job_blue-collar”等列。對於我們原始資料庫中的每個編碼欄位,您會發現建立的資料庫中添加了一系列列,其中包含該列在原始資料庫中所有可能的值。仔細檢查列的列表,以瞭解資料如何對映到新資料庫。

理解資料對映

為了理解生成的資料,讓我們使用data命令打印出所有資料。執行命令後的部分輸出如下所示。

In [13]: data
Understanding Data Mapping

以上螢幕顯示了前十二行。如果您向下滾動,您會看到所有行的對映都已完成。

為了方便您快速參考,此處顯示了資料庫中更下方的部分螢幕輸出。

Quick Reference

為了理解對映的資料,讓我們檢查第一行。

Mapped Data

它表明該客戶未訂閱TD,如“y”欄位中的值所示。它還表明該客戶是“藍領”客戶。水平滾動,它會告訴您他擁有“住房”並且沒有貸款。

進行獨熱編碼後,在我們開始構建模型之前,還需要進行一些資料處理。

刪除“unknown”

如果我們檢查對映資料庫中的列,您會發現一些以“unknown”結尾的列。例如,使用螢幕截圖中顯示的以下命令檢查索引為12的列:

In [14]: data.columns[12]
Out[14]: 'job_unknown'

這表明指定客戶的職業未知。顯然,在我們的分析和模型構建中包含此類列毫無意義。因此,應刪除所有值為“unknown”的列。這是透過以下命令完成的:

In [15]: data.drop(data.columns[[12, 16, 18, 21, 24]], axis=1, inplace=True)

確保您指定了正確的列號。如有疑問,您可以隨時透過如前所述在columns命令中指定其索引來檢查列名。

刪除不需要的列後,您可以檢查最終的列列表,如下面的輸出所示:

In [16]: data.columns
Out[16]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur', 
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'marital_divorced', 'marital_married', 'marital_single', 'default_no', 
'default_yes', 'housing_no', 'housing_yes', 'loan_no', 'loan_yes',
'poutcome_failure', 'poutcome_nonexistent', 'poutcome_success'], 
dtype='object')

此時,我們的資料已準備好進行模型構建。

廣告
© . All rights reserved.