Python中的Logistic回归-准备数据

Python中的Logistic回归-准备数据

为了创建分类器,我们必须按照分类器构建模块要求的格式来准备数据。我们通过做 一个热编码 来准备数据

编码数据

我们很快就会讨论我们对数据进行编码的意思。首先,让我们运行代码。在代码窗口中运行以下命令。

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

正如评论中所说,上述语句将创建数据的一个热编码。让我们看看它创建了什么?通过打印数据库中的头部记录,检查所创建的名为 “数据 “的数据。

In [11]: data.head()

你将看到以下输出−

Python中的Logistic回归--准备数据

为了理解上述数据,我们将通过运行 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”、”job_blue-collar “的列,依此类推。对于我们原始数据库中的每个编码字段,你会发现在创建的数据库中添加了一个列的列表,其中有该列在原始数据库中的所有可能值。仔细检查列的列表,了解数据是如何被映射到新的数据库的。

理解数据映射

为了理解生成的数据,让我们使用data命令打印出整个数据。运行该命令后的部分输出如下所示。

In [13]: data

Python中的Logistic回归--准备数据

上面的屏幕显示的是前12行。如果你进一步向下滚动,你会看到所有行的映射都已经完成。

这里显示的是数据库进一步向下的部分屏幕输出,供你快速参考。

Python中的Logistic回归--准备数据

为了理解映射的数据,让我们检查第一行。

Python中的Logistic回归--准备数据

它说这个客户没有订阅TD,正如 “y “字段的值所显示的那样。它还表明,这个客户是一个 “蓝领 “客户。横向向下滚动,它将告诉你他有 “住房”,没有 “贷款”。

在这一个热编码之后,我们还需要一些数据处理,然后才能开始建立我们的模型。

抛弃 “unknown”

如果我们检查映射的数据库中的列,你会发现存在少数以 “未知 “结尾的列。例如,用下面的命令检查索引12的列,如截图所示-

In [14]: data.columns[12]
Out[14]: 'job_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')

在这一点上,我们的数据已经为建立模型做好了准备。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程