机器学习的逻辑回归:完整指南

已发表: 2021-10-04

机器学习模型需要算法才能工作。 根据一组条件,特定的 ML 模型可以使用一种或另一种算法表现最佳。 因此,机器学习工程师和爱好者应该了解可以在不同环境中使用的不同类型的算法——在时机成熟时知道使用哪一种。 机器学习中从来没有一个万能的解决方案,使用不同的算法进行调整可以提供所需的结果。

例如,您必须已经了解线性回归。 但是,该算法不能应用于分类因变量。 这就是逻辑回归派上用场的地方。

在机器学习中,逻辑回归是一种监督学习方法,用于预测因变量或目标变量的概率。 使用逻辑回归,您可以预测并建立因变量与一个或多个自变量之间的关系。

逻辑回归方程和模型通常用于二进制分类的预测分析。 您还可以将它们用于多类分类。

以下是机器学习的逻辑回归方程的样子:

logit(p) = ln(p/(1-p)) = h0+h1X1+h2X2+h3X3….+hkXk

在哪里;

p = 特征出现的概率

x1,x2,..xk = 输入特征集

h1,h2,….hk = 要在 Logistic 回归方程中估计的参数值。

目录

机器学习中逻辑回归模型的类型

根据 Logistic Regression 的使用方式, Logistic Regression 模型的类型可分为以下几类:

1. 二元逻辑回归模型

这是逻辑回归中最常用的回归模型之一。 它有助于将数据分为两类,并将新输入的值预测为属于这两类中的任何一类。 例如,患者的肿瘤可以是良性的也可以是恶性的,但绝不可能两者兼而有之。

2. 多项逻辑回归模型

该模型有助于将目标变量分为两个以上的类别——无论任何定量意义如何。 这方面的一个例子可能是根据个人的饮食偏好和过去的经验来预测个人可能订购的食物类型。

加入来自世界顶级大学的在线机器学习课程——硕士、高管研究生课程和 ML 和 AI 高级证书课程,以加快您的职业生涯。

3. 序数逻辑回归模型

该模型用于对目标变量进行分类。 例如,学生在考试中的表现可以按等级顺序分为差、好和优秀。 这样,数据被分为三个不同的类别,每个类别都具有特定的重要性级别。

逻辑回归方程可用于多种情况,例如垃圾邮件检测、肿瘤分类、性别分类等等。 让我们看一下机器学习中逻辑回归方程的两个最常见的示例用例,以帮助您更好地理解。

逻辑回归方程的示例用例

示例 1:识别垃圾邮件

如果电子邮件是垃圾邮件,则考虑类别 1,如果电子邮件不是,则考虑类别 0。 为了检测这一点,从邮件正文中分析了多个属性。 这些包括:

  • 发件人
  • 拼写错误
  • 电子邮件中的关键字,例如“银行详细信息”、“幸运”、“获胜者”、“恭喜”。
  • 电子邮件中的联系方式或 URL

然后可以将提取的数据输入机器学习的逻辑回归方程,该方程将分析所有输入并提供 0 到 1 之间的分数。如果分数大于 0 但小于 0.5,则电子邮件将被归类为垃圾邮件,并且如果分数在 0.5 到 1 之间,则邮件被标记为非垃圾邮件。

示例 2:识别信用卡欺诈

使用逻辑回归方程或基于逻辑回归的机器学习模型,银行可以迅速识别欺诈性信用卡交易。 为此,PoS、卡号、交易价值、交易数据等详细信息被输入逻辑回归模型,该模型决定给定交易是真实的 (0) 还是欺诈的 (1)。 例如,如果购买价值过高并且偏离典型值,则回归模型会分配一个值(介于 0.5 和 1 之间),将交易归类为欺诈。

机器学习中逻辑回归的工作

逻辑回归通过使用 Sigmoid 函数将预测映射到输出概率来工作。 此函数是一条 S 形曲线,绘制介于 0 和 1 之间的预测值。然后将值绘制到 Y 轴顶部和底部的边缘,使用 0 和 1 作为标签。 然后,根据这些值,可以对自变量进行分类。

