机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点
【摘要】 机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点 前言逻辑回归是机器学习中最经典的分类算法之一,尽管名字中有“回归”,但它主要用于分类问题。本文将详细介绍逻辑回归的理论基础、数学推导、扩展到多分类任务的思路,并通过一个案例学习如何使用逻辑回归模型进行实际预测。 一、什么是逻辑回归及其基本原理逻辑回归是一种用于分类问题的模型,它基于线性回归,通过将线性回归的输出映射到一个概率值范围...
机器学习模型从理论到实战|【003-逻辑回归】分类模型的起点
前言
逻辑回归是机器学习中最经典的分类算法之一,尽管名字中有“回归”,但它主要用于分类问题。本文将详细介绍逻辑回归的理论基础、数学推导、扩展到多分类任务的思路,并通过一个案例学习如何使用逻辑回归模型进行实际预测。
一、什么是逻辑回归及其基本原理
逻辑回归是一种用于分类问题的模型,它基于线性回归,通过将线性回归的输出映射到一个概率值范围(0到1),从而实现分类。
1.1 逻辑回归的主要目标是:
- 输入特征变量 𝑋
- 输出预测目标 𝑦,表示属于某一类别的概率(例如 𝑦=1表示“正类”,y=0 表示“负类”)。
二、数学推导
2.1.线性模型的改进
线性回归模型:
其中,w是权重,B是偏置。
为了将线性模型输出的值 z 映射到 [0, 1] 的范围,逻辑回归引入了 Sigmoid 函数。
2.1 Sigmoid 函数
Sigmoid 函数是一个 S 型曲线,可以将任意实数映射到 [0, 1]:
其输出 σ(z) 可解释为属于正类的概率:
- 当 σ(z)→1,样本更可能属于正类。
- 当σ(z)→0,样本更可能属于负类
2.3 预测与分类规则
预测目标类别:
2.4 损失函数
逻辑回归通过最大化对数似然估计(MLE)找到最优参数。最终得到的损失函数(Cost Function)为交叉熵损失:
3. 多分类任务的扩展:Softmax 回归
3.1 多分类问题
当目标变量 y 有多个类别(如 y∈{0,1,2}),逻辑回归需要扩展到多分类任务。
3.2 Softmax 函数
Softmax 函数是逻辑回归的扩展,用于将多个输出值映射为概率分布:
其中:
- z j是第j 类的得分。
- K 是类别的总数。
4. 实战案例:预测是否购买某商品
4.1 案例背景
目标:根据用户的年龄和收入水平,预测用户是否会购买某商品。
4.2 数据集
示例数据集包含以下特征:
- Age: 用户年龄。
- Income: 用户收入。
- Purchased: 是否购买(0=否,1=是)。
4.3 使用 Python 实现逻辑回归
- 导入必要的库
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
- 创建数据集
# 示例数据
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']
- 数据集划分
# 将数据集分为训练集和测试集
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)
# 预测测试集
y_pred = model.predict(X_test)
- 模型评估
# 模型准确率
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)。
- 深入理解分类模型在小样本数据中的表现。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)