介绍简单的线性回归和逻辑回归

介绍简单的线性回归和逻辑回归

介绍

线性回归和逻辑回归是深度学习中最基础的模型之一,也是解决许多实际问题的重要工具。线性回归和逻辑回归均属于监督学习中的模型。线性回归模型用于连续数值型数据的预测,逻辑回归模型用于分类问题。

在本教程中,我们将介绍线性回归和逻辑回归的基本概念,并用Python代码来实现简单的线性回归和逻辑回归模型。

线性回归

基本概念

线性回归是一种用于连续数值型数据的建模方法,主要用于预测因变量与一个或多个自变量之间的关系。在单变量线性回归中,模型假设因变量和一个自变量之间存在线性关系。 线性回归模型可以用下面的方程表示:
y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β n x n + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_n x_n+ \epsilon y=β0+β1x1+β2x2+...+βnxn+ϵ
ϵ ϵ ϵ其中, y y y 是因变量, x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn 是自变量, β 0 , β 1 , β 2 , . . . , β n \beta_0, \beta_1, \beta_2, ..., \beta_n β0,β1,β2,...,βn 是模型的系数,常常称为权重或参数, ϵ \epsilon ϵ是误差项,代表由于种种原因,导致的真实值和预测值之间的差异。在训练模型时,我们的目标是学习真实值和预测值之间的关系,即学习得到最合适的系数 β 0 , β 1 , β 2 , . . . , β n \beta_0, \beta_1, \beta_2, ..., \beta_n β0,β1,β2,...,βn

我们的目标是找到一组参数 β 0 , β 1 , β 2 , . . . , β n \beta_0, \beta_1, \beta_2, ..., \beta_n β0,β1,β2,...,βn,使得模型能够最好地预测因变量的值。常用的方法是最小二乘法。

Python实现

我们将使用scikit-learn库中的线性回归模型来实现我们的线性回归模型。

# 导入必要的包
from sklearn.linear_model import LinearRegression
import numpy as np

# 创建数据
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([3, 5, 7, 9, 11])

# 创建线性回归对象
lr = LinearRegression()

# 训练模型
lr.fit(x, y)

# 预测
x_test = np.array([6]).reshape(-1, 1)
print(lr.predict(x_test))

输出结果为:

[13.]

逻辑回归

基本概念

逻辑回归是一种广泛应用于分类问题的模型。逻辑回归模型使用 sigmoid 函数将连续变量转换为 0 或 1,从而将分类问题转化为回归问题。逻辑回归模型的概率形式可以表示为:
p ( y = 1 ∣ x ) = 1 1 + e − ( w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n ) p(y=1 \mid x) = \frac{1}{1 + e^{-(w_0 + w_1 x_1 + w_2 x_2 + ... + w_n x_n)}} p(y=1x)=1+e(w0+w1x1+w2x2+...+wnxn)1
其中, p ( y = 1 ∣ x ) p(y=1 \mid x) p(y=1x)表示在给定特征 x x x y = 1 y=1 y=1的概率, w 0 , w 1 , w 2 , . . . , w n w_0,w_1,w_2,...,w_n w0,w1,w2,...,wn是回归系数, x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn是特征。 我们的目标是找到一组最好的模型参数 w 0 , w 1 , w 2 , . . . , w n w_0,w_1,w_2,...,w_n w0,w1,w2,...,wn

我们可以将表达式改写为以下形式:
l o g i t ( p ( y = 1 ∣ x ) ) = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n logit(p(y=1 \mid x)) = w_0 + w_1 x_1 + w_2 x_2 + ... + w_n x_n logit(p(y=1x))=w0+w1x1+w2x2+...+wnxn
其中, l o g i t logit logit 函数表示如下:
l o g i t ( x ) = l o g ( x 1 − x ) logit(x) = log(\frac{x}{1-x}) logit(x)=log(1xx)

Python实现

我们将使用scikit-learn库中的逻辑回归模型来实现我们的逻辑回归模型。

# 导入必要的包
from sklearn.linear_model import LogisticRegression
import numpy as np

# 创建数据(使用二元变量作为因变量)
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)
y = np.array([0, 0, 1, 1, 1])

# 创建逻辑回归对象
lr = LogisticRegression()

# 训练模型
lr.fit(x, y)

# 预测
x_test = np.array([6]).reshape(-1, 1)
print(lr.predict(x_test))

输出结果为:

[1]

共同点和不同点

共同点:

  • 线性回归和逻辑回归都是监督学习中常用的模型;
  • 线性回归和逻辑回归都是基于特征与目标之间的关系进行建模的;
  • 线性回归和逻辑回归都是基于梯度下降等算法进行优化的;
  • 线性回归和逻辑回归都依赖于一定的假设(线性假设和sigmoid函数假设)。

不同点:

  • 线性回归的目标是预测连续值,而逻辑回归的目标是预测离散类别;
  • 线性回归使用的是线性假设,逻辑回归使用的是sigmoid函数假设;
  • 线性回归使用的是最小二乘法或梯度下降等方法进行模型优化,逻辑回归使用的是极大似然估计或梯度下降等方法进行模型优化。

总结

在本教程中,我们介绍了线性回归和逻辑回归的基本概念,并用Python代码来实现简单的线性回归和逻辑回归模型。在实际使用中,我们可以使用更复杂的模型来解决实际问题,以提高模型的预测精度。

猜你喜欢

转载自blog.csdn.net/qq_36693723/article/details/130389623
今日推荐