下面是 Sigmoid 函数的样子:

Sigmoid 函数基于以下等式:

y=1/(1+e^x)

其中 e^x= 值为 2.718 的指数常数。

如果 x 被认为是负数,则上面的 Sigmoid 函数方程将预测值 (y) 提供为零。 如果 x 是一个很大的正数,则预测值接近 1。

在 Python 中构建逻辑回归模型

让我们来看看在 Python 中构建逻辑回归模型的过程。 为此,让我们使用社交网络数据集进行回归分析,并尝试预测个人是否会购买特定汽车。 这是步骤的外观。

第 1 步:导入库和数据集

它首先导入构建模型所需的库。 这包括 Pandas、Numpy 和 Matplotlib。 我们还需要导入我们将使用的数据集。 代码如下所示:

将 numpy 导入为 np

将 matplotlib.pyplot 导入为 pt

将熊猫导入为 pd

数据集 = pd.read_csv('Social_Network.csv')

第 2 步:拆分为因变量和自变量

现在是时候将输入的数据拆分为因变量和自变量了。 对于这个例子,我们将在个人估计工资和年龄作为自变量期间将购买价值作为因变量。

x = dataset.iloc[:, [2,3]].values

y = dataset.iloc[:, 4].values

第 3 步:将数据集拆分为训练集和测试集

必须将数据集拆分为特定的训练和测试集。 训练集将训练逻辑回归方程,而测试数据将用于验证模型的训练并对其进行测试。 Sklearn 用于将给定的数据集分成两组。 我们通过指定我们希望为训练和测试留出的数据量来使用 train_split_function。

从 sklearn.model_selection 导入 train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.33, random_state = 0)

如您所见,我们将测试大小定义为完整数据集的 33%。 因此,剩下的 66% 将用作训练数据。

第 4 步:缩放

为了提高 Logistic 回归模型的准确性,您需要重新调整数据并带来本质上可能变化很大的值。

从 sklearn.preprocessing 导入 StandardScaler

sc_X = 标准缩放器()

X_train = sc_X.fit_transform(X_train)

X_test = sc_X.transform(X_test)

第 5 步:构建逻辑回归模型

完成后,您需要构建逻辑回归模型并将其放入训练集中。 首先从 Sklearn 导入逻辑回归算法。

从 sklearn.linear_model 导入 LogisticRegression

然后,创建一个实例分类器来拟合训练数据。

分类器 = LogisticRegression(random_state=0)

分类器.fit(x_train, y_train)

接下来,在测试数据集上创建预测。

y_pred = 分类器.predict(x_test)

最后,使用混淆矩阵检查逻辑回归模型的性能。

从 sklearn.metrics 导入混淆矩阵

厘米 = 混淆矩阵(y_test,y_pred)

acc = accuracy_score(y_test, y_pred)

打印(acc)

打印(厘米)

现在,您可以使用 Matplotlib 可视化整个数据集,包括训练集和测试集!

综上所述

逻辑回归是有助于开发机器学习模型和算法的工具之一。 同样,根据手头的用例,还可以使用多种其他算法。 但是,要知道使用哪种算法,您应该了解所有可能的选项。 只有这样,您才能为您的数据集选择最合适的算法。

查看我们的机器学习执行 PG 计划,该计划旨在让您从零开始,帮助您将技能提升到最高水平 - 以便您能够解决任何现实世界的机器学习问题。 查看不同的课程并注册适合您的课程。 加入 upGrad 并体验全面的学习环境和安置支持!

机器学习的逻辑回归有多少种可能?

逻辑回归大致分为三种类型:
1.二进制
2.多项式
3. 序数。

什么是机器学习中的逻辑回归?

逻辑回归是一种监督学习方法,用于寻找和建立因变量和自变量之间的最佳拟合关系,以做出正确的未来预测。

机器学习的逻辑回归使用什么功能?

机器学习的逻辑回归使用 Sigmoid 函数来找到最佳拟合曲线。