前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点

机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点

原创
作者头像
远方2.0
发布2024-11-29 09:26:27
发布2024-11-29 09:26:27
16100
代码可运行
举报
运行总次数:0
代码可运行

今日推荐

在文章开始之前,推荐一篇值得阅读的好文章!感兴趣的也可以去看一下,并关注作者!

今日推荐:小改动到系统崩溃:一场“蝴蝶效应”般的Debug惊魂记!

文章链接:https://cloud.tencent.com/developer/article/2471876

通过这篇文章,你将能够亲历的一次小改动导致大崩溃的故事。这个故事包含了从慌乱到冷静、从无头绪到找到问题的全过程,以及其中的教训和启发。大家可以去看看

image.png
image.png

\机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点

前言

逻辑回归是机器学习中最经典的分类算法之一,尽管名字中有“回归”,但它主要用于分类问题。本文将详细介绍逻辑回归的理论基础、数学推导、扩展到多分类任务的思路,并通过一个案例学习如何使用逻辑回归模型进行实际预测。

一、什么是逻辑回归及其基本原理

逻辑回归是一种在统计学和机器学习中广泛使用的预测分析方法,主要用于解决二分类问题。尽管名为“回归”,它实际上是一种分类算法,目的是预测事件发生的概率。逻辑回归模型基于线性回归,通过引入Sigmoid函数将线性模型的连续输出转换为概率值,其值域在0到1之间,表示样本属于正类的概率。模型的输出可以解释为样本属于特定类别的概率,通常以0.5作为决策边界,将概率值大于0.5的样本划分为正类,小于0.5的划分为负类。模型参数通过最大似然估计确定,以找到使观测数据出现概率最大的参数组合。

1.1 逻辑回归的主要目标是:

  • 输入特征变量 𝑋
  • 输出预测目标 𝑦,表示属于某一类别的概率(例如 𝑦=1表示“正类”,y=0 表示“负类”)。二、数学推导2.1.线性模型的改进 线性回归模型: 图

其中,w是权重,B是偏置。

为了将线性模型输出的值 z 映射到 0, 1 的范围,逻辑回归引入了 Sigmoid 函数

2.1 Sigmoid 函数

Sigmoid 函数是一个 S 型曲线,可以将任意实数映射到 0, 1:

image.png
image.png

其输出 σ(z) 可解释为属于正类的概率:

  • 当 σ(z)→1,样本更可能属于正类。
  • 当σ(z)→0,样本更可能属于负类2.3 预测与分类规则预测目标类别:
    image.png
    image.png

2.4 损失函数

逻辑回归通过最大化对数似然估计(MLE)找到最优参数。最终得到的损失函数(Cost Function)为交叉熵损失:

image.png
image.png

3. 多分类任务的扩展:Softmax 回归

3.1 多分类问题

当目标变量 y 有多个类别(如 y∈{0,1,2}),逻辑回归需要扩展到多分类任务。

3.2 Softmax 函数

Softmax 函数是逻辑回归的扩展,用于将多个输出值映射为概率分布:

image.png
image.png

其中:

  • z j是第j 类的得分。
  • K 是类别的总数。

4. 实战案例:预测是否购买某商品

4.1 案例背景

目标:根据用户的年龄和收入水平,预测用户是否会购买某商品。

4.2 数据集

示例数据集包含以下特征:

  • Age: 用户年龄。import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
  • Income: 用户收入。
  • Purchased: 是否购买(0=否,1=是)。4.3 使用 Python 实现逻辑回归1) 导入必要的库

2) 创建数据集

代码语言:python
代码运行次数:0
复制
# 示例数据
data = {
    'Age': [22, 25, 47, 52, 46, 56, 48, 55, 60, 62],
    'Income': [30000, 40000, 50000, 60000, 70000, 80000, 85000, 90000, 100000, 110000],
    'Purchased': [0, 0, 1, 1, 1, 1, 1, 1, 1, 1]
}
df = pd.DataFrame(data)
# 特征与目标变量
X = df[['Age', 'Income']]
y = df['Purchased']

3) 数据集划分

代码语言:python
代码运行次数:0
复制
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

4) 训练逻辑回归模型

代码语言:python
代码运行次数:0
复制
# 创建逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测测试集
y_pred = model.predict(X_test)

5) 模型评估

代码语言:python
代码运行次数:0
复制
# 模型准确率
print("Accuracy:", accuracy_score(y_test, y_pred))

# 混淆矩阵
print("Confusion Matrix:\n", confusion_matrix(y_test, y_pred))

# 分类报告
print("Classification Report:\n", classification_report(y_test, y_pred))

5. 小结与展望

5.1 本节回顾

  • 逻辑回归通过 Sigmoid 函数完成分类任务。
  • 交叉熵损失是逻辑回归的优化目标。
  • 扩展到多分类任务可以使用 Softmax 回归。5.2 下一步学习:
  • 学习基于距离的分类模型:K 最近邻(KNN)。
  • 深入理解分类模型在小样本数据中的表现。
image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、什么是逻辑回归及其基本原理
    • 1.1 逻辑回归的主要目标是:
    • 2.1 Sigmoid 函数
    • 2.4 损失函数
  • 3. 多分类任务的扩展:Softmax 回归
    • 3.1 多分类问题
    • 3.2 Softmax 函数
  • 4. 实战案例:预测是否购买某商品
  • 5. 小结与展望
    • 5.1 本节回顾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档