Python 机器学习核心入门与实战进阶 Day 1 - 分类 vs 回归

✅ 今日目标

  • 理解分类(Classification)与回归(Regression)的本质区别
  • 掌握两种任务的典型使用场景
  • 学会根据任务类型选择合适的模型
  • 了解每类模型对应的评估指标

📘 一、监督学习的两大任务类型

任务类型 输出结果 典型问题 示例
分类(Classification) 离散值(类标) 哪一类? 是否及格?是否点击广告?
回归(Regression) 连续值(实数) 预测值是多少? 房价预测、成绩分数

🧪 二、任务类型示例(Python 实践)

分类任务示例:

python 复制代码
# 分类:预测学生是否及格(0 或 1)
y_class = [0, 1, 1, 0, 1, 1, 0]

回归任务示例:

python 复制代码
# 回归:预测学生具体分数(连续值)
y_reg = [59.5, 85.2, 90.1, 62.0, 74.8]

🧮 三、模型适用对比

模型 分类 回归
Logistic 回归
线性回归
决策树
随机森林
SVM ✅(需配置)
KNN
XGBoost / LightGBM

📊 四、评估指标对比

指标类型 分类任务 回归任务
主要指标 准确率(accuracy) 精确率 / 召回率 / F1 均方误差(MSE) 平均绝对误差(MAE) R²
可视化 混淆矩阵、ROC曲线 拟合曲线、残差图
推荐工具 classification_report() mean_squared_error() / r2_score()

💡 五、任务识别技巧

当你拿到一个数据问题时,可以问自己:

  • 目标变量是类别还是数值?
  • 是判断"是否......",还是预测"多少......"?
  • 标签值有多少种?是整数编码的类别,还是连续的数值?

🔧 六、实践建议

  1. 自构造一个小型分类与回归数据集

  2. 分别使用逻辑回归与线性回归模型进行建模

  3. 输出评估结果(准确率 / 均方误差)

  4. 可视化预测结果与真实值对比(选做)

    python 复制代码
    # 分类 vs 回归任务演示
    
    from sklearn.linear_model import LogisticRegression, LinearRegression
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import classification_report, accuracy_score, mean_squared_error, r2_score
    import numpy as np
    import matplotlib.pyplot as plt
    
    plt.rcParams['font.family'] = 'Arial Unicode MS'  # Mac 用户可用
    plt.rcParams['axes.unicode_minus'] = False
    
    # 构造数据
    np.random.seed(42)
    score_class = np.random.randint(40, 100, 100)
    is_pass = (score_class >= 60).astype(int)
    score_reg = score_class + np.random.normal(0, 5, 100)
    
    # 分类任务
    X_class = score_class.reshape(-1, 1)
    y_class = is_pass
    Xc_train, Xc_test, yc_train, yc_test = train_test_split(X_class, y_class, test_size=0.2, random_state=0)
    
    clf = LogisticRegression()
    clf.fit(Xc_train, yc_train)
    y_pred_class = clf.predict(Xc_test)
    
    print("=== 分类评估 ===")
    print("准确率:", accuracy_score(yc_test, y_pred_class))
    print(classification_report(yc_test, y_pred_class))
    
    # 回归任务
    X_reg = score_class.reshape(-1, 1)
    y_reg = score_reg
    Xr_train, Xr_test, yr_train, yr_test = train_test_split(X_reg, y_reg, test_size=0.2, random_state=0)
    
    reg = LinearRegression()
    reg.fit(Xr_train, yr_train)
    y_pred_reg = reg.predict(Xr_test)
    
    print("\n=== 回归评估 ===")
    print("MSE:", mean_squared_error(yr_test, y_pred_reg))
    print("R²:", r2_score(yr_test, y_pred_reg))
    
    # 可视化回归结果
    plt.scatter(Xr_test, yr_test, color='blue', label='真实值')
    plt.plot(Xr_test, y_pred_reg, color='red', label='预测值')
    plt.title("回归拟合示意图")
    plt.xlabel("原始成绩")
    plt.ylabel("预测成绩")
    plt.legend()
    plt.tight_layout()
    plt.show()

    运行输出:

    python 复制代码
    === 分类评估 ===
    准确率: 1.0
                  precision    recall  f1-score   support
    
               0       1.00      1.00      1.00         7
               1       1.00      1.00      1.00        13
    
        accuracy                           1.00        20
       macro avg       1.00      1.00      1.00        20
    weighted avg       1.00      1.00      1.00        20
    
    
    === 回归评估 ===
    MSE: 20.031221042762812
    R²: 0.9221734051498227

🧾 今日总结

内容 分类任务 回归任务
输出 类别标签(0/1) 连续实数值
代表模型 Logistic 回归、树 线性回归、树
核心指标 Accuracy、F1 MSE、R²
常见场景 医疗诊断、信用预测 销量预测、价格估计
相关推荐
菜鸟的日志13 分钟前
【音频字幕】构建一个离线视频字幕生成系统:使用 WhisperX 和 Faster-Whisper 的 Python 实现
python·whisper·音视频
小宁爱Python1 小时前
基于 Django+Vue3 的 AI 海报生成平台开发(海报模块专项)
人工智能·python·django
破烂儿1 小时前
基于机器学习的缓存准入策略研究
人工智能·机器学习·缓存
红豆怪怪1 小时前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式
算法打盹中1 小时前
SimLingo:纯视觉框架下的自动驾驶视觉 - 语言 - 动作融合模型
人工智能·机器学习·计算机视觉·语言模型·自动驾驶
l12345sy2 小时前
Day23_【机器学习—聚类算法—K-Means聚类 及评估指标SSE、SC、CH】
算法·机器学习·kmeans·聚类·sse·sc·ch
大嘴带你水论文2 小时前
震惊!仅用10张照片就能随意编辑3D人脸?韩国KAIST最新黑科技FFaceNeRF解析!
论文阅读·人工智能·python·科技·计算机视觉·3d·transformer
CodeCraft Studio2 小时前
国产化PDF处理控件Spire.PDF教程:如何在 Java 中通过模板生成 PDF
java·python·pdf·spire.pdf·java创建pdf·从html创建pdf
jie*2 小时前
小杰机器学习(two)——导数、损失函数、斜率极值最值、微分规则、切平面与偏导数、梯度。
人工智能·机器学习
摆烂z3 小时前
Jupyter Notebook的交互式开发环境方便py开发
ide·python·jupyter