逻辑回归知识点讲解
逻辑回归知识点讲解
知识导图
逻辑回归
├── 简介模块
│ ├── 应用场景:二分类任务(疾病预测、贷款审批、情感分析、广告点击率等)
│ └── 数学基础:Sigmoid函数、概率基础(边际/联合/条件概率)
├── 原理模块
│ ├── 预测流程:线性输出转概率,阈值判断完成分类
│ ├── 损失函数:二分类交叉熵损失,衡量分布差异
│ └── 优化逻辑:伯努利分布、极大似然估计、损失转换简化计算
└── 实战模块
├── 案例:癌症分类预测(缺失值处理、标准化、数据集划分)
└── API:sklearn.linear_model.LogisticRegression()
核心名词解释
-
Sigmoid 函数:逻辑回归的激活函数,可将任意连续实数映射到 (0,1) 区间,从而将线性回归的输出转换为概率值,具备单调递增、拐点在 (0,0.5) 的特性。
-
边际概率:描述单一事件发生的可能性,不考虑其他事件的影响。
-
联合概率:描述两个或多个独立事件同时发生的概率。
-
条件概率:描述在一个事件已发生的条件下,另一个事件发生的概率,体现事件间的依赖关系。
-
二分类交叉熵损失函数:衡量真实标签分布与模型预测概率分布之间差异的指标,最小化该损失等价于最大化观测数据的对数似然性。
-
伯努利分布:描述二分类问题中样本的概率分布,即样本取 0 或 1 的概率分布。
-
极大似然估计:一种参数估计方法,核心是在已知观测数据的情况下,选择使得这些数据出现概率最大的参数值。
一、逻辑回归简介
本章节学习目标:
知道逻辑回归的应用场景
复习逻辑回归应用到的数学知识
1. 应用场景
逻辑回归是解决二分类问题的经典算法,常见的应用场景包括:
-
疾病预测:判断检测结果是阳性还是阴性
-
银行贷款审批:判断是否给用户放贷
-
情感分析:判断文本的情感是正面还是负面
-
广告点击率预测:判断用户是否会点击广告
除了上述场景,逻辑回归还可以应用在其他所有二分类的任务中
2. 数学基础
2.1 Sigmoid 函数
逻辑回归通过将线性回归的输出映射到 (0,1) 区间,使用 Sigmoid 函数将连续值转换为概率值,然后根据概率值进行分类预测。
Sigmoid 函数的核心特性:
-
映射能力:可以将取值范围为(−∞,+∞)(-\infty, +\infty)(−∞,+∞)的输入,映射到(0,1)(0, 1)(0,1)的输出区间
-
单调性:是单调递增函数,保证输入越大,输出的概率值越高
-
拐点特性:在x=0x=0x=0时,函数值为 0.5,此处的斜率最大
-
分类规则:
-
当f(x)>0.5f(x)>0.5f(x)>0.5时,预测结果为 1
-
当f(x)<0.5f(x)<0.5f(x)<0.5时,预测结果为 0
-


2.2 概率基础
概率是描述事件发生可能性的指标,在逻辑回归中常用的概率类型有三种,三者的对比如下:
| 概率类型 | 定义 | 记法 | 核心特点 |
|---|---|---|---|
| 边际概率 | 单一事件发生的可能性 | 记作P(A) 或者 P(B) | 不考虑其他事件的影响,描述单个事件本身的发生概率 |
| 联合概率 | 两个或多个独立事件同时发生的概率 | 记作 P(A∩B) 或 P(A,B) | 描述多个事件共同发生的情况,独立事件的联合概率可通过边际概率相乘得到 |
| 条件概率 | 事件 A 已发生的条件下,事件 B 发生的概率 | P(B∣A) | 体现事件间的依赖关系,以已知发生的事件为前提计算目标事件的概率 |

章节小结
本章节的核心知识点总结:
-
逻辑回归的作用:解决二分类问题
-
Sigmoid 激活函数的作用:把数值映射到 (0,1)区间,用于分类预测
-
概率的分类:
-
边际概率:对应独立事件
-
条件概率:对应事件的依赖性
-
联合概率:对应多个事件同时发生
-
二、逻辑回归原理
本章节学习目标:
理解逻辑回归算法的流程
知道逻辑回归的原理和优化操作
1. 预测流程
**逻辑回归的基本思想是:将线性回归的输出,作为逻辑回归的输入,最终输出 (0,1) 之间的概率值,以此完成分类任务。**简单来说,逻辑回归是一种分类模型,它基于线性回归的结果,通过 Sigmoid 函数转换为概率,再根据设定的阈值完成分类。
举个例子,当我们设定阈值为 0.6 时:
-
如果模型输出的概率大于 0.6,就预测为正类
-
如果小于 0.6,就预测为负类

