当前位置: 首页 > ops >正文

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

✅ 今日目标

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

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

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

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

分类任务示例:

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

回归任务示例:

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

🧮 三、模型适用对比

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

📊 四、评估指标对比

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

💡 五、任务识别技巧

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

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

🔧 六、实践建议

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

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

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

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

    # 分类 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 pltplt.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()
    

    运行输出:
    在这里插入图片描述

    === 分类评估 ===
    准确率: 1.0precision    recall  f1-score   support0       1.00      1.00      1.00         71       1.00      1.00      1.00        13accuracy                           1.00        20macro avg       1.00      1.00      1.00        20
    weighted avg       1.00      1.00      1.00        20=== 回归评估 ===
    MSE: 20.031221042762812: 0.9221734051498227
    

🧾 今日总结

内容分类任务回归任务
输出类别标签(0/1)连续实数值
代表模型Logistic 回归、树线性回归、树
核心指标Accuracy、F1MSE、R²
常见场景医疗诊断、信用预测销量预测、价格估计
http://www.xdnf.cn/news/14789.html

相关文章:

  • 扣子空间PPT生产力升级:AI智能生成与多模态创作新时代
  • 【Linux仓库】进程优先级及进程调度【进程·肆】
  • Linux之Socket编程Tcp
  • Spring Cloud(微服务部署与监控)
  • Superman
  • Rust Web 全栈开发(一):构建 TCP Server
  • 新版本没有docker-desktop-data分发 | docker desktop 镜像迁移
  • MYSQL基础内容
  • Django 安装使用教程
  • OpenHarmony 5.0监听导航栏和状态栏是否显示
  • OpenCV CUDA模块设备层-----高效地计算两个uint 类型值的平均值函数vavg2()
  • android核心技术摘要
  • gin框架 中间件 是在判断路由存在前执行还是存在后执行的研究
  • 机器学习:集成学习方法之随机森林(Random Forest)
  • 【Unity】MiniGame编辑器小游戏(九)打砖块【Breakout】
  • 【前端】基础 - HTML基础标签和样式设置
  • 【新手小白的嵌入式学习之路】-STM32的学习_GPIO 8种模式学习心得
  • 第二章AIGC入门:打开人工智能生成内容的新世界大门(3/36)
  • Windows连接L2TP/IPsec 协议 VPN失败
  • QT异步操作
  • Kuikly 与 Flutter 的全面对比分析,结合技术架构、性能、开发体验等核心维度
  • QT初识-实现Hello World(2)
  • Qt Quick 与 QML(五)qml中的布局
  • 运维打铁: 数据加密与备份恢复策略制定
  • 免费版安全性缩水?ToDesk、TeamViewer、向日葵、网易UU远程访问隐私防护测评
  • 【卡尔曼滤波第一期】α−β−γ 滤波器概述
  • [CS创世SD NAND征文] 精准控制的坚固基石:CS创世SD NAND在华大HC32F4A0运动控制卡中的高可靠应用
  • 如何在Excel中每隔几行取一行
  • Foundation 5 安装使用教程
  • 【仿muduo库实现并发服务器】Poller模块