逻辑回归:使用Python的简化方法

点击上方关注,All in AI中国

作者:Surya Remanan

逻辑回归的目标是什么?

在逻辑回归中,我们希望根据一个或多个自变量(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的简化方法

相关推荐