机器学习模型从理论到实战

2025-09-30 10:26:42 世界杯2019

今日推荐

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

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

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

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

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其输出 σ(z) 可解释为属于正类的概率:

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

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

image.png3. 多分类任务的扩展:Softmax 回归3.1 多分类问题当目标变量 y 有多个类别(如 y∈{0,1,2}),逻辑回归需要扩展到多分类任务。

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

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_reportIncome: 用户收入。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