大白话5分钟带你走进人工智能-第十六节逻辑回归之分类的原因(1)

本文深入探讨逻辑回归算法,解释为何此算法适用于分类问题而非回归。通过对比多元线性回归,阐述逻辑回归如何避免离群值影响,并引入Sigmoid曲线实现更优的分类效果。

                                                              第十六节逻辑回归做分类的原因(1)

从本节开始,我们讲解一个新的算法,逻辑回归。多元性回归是做回归的,它真的是回归这个领域里面的一个算法。对于有监督机器学习来说,除了做回归还可以做分类。逻辑回归是一个分类的算法。回归跟分类它俩都是有监督的机器学习,有什么区别呢?区别在于y。回归的y是负无穷到正无穷之间的如果是分类,我们的这个地方的y就得是,一般从0开始,0是第1个分类,1是第2个分类,2是第3个分类,3是第4个分类,它是一个离散的。所以首先你拿了一份数据,得问自己这份数据是做什么的,如果是做回归,就得问谁是y,谁是目标。发现y之后,如果是回归,它必须得是连续的;如果是分类,如果y不是零散的,应该把它变成零散的。

logistic regression,逻辑回归,有些书上也会叫做罗基斯特回归,虽然它叫回归,但它是做分类的,它跟我们的回归有什么关系呢?我们从简单开始来说,二分类,二分类的y分类号只有两个,一个是0,还有一个是1,通常0称为叫负例,1称为叫正例。也就是说y这一列,它要么就是0,要么就是1。y=W^T*X,用前面的多元线性回归,能不能去做分类?

比如下面这张图:

横轴Tumor Size,肿瘤的大小,纵轴,Malignant,恶性的意思。 y要么是0,要么就是1,每个红色的x是每个样本,每个点相当于样本点位置。如果我们用多元线回归,就是用一条直线尽可能穿过一个个的点,就是去拟合,使得mse变小。图中粉色的线是我们拟合的曲线。怎么样把数据点分开?如果是一维的(一维就是一根直线一个轴),切成两半,只需要找一个点就可以切开。如果这条直线的区间是负无穷到正无穷,那么这个点是零。   如果升高维度是二维的,有两个轴,要把一个平面切成两半,你需要一个直线,但直线的位置就要根据已有的点来定了。区间为正无穷到负无穷的一维直线可以用0的位置来区分。因为我们拟合的直线y=W^T*X也是一条一维的直线,我们要把这条直线且分开,只需要找到一个X去乘以已有的w模型,可以使W^T*X=0,相当于这根线的这个区分点就找到了。此时这个分界点所对应的横轴的X值就是W^T*X里面的X。我们就可以用它做分类,可以这样表述,肿瘤的大小,小于一定的值的时候,我们就可以标签y赋值为0,说明它没有坏。如果肿瘤大小,大于一定值的时候,我们就就可以标签y赋值为1,说明这个地方有病变。所以如果用多元线性回归做分类的话,我们的步骤是拟合现在已有的点,找到一条拟合的直线,然后我们找到一个X可以使得W^T*X=0的时候,这个X就可以作为拟合直线的一个分界点。未来来一条新的数据X的时候,跟已有的x比较,看它是大于还是小于分界点X来做分类。

所以说多元线性回归,也能做分类。但是为什么在众多的算法当中,人们没有把多元线性回归变成一个分类的算法去应用?原因就因为下面这张图。

这张图就说出了一个它没有做一个分类算法的本质原因,因为它特别容易受到一个离群值的影响。如果已有的数据点是这张图里面所有的X。异常值这个点就会把我们的整个的拟合的直线给它拉过去。这个时候如果我们要找到一个W^T*X=0的情况,我们找的X就是上图中这个分界点X了,对于原来的数据来看,就会有两个数据点分错了,在图中已经标明出来。

对于一维来说,我们找的是分界点去分类;对于二维数据来说,我们找的是一条直线去区分。所以对二维数据来说,如果有一个异常点,这个直线就不太满足了。我们应该怎么去办?实际上第一张图,分界点X对应的绿色的分界线是挺好的,能区分正确的数据分类。当多了异常值之后,分界点X对应的绿色的分界线是不太好。所以我们的想法是找到一个好的分界线。

当多了异常值之后。如果下图中原本正确的分界点的位置来一条分界线(绿色虚线分界线),其对应的这个分界点会和之前一样也能将数据分开。

怎么才能让你原来的线性拟合可以变成分界点在这?去掉离群值肯定可以,是对数据进行变化。如果是算法变化,假如我们不用直线去拟合,我们用曲线去拟合,用什么样的曲线可以解决这个问题?如果是上图中S形的曲线,这个时候分界点是W^T*X=0,这个值就可以把你的负例和正例很好的分开。

所以就会发现,你的模型来拟合已有数据的时候,不能全都用直线,对于这个例子来说是S形的曲线比较好,于是乎人们就琢磨出了另外一个曲线,sigmoid曲线,用曲线去拟合已有点,然后找到分界的位置去分类。 因此S曲线就是逻辑回归。为什么叫回归?因为是用S曲线去拟合原来的点,但它的目标是找到一个分界点,对一维来说去做分类而已,所以它叫逻辑回归,是去做分类的。

### 逻辑回归的简单易懂解释 逻辑回归是一种用于分类问题的机器学习算法,尽管名字中有“回归”二字,但它实际上主要用于解决分类任务。其核心思想是通过一个特殊的函数——Sigmoid函数,将输入的数据映射到0到1之间的概率值[^2]。 #### 数据的特点 在逻辑回归中,目标变量 \( y \) 是离散的,通常用来表示类别标签。例如,在二分类问题中,\( y \) 的取值可能是 {0, 1} 或 {-1, 1},分别代表不同的类别。这与线性回归不同,因为在后者中,目标变量通常是连续的数值[^5]。 #### Sigmoid 函数的作用 逻辑回归的关键在于引入了 Sigmoid 函数,它可以将任意实数转换为介于 0 和 1 之间的值。这一特性使得逻辑回归非常适合处理分类问题,因为它可以将模型的输出解释为某个类别的概率。Sigmoid 函数的形式如下: \[ P(y=1|x) = \frac{1}{1 + e^{-z}} \] 其中,\( z = w^T x + b \),即输入特征 \( x \) 与权重 \( w \) 的线性组合加上偏置项 \( b \)[^2]。 #### 工作流程 假设有一个简单的二分类问题,比如预测一个人是否会购买一件商品(买或不买)。逻辑回归会先计算输入特征的线性组合 \( z \),再将其代入 Sigmoid 函数得到一个概率值。如果这个概率大于设定的阈值(如 0.5),则认为属于类别 1(购买);否则属于类别 0(不购买)[^1]。 #### 学习过程 为了让模型更好地拟合数据,逻辑回归采用了一种优化算法来调整参数 \( w \) 和 \( b \),常见的方法包括梯度下降和牛顿法等。这些算法的目标是最小化损失函数,从而使模型的预测结果更加接近真实标签[^3]。 下面是一个简单的 Python 实现示例,展示如何使用逻辑回归进行二分类: ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # 创建模拟数据集 X, y = make_classification(n_samples=100, n_features=2, random_state=42) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化逻辑回归模型 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 输出模型的预测结果 predictions = model.predict(X_test) print("Predictions:", predictions) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L先生AI课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值