逻辑回归是一种监督式机器学习算法,用于分类任务,其目标是预测实例是否属于给定类的概率。 逻辑回归是一种统计算法,用于分析两个数据因素之间的关系。
什么是逻辑回归?
逻辑回归用于二元分类,我们使用 sigmoid 函数,该函数将输入作为自变量并产生介于 0 和 1 之间的概率值。
例如,我们有两个类,类 0 和类 1,如果输入的逻辑函数值大于 0.5(阈值),那么它属于类 1,否则它属于类 0。它被称为回归,因为它是线性回归的扩展,但主要用于分类问题。
要点:
- 逻辑回归预测分类因变量的输出。因此,结果必须是分类值或离散值。
- 它可以是 Yes 或 No、0 或 1、true 或 False 等,但它不是给出 0 和 1 的确切值,而是给出介于 0 和 1 之间的概率值。
- 在 Logistic 回归中,我们拟合的不是回归线,而是“S”形的逻辑函数,它预测两个最大值(0 或 1)。
逻辑函数 – Sigmoid 函数
- sigmoid 函数是一种数学函数,用于将预测值映射到概率。
- 它将任何实际值映射到 0 和 1 范围内的另一个值。逻辑回归的值必须在 0 和 1 之间,不能超过这个限制,所以它形成了一条类似于“S”形式的曲线。
- S 型曲线称为 Sigmoid 函数或逻辑函数。
- 在逻辑回归中,我们使用阈值的概念,它定义了 0 或 1 的概率。如高于阈值的值趋于1,低于阈值的值趋于0。
逻辑回归的类型
根据类别,逻辑回归可以分为三种类型:
- 二项式:在二项式 Logistic 回归中,只能有两种可能的因变量类型,例如 0 或 1、通过或失败等。
- 多项式:在多项式 Logistic 回归中,因变量可以有 3 种或更多可能的无序类型,例如“猫”、“狗”或“羊”
- 序数:在序数 Logistic 回归中,可以有 3 种或更多可能的有序类型的因变量,例如“低”、“中”或“高”。
逻辑回归的假设
我们将探讨逻辑回归的假设,因为理解这些假设对于确保我们使用模型的适当应用非常重要。假设包括:
- 独立观测值:每个观测值都独立于另一个观测值。这意味着任何输入变量之间都没有相关性。
- 二元因变量:它假设因变量必须是二元或二分变量,这意味着它只能采用两个值。对于两个以上的类别,使用 SoftMax 函数。
- 自变量与对数赔率的线性关系:自变量与因变量的对数赔率之间的关系应该是线性的。
- 无异常值:数据集中不应有异常值。
- 样本量大:样本量足够大
逻辑回归中涉及的术语
以下是逻辑回归中涉及的一些常用术语:
- 自变量:应用于因变量预测的输入特征或预测因子。
- 因变量:逻辑回归模型中的目标变量,我们试图预测它。
- 逻辑函数:用于表示自变量和因变量如何相互关联的公式。逻辑函数将输入变量转换为介于 0 和 1 之间的概率值,该值表示因变量为 1 或 0 的可能性。
- 赔率:它是某事发生与未发生的某事的比率。 它与概率不同,因为概率是发生的事情与可能发生的一切的比率。
- 对数赔率:对数赔率,也称为 logit 函数,是赔率的自然对数。在逻辑回归中,因变量的对数几率被建模为自变量和截距的线性组合。
- 系数:逻辑回归模型的估计参数,显示自变量和因变量之间的相互关系。
- 截距:逻辑回归模型中的常数项,表示所有自变量都等于零时的对数几率。
- 最大似然估计:用于估计逻辑回归模型系数的方法,该方法使给定模型观察数据的可能性最大化。
逻辑回归如何工作?
逻辑回归模型使用 sigmoid 函数将线性回归函数连续值输出转换为分类值输出,该函数将输入的任何实值自变量集映射到 0 到 1 之间的值。此函数称为逻辑函数。
让独立输入功能为:
因变量是 Y,只有二进制值,即 0 或 1。
然后,将多线性函数应用于输入变量 X。
这里 是 X 的第 i 个观测值, 是权重或系数,b 是偏置项,也称为截距。简单地说,这可以表示为权重和偏差的点积。
我们上面讨论的都是线性回归。
Sigmoid 函数
现在我们使用 sigmoid 函数,其中输入为 z,我们找到 0 和 1 之间的概率,即预测的 y。
如上图所示,图形 sigmoid 函数将连续变量数据转换为概率,即介于 0 和 1 之间。
- 趋向于 1 作为
- 趋向于 0 作为
- 始终介于 0 和 1 之间
其中,成为类的概率可以衡量为:
𝑃(𝑦=0)=1−𝜎(𝑧)
逻辑回归方程
奇数是某事发生与未发生的某事的比率。它与概率不同,因为概率是发生的事情与可能发生的一切的比率。太奇怪了:
在奇数上应用自然对数。则对数奇数为:
那么最终的逻辑回归方程将是:
逻辑回归的似然函数
预测概率为:
- 对于 y=1 预测概率为:p(X;b,w) = p(x)
- 对于 y = 0,预测概率为:1-p(X;b,w) = 1-p(x)
两面采用天然原木
对数似然函数的梯度
为了找到最大似然估计值,我们将 w.r.t w,
逻辑回归的代码实现
二项式 Logistic 回归:
目标变量只能有 2 种可能的类型:“0”或“1”,可能表示“赢”与“输”、“通过”与“失败”、“死”与“活”等,在这种情况下,使用 sigmoid 函数,这在上面已经讨论过了。
根据模型的要求导入必要的库。此 Python 代码演示如何使用乳腺癌数据集实现用于分类的逻辑回归模型。
# import the necessary libraries
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# load the breast cancer dataset
X, y = load_breast_cancer(return_X_y=True)
# split the train and test dataset
X_train, X_test,\
y_train, y_test = train_test_split(X, y,
test_size=0.20,
random_state=23)
# LogisticRegression
clf = LogisticRegression(random_state=0)
clf.fit(X_train, y_train)
# Prediction
y_pred = clf.predict(X_test)
acc = accuracy_score(y_test, y_pred)
print("Logistic Regression model accuracy (in %):", acc*100)
输出:
Logistic Regression model accuracy (in %): 95.6140350877193
多项式逻辑回归:
目标变量可以有 3 种或更多可能的类型,这些类型没有排序(即类型没有定量意义),例如“疾病 A”与“疾病 B”与“疾病 C”。
在这种情况下,使用 softmax 函数代替 sigmoid 函数。在多项式逻辑回归中,输出变量可以有两个以上可能的离散输出。考虑数字数据集。
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model, metrics
# load the digit dataset
digits = datasets.load_digits()
# defining feature matrix(X) and response vector(y)
X = digits.data
y = digits.target
# splitting X and y into training and testing sets
X_train, X_test,\
y_train, y_test = train_test_split(X, y,
test_size=0.4,
random_state=1)
# create logistic regression object
reg = linear_model.LogisticRegression()
# train the model using the training sets
reg.fit(X_train, y_train)
# making predictions on the testing set
y_pred = reg.predict(X_test)
# comparing actual response values (y_test)
# with predicted response values (y_pred)
print("Logistic Regression model accuracy(in %):",
metrics.accuracy_score(y_test, y_pred)*100)
输出:
Logistic Regression model accuracy(in %): 96.52294853963839
线性回归和逻辑回归之间的差异
线性回归和逻辑回归之间的区别在于,线性回归输出是可以是任何的连续值,而逻辑回归预测实例是否属于给定类的概率。
线性回归 | 逻辑回归 |
线性回归用于使用一组给定的自变量来预测连续因变量。 | 逻辑回归用于使用一组给定的自变量来预测分类因变量。 |
线性回归用于求解回归问题。 | 它用于解决分类问题。 |
在这里,我们预测了连续变量的值 | 在此,我们预测了分类变量的值 |
在这一点上,我们找到了最合适的生产线。 | 在这里,我们找到了 S 曲线。 |
采用最小二乘法估计精度。 | 最大似然估计方法用于准确率的估计。 |
输出必须是连续值,例如价格、年龄等。 | 输出必须是分类值,例如 0 或 1、Yes 或 No 等。 |
它需要因变量和自变量之间的线性关系。 | 它不需要线性关系。 |
自变量之间可能存在共线性。 | 自变量之间不应存在共线性。 |
常见问题 (FAQ)
什么是机器学习中的逻辑回归?
逻辑回归是一种统计方法,用于开发具有二元因变量(即二元)的机器学习模型。逻辑回归是一种统计技术,用于描述数据以及一个因变量与一个或多个自变量之间的关系。
逻辑回归的三种类型是什么?
逻辑回归分为三种类型:二进制回归、多项式回归和有序回归。它们在执行和理论上有所不同。二元回归涉及两种可能的结果:是或否。当有三个或更多值时,使用多项式逻辑回归。
为什么分类问题使用逻辑回归?
逻辑回归更易于实现、解释和训练。它可以非常快速地对未知记录进行分类。当数据集是线性可分离的时,它表现良好。模型系数可以解释为特征重要性的指标。
逻辑回归与线性回归的区别是什么?
线性回归用于预测连续结果,而逻辑回归用于预测观测值落入特定类别的可能性。逻辑回归采用 S 形逻辑函数来映射 0 到 1 之间的预测值。
逻辑函数在逻辑回归中扮演什么角色?
逻辑回归依赖于逻辑函数将输出转换为概率分数。此分数表示观测值属于特定类的概率。S 形曲线有助于对数据进行阈值设置并将数据分类为二元结果。