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.