机器学习第二十六讲:官方示例 → 跟着菜谱学做经典菜肴
资料取自《零基础学机器学习》。
查看总目录:学习大纲
关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署:超详细手把手指南
以跟着菜谱学做经典菜肴为例的机器学习全流程🌶️
一、备菜阶段:数据预处理
食材加工四部曲:
获取配方 → 构建数据集
# 模拟菜品数据集(口味:酸甜苦辣/火候/口感评分) 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]
挑拣次品 → 异常值过滤1
# 过滤异常火候档位(正常范围1-5) df = df[(df['火候档位']>=1) & (df['火候档位']<=5)]
补充遗漏 → 缺失值填充2
from sklearn.impute import SimpleImputer imputer = SimpleImputer(strategy='most_frequent') # 用众数填充分类特征 df_filled = imputer.fit_transform(df)
统一计量 → 特征规格化3
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() # 将盐/糖单位换算成0-1范围 scaled_data = scaler.fit_transform(df_filled)
二、烹饪阶段:模型训练
智能调控三步法:
分割试吃组 → 数据集划分
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]
选定厨艺 → 初始化模型
# 决策树(像菜谱的分步操作指南) from sklearn.tree import DecisionTreeRegressor chef = DecisionTreeRegressor(max_depth=3) # 最多分3个步骤判断[^5-2]
自动调味 → 参数优化4
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)
三、品鉴阶段:模型评估
口感检验 → 平均绝对误差
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]
风味检测 → 决策树可视化
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]
秘方破解 → 输出最佳参数
print(f"最优步骤深度:{grid_search.best_params_['max_depth']}") print(f"最小调味分量:{grid_search.best_params_['min_samples_split']}")
四、厨艺提升策略
风味增强技巧:
复合调料 → 特征组合5
# 添加甜咸比特征 df['甜咸比'] = df['糖(克)']/(df['盐(克)']+1) # 防止除零
换锅实验 → 模型对比
火候控制 → 正则化调整6
from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(n_estimators=100, max_depth=5) # 控制翻炒次数
实验对比结果:
烹饪方法 | 平均误差 | 稳定性 | 操作复杂度 |
---|---|---|---|
基础决策树 | 0.75 | ★★★☆ | ★★ |
随机森林 | 0.62 | ★★★★ | ★★★ |
梯度提升树 | 0.58 | ★★★★☆ | ★★★★ |
目录:总目录
上篇文章:机器学习第二十五讲:TensorFlow → 乐高式搭建深度学习模型
下篇文章:机器学习第二十七讲:Kaggle → 参加机器学习界的奥林匹克
- 《零基础学机器学习》第三章第三节 异常值检测 ↩
- 《零基础学机器学习》第三章第一节 缺失值处理 ↩
- 《零基础学机器学习》第四章第二节 数据标准化 ↩
- 《零基础学机器学习》第八章第四节 网格搜索策略 ↩
- 4章 ↩
- 《零基础学机器学习》第八章第五节 正则化应用 ↩
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。