机器学习 —— 逻辑回归(浅析与实例)

目录

一、概念

二、数学知识

[1.sigmoid 函数](#1.sigmoid 函数)

2.概率

[<1> 边际概率 ------](#<1> 边际概率 ——)

[<2> 联合概率 ------](#<2> 联合概率 ——)

[<3> 条件概率 ------](#<3> 条件概率 ——)

[3、逻辑回归原理 ------ 交叉熵损失函数](#3、逻辑回归原理 —— 交叉熵损失函数)

[例子: 损失函数手工计算](#例子: 损失函数手工计算)

[逻辑函数原理 ------ 似然函数](#逻辑函数原理 —— 似然函数)

1.伯努利分布

2.伯努利分布函数

3.交叉熵和似然函数关系

举例:

总结:

三、逻辑回归模型实例

需求

1.获取数据

[2.数据处理 缺失值](#2.数据处理 缺失值)

3.特征工程

4.模型训练

5.模型预测

6.模型评估


一、概念

解决的是分类问题

应用场景:预测疾病(阴性、阳性)、银行信任贷款(放贷、不放贷)、预测广告点击率(点击、不点击)等等。

逻辑回归核心思想(解决二分类的利器

比如:

学生成绩(输入成绩、考试分数) => 线性函数

=> 把线性回归的输出作为sigmoid函数的输入

=> P 设置概率,比如P > 0.5 通过, P <= 0.5 不通过

将线性回归的输出映射到**(0,1)**区间,不一定是0.5

线性回归输出,当做逻辑回归的****输入 ,然后讲数据映射到区间上,做分类操作

二、数学知识

1.sigmoid 函数

作用

数学性质

单调递增函数

拐点在x=0 时 y = 0.5,斜率最大

当 f(x) > 0.5 时,预测结果维1

当f(x) < 0.5 时,预测结果为0

导函数

f(x). 概率值

线性回归的输出

逻辑回归的假设函数

例子:逻辑回归预测过程(阈值为0.6)

阈值0.6

预测结果不好,调整特征。

2.概率

<1> 边际概率 ------

描述的是单一事件发生的可能性:

记作P(A) 或者 P(B)

事件A事件B发生的概率

<2> 联合概率 ------

描述的是两个或多个独立事件同时发生的概率:

记作P(A∩B)或者P(A,B)

A交B的概率 A和B的联合概率

<3> 条件概率 ------

描述的是在事件A已发生的条件下,事件B发生的概率:

记作P(B | A)

在事件A发生的情况下,事件B发生概率

场景1:联合概率

事件A:周一早上堵车,P(A) = 0.7

事件B:周二早上堵车,P(B) = 0.7

P(A∩B) = 0.7 * 0.7 = 0.49 概率

场景2:条件概率

事件A:周一早上堵车,P(A) = 0.7

事件B:周一中午堵车,切已知P(B | A)= 0.3 (即早上堵车时,中午堵车概率0.3)

联合概率 => P(A∩B)= P(A) * P(B | A)= 0.7 * 0.3 = 0.21

公式:P (B | A)= P (A∩B)/ P(A)


3、逻辑回归原理 ------ 交叉熵损失函数

(二分类 (0,1))

损失函数:Loss(L)所有的样本的损失值越小越好

yi : 第i个真实值标签

m:样本总数

pi:第i个样本的预测值

yi: 第i个真实标签 = 1时

如果预测概率(pi)接近于1 log(1)=0 损失接近于0 很好,

如果预测概率(pi)接近于0 log(0)=趋近于负无穷,损失非常大

yi: 第i个真实标签 = 0时

如果预测概率(pi)接近于0 log(1)=0 损失接近于0 很好,

如果预测概率(pi)接近于1 log(0)=趋近于负无穷,损失非常大

例子: 损失函数手工计算

逻辑函数原理 ------ 似然函数

1.伯努利分布

描述单次二分类实验结果的离散概率分布,其随机变量X只有两种取值:

X = 1(表示"成功",概率为p)

X = 0 (表示"失败",概率为1-p)

2.伯努利分布函数

假设:有样本(x1,y1),(x2,y2)....,(xn,yn),n个样本都预测正确的概率就是伯努利分布的似然函数

1.pi 表示每个样本被分类正确时候的概率

  1. yi 表示每个样本的真实类别(0 或 1)

总体是联合概率,每一项是条件概率。

问题转化为:让联合概率 事件最大时,估计w、b的权重参数,这就是极大似然估计(Maximum Likelihood Estimation)

核心思想:在已知观测数据的情况下,选择使用这些数据出现概率最大的参数值。

3.交叉熵和似然函数关系

伯努利分布的似然函数是逻辑回归交叉熵损失的来源,对其取负对数,直接得到交叉熵损失!

1.把最大化问题将其变为最小化问题(最大化似然函数 -> 最小化交叉熵损失)

2.把连乘问题变为连加问题

举例:

假设数据y = 1,0,模型预测p = 0.8,0.3

1.伯努利似然:

2.交叉熵损失:

总结:

逻辑回归解决分类问题,把线性回归输出 作为逻辑回归的输入

逻辑回归的优化操作

1.极大化似然函数

2.最小化交叉熵损失

三、逻辑回归模型实例

需求

癌症分类预测,对699条样本,共11列数据

(1)第一列用于检索的id,后9列 肿瘤医学特征,最后一列肿瘤类型的数值

(2)包含16个缺失值,用"?"标出

(3)2表示良型,4表示恶性

python 复制代码
from sklearn.linear_model import LogisticRegression #逻辑回归模型
from sklearn.model_selection import train_test_split #数据集切分
from sklearn.preprocessing import StandardScaler #标准化
from sklearn.metrics import accuracy_score #模型评估
import pandas as pd
import numpy as np

1.获取数据

python 复制代码
data = pd.read_csv("../机器学习/breast-cancer-wisconsin.csv")

2.数据处理 缺失值

python 复制代码
# 2.1用np.NaN
data = data.replace("?",np.nan)
# data.info()
# 2.2删缺失值
# 参1: axis=0 (按行删)   参2:是否影响原数据
data.dropna(axis=0,inplace=True)

3.特征工程

python 复制代码
# 3.特征工程
# 3.1 获取特征列 和 目标值
# iloc  [行,列]   切片
# 第一列 到 倒数第二列
x_data = data.iloc[:,1:-1]   #所有行,第1 ~ -1列
# 3.2取标签
y_target = data.iloc[:,-1]  #获取最后一列

# 3.3 已有 x 特征集,y 标签级
# 随机种子 18 优于其他
x_train, x_test, y_train, y_test = train_test_split(
    x_data, 
    y_target,
    test_size = 0.2, 
    random_state = 18
)

# 3.4 数据集相差不大,可以不用做标准化,但为了让步骤完整。坐一下
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)

4.模型训练

python 复制代码
# 4 模型训练
model = LogisticRegression()
model.fit(x_train, y_train)

5.模型预测

python 复制代码
# 5.模型预测  x_test 预测集特征
y_predict = model.predict(x_test)

print(f'预测值{y_predict}')

6.模型评估

python 复制代码
# 6.模型评估
#  model.score 模型自带
print(f'准确率:{model.score(x_test, y_test)}')
print(f'准确率:{accuracy_score(y_test, y_predict)}')
相关推荐
闵孚龙3 分钟前
动态图机制:为什么 PyTorch 调试起来更舒服
人工智能·pytorch·python
甲维斯1 小时前
还要啥Codex!DeepSeek接入Zcode远程连接!
人工智能
百胜软件@百胜软件1 小时前
百胜软件亮相“AI消费新生活”主题日活动,AI智能运营平台入选市级案例征集
人工智能·生活·零售数字化·数智中台·珠宝行业
专注搞钱2 小时前
GPT-4o写设备Recipe:从3小时到10分钟
数据库·人工智能·gpt·半导体
闻道参看2 小时前
贝芯宠AI灵兽 ELFVET 大模型聚焦临床应用,强化宠物诊疗综合能力
人工智能·宠物
MartinYeung52 小时前
[论文学习]重新思考大型语言模型忘却目标:梯度视角与超越
人工智能·学习·语言模型
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月14日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
m0_380167143 小时前
加密货币价格 API、市场数据 API 与 分析 API 有什么区别?
人工智能·ai·区块链
zyplayer-doc3 小时前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
后端小肥肠3 小时前
小红书笔记爆了 17 万后,我用 Obsidian + Skill 实现了“一句话选品”
人工智能·aigc·agent