机器学习第二十六讲:官方示例 → 跟着菜谱学做经典菜肴

机器学习第二十六讲:官方示例 → 跟着菜谱学做经典菜肴

资料取自《零基础学机器学习》

查看总目录:学习大纲

关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南


以跟着菜谱学做经典菜肴为例的机器学习全流程🌶️

准备食材-数据集 清洗食材-数据预处理 配料加工-特征工程 选择炊具-算法模型 控温调味-参数调节 品鉴评分-模型评估

一、备菜阶段:数据预处理

食材加工四部曲

  1. 获取配方 → 构建数据集

    python 复制代码
    # 模拟菜品数据集(口味:酸甜苦辣/火候/口感评分)
    import pandas as pd
    ingredients = {
        '盐(克)': [3,5,2,4,1],
        '糖(克)': [10,8,15,5,12],
        '火候档位': [2,3,4,2,3],
        '耗时(分钟)': [25,30,20,40,35],
        '口味评分': [8,7,9,6,8]  # 目标标签
    }
    df = pd.DataFrame(ingredients)  # 构建特征矩阵 [^3-1]
  2. 挑拣次品 → 异常值过滤[1](#1)

    python 复制代码
    # 过滤异常火候档位(正常范围1-5)
    df = df[(df['火候档位']>=1) & (df['火候档位']<=5)]
  3. 补充遗漏 → 缺失值填充[2](#2)

    python 复制代码
    from sklearn.impute import SimpleImputer
    imputer = SimpleImputer(strategy='most_frequent')  # 用众数填充分类特征
    df_filled = imputer.fit_transform(df)
  4. 统一计量 → 特征规格化[3](#3)

    python 复制代码
    from sklearn.preprocessing import MinMaxScaler
    scaler = MinMaxScaler()  # 将盐/糖单位换算成0-1范围
    scaled_data = scaler.fit_transform(df_filled)
二、烹饪阶段:模型训练

智能调控三步法
决策树/随机森林 火候/盐量 交叉验证

  1. 分割试吃组 → 数据集划分

    python 复制代码
    from sklearn.model_selection import train_test_split
    X = df.drop('口味评分', axis=1)
    y = df['口味评分']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)  # 保留20%试菜[^8-2]
  2. 选定厨艺 → 初始化模型

    python 复制代码
    # 决策树(像菜谱的分步操作指南)
    from sklearn.tree import DecisionTreeRegressor
    chef = DecisionTreeRegressor(max_depth=3)  # 最多分3个步骤判断[^5-2]
  3. 自动调味 → 参数优化[4](#4)

    python 复制代码
    from sklearn.model_selection import GridSearchCV
    param_grid = {
        'max_depth': [2,3,4],       # 菜谱步骤深度
        'min_samples_split': [2,3]  # 每次调味最小分量
    }
    grid_search = GridSearchCV(chef, param_grid, cv=5)  # 5轮盲测试吃[^8-2]
    grid_search.fit(X_train, y_train)
三、品鉴阶段:模型评估

40% 60% 味觉测评指标 口感误差 风味匹配度

  1. 口感检验 → 平均绝对误差

    python 复制代码
    from sklearn.metrics import mean_absolute_error
    pred_score = grid_search.predict(X_test)
    print(f"菜品口味误差:{mean_absolute_error(y_test, pred_score):.1f}分")[^8-1]
  2. 风味检测 → 决策树可视化

    python 复制代码
    from sklearn.tree import plot_tree
    best_model = grid_search.best_estimator_
    plt.figure(figsize=(15,10))
    plot_tree(best_model, feature_names=X.columns)  # 生成烹饪决策流程图[^5-2]
  3. 秘方破解 → 输出最佳参数

    python 复制代码
    print(f"最优步骤深度:{grid_search.best_params_['max_depth']}")
    print(f"最小调味分量:{grid_search.best_params_['min_samples_split']}")
四、厨艺提升策略

风味增强技巧

  1. 复合调料 → 特征组合[^4章]

    python 复制代码
    # 添加甜咸比特征
    df['甜咸比'] = df['糖(克)']/(df['盐(克)']+1)  # 防止除零
  2. 换锅实验 → 模型对比

    基础锅 砂锅_决策树 进阶锅 高压锅_随机森林 高阶锅 分子料理机_XGBoost

  3. 火候控制 → 正则化调整[5](#5)

    python 复制代码
    from sklearn.ensemble import RandomForestRegressor
    rf = RandomForestRegressor(n_estimators=100, max_depth=5)  # 控制翻炒次数

实验对比结果

烹饪方法 平均误差 稳定性 操作复杂度
基础决策树 0.75 ★★★☆ ★★
随机森林 0.62 ★★★★ ★★★
梯度提升树 0.58 ★★★★☆ ★★★★

目录:总目录

上篇文章:机器学习第二十五讲:TensorFlow → 乐高式搭建深度学习模型

下篇文章:机器学习第二十七讲:Kaggle → 参加机器学习界的奥林匹克



  1. 《零基础学机器学习》第三章第三节 异常值检测 ↩︎

  2. 《零基础学机器学习》第三章第一节 缺失值处理 ↩︎

  3. 《零基础学机器学习》第四章第二节 数据标准化 ↩︎

  4. 《零基础学机器学习》第八章第四节 网格搜索策略 ↩︎

  5. 《零基础学机器学习》第八章第五节 正则化应用 ↩︎

相关推荐
好家伙VCC40 分钟前
**神经编码新视角:用Python实现生物启发的神经信号压缩与解码算法**在人工智能飞速发展的今天
java·人工智能·python·算法
Navicat中国40 分钟前
如何使用 Ollama 配置 AI 助手 | Navicat 教程
数据库·人工智能·ai·navicat·ollama
@小匠5 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
山间小僧6 小时前
「AI学习笔记」RNN
机器学习·aigc·ai编程
网教盟人才服务平台8 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊8 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾8 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)8 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz8 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
GreenTea9 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端