2. 损失函数:二分类交叉熵
交叉熵是衡量两个概率分布(真实分布yyy和预测分布ppp)差异的指标,最小化交叉熵损失函数,实际上就是在寻找能够最大化观测数据的对数似然性的模型。
交叉熵损失的计算是对所有样本的损失求和。

3. 优化逻辑:似然函数与极大似然估计
3.1 伯努利分布
逻辑回归处理的是二分类问题,这类问题的样本服从伯努利分布:

-
pip_ipi:表示每个样本被分类正确时的概率
-
yiy_iyi:表示每个样本的真实类别(0 或 1)
3.2 极大似然估计
基于伯努利分布,我们的问题可以转化为:寻找使得联合概率事件最大时的权重参数w、bw、bw、b,这就是极大似然估计。
其核心思想是:在已知观测数据的情况下,选择使得这些数据出现概率最大的参数值。
3.3 交叉熵与似然函数的关系
伯努利分布的似然函数,正是逻辑回归交叉熵损失的来源,我们可以通过两个转换,将最大化似然的问题,转化为最小化交叉熵的问题:
-
问题转换:把最大化似然函数的问题,变为最小化交叉熵损失的问题(取负对数)
-
计算转换:把连乘问题变为连加问题,简化计算,同时避免数值下溢

章节小结
本章节的核心知识点总结:
-
逻辑回归核心思想:解决分类问题,把线性回归的输出作为逻辑回归的输入
-
逻辑回归的优化操作:极大化似然函数取负对数得到最小化交叉熵损失,这种转换让计算更简单,也更稳定
三、API 与实战案例
本章节学习目标:
知道逻辑回归的 API
动手实现癌症分类案例
1. 癌症分类预测案例
我们以癌症分类预测为例,来实践逻辑回归的应用。
数据描述
该数据集的基本信息:
-
共 699 条样本,11 列数据:
-
第 1 列:用于检索的 id
-
中间 9 列:与肿瘤相关的医学特征
-
最后 1 列:肿瘤类型的数值
-
-
数据中包含 16 个缺失值,用
?标出 -
标签含义:2 表示良性肿瘤,4 表示恶性肿瘤

2. API 与代码实现
在 sklearn 中,逻辑回归的 API 为:sklearn\.linear\_model\.LogisticRegression\(\)
完整的代码实现如下:
*# 导包*
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler *#sklearn.preprocessing(预处理):作用:给数据 “整容、标准化、清洗”,让模型更好训练。*
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score *#sklearn.metrics(评估指标):模型训练完,给模型打分、评判好坏。*
*# 1.获取数据*
df =pd.read_csv('data/breast-cancer-wisconsin.csv')
print(df.shape) *# (699, 11)*
print(df.head()) *# 默认查看前5行数据*
print(df.columns) *# 查看所有的列名*
print('-------')
*# 2.数据预处理(异常值、缺失值、数据切割...)*
df.replace('?',np.nan,inplace=True) *# 把数据集中表示缺失值的 ?,替换成 Pandas 标准的缺失值 np.nan,方便后续处理*
df.dropna(inplace=True) *#删除所有包含 np.nan 的行,得到一个无缺失值的干净数据集。*
print(df.shape)
print('-----------')
*# 先获取所有得到的数据*
x=df.iloc[:,1:-1]*#包左不包右 ## 取特征:所有行,第1列 ~ 倒数第2列*
y=df.iloc[:,-1] *# 取标签:所有行,最后一列*
*# 数据切割*
X_train, X_test, y_train, y_test = train_test_split(
x, y, test_size=0.2, random_state=22)
*# 3.特征工程(标准化...)*
ss = StandardScaler()
x_train = ss.fit_transform(X_train)
x_test =ss.transform(X_test)
*# 4.模型选择*
model = LogisticRegression()
*# 5.模型训练*
model.fit(x_train,y_train)
*# 6.模型评估/预测*
*# 查看准确率:方式1 底层先自动预测再评估*
print(model.score(x_test,y_test))
*# 查看准确率:方式2 手动先预测,在评估*
y_predict = model.predict(x_test)
print(accuracy_score(y_test,y_predict))
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)