11 模型选择与训练之模型训练
系列进度
机器学习入门 · 第 11 / 21 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
模型训练不是一次性运行脚本。数据版本、随机种子、参数配置和评估结果都要保存,后面才知道哪一次实验真的更好。
每次训练我会写一行实验记录:数据版本、模型名、关键参数、验证指标、备注。没有记录的实验,等于没做。
在上一篇中,我们讨论了如何选择合适的模型,如线性模型、决策树、支持向量机等。模型的选择是成功应用机器学习的第一步,但选择之后,我们需要关注的一步是如何进行模型训练。模型训练可以理解为通过现有数据来调整模型的参数,以使模型能够更好地预测新数据。
1. 数据准备
在进行模型训练之前,首先要确保数据已经准备妥当。数据准备主要包括以下几个步骤:
训练机器学习模型时,先看数据切分、特征处理、算法参数、验证指标和过拟合迹象。
- 数据清洗:去除缺失值、异常值等。
- 特征选择与工程:根据业务需求选择合适的特征,并进行特征转换或归一化处理。
- 数据集划分:通常将数据集划分为训练集、验证集和测试集。常见的划分比例是68%用于训练,16%用于验证,16%用于测试。
例如,我们有一个用于房价预测的简单数据集 housing.csv,我们可以使用 pandas 来读取和预处理数据:
import pandas as pd
from sklearn.model_selection import train_test_split
# 读取数据
data = pd.read_csv('housing.csv')
# 数据清洗:去掉缺失值
data = data.dropna()
# 特征选择
X = data[['size', 'bedrooms', 'location']]
y = data['price']
# 划分数据集
X_train, X_temp, y_train, y_temp = train_test_split(X, y, test_size=0.32, random_state=42)
X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42)
2. 模型训练
2.1 选择训练方法
学习《模型选择与训练之模型训练》不必一口气吃完所有细节。先挑一个能动手验证的小问题,再顺着图和正文补齐概念。
训练模型的方法主要取决于所选择的模型类型。常见的训练方法包括:
- 梯度下降法:适用于大多数线性模型和神经网络,通过反向传播更新参数。
- 决策树的分裂方法:如信息增益、基尼系数,通过选择最佳分裂点来构建树。
- 支持向量机的最优超平面:通过最大化间隔来找到最佳决策边界。
2.2 训练模型的代码示例
以下是使用 scikit-learn 进行线性回归模型训练的简单示例:
from sklearn.linear_model import LinearRegression
# 创建线性回归模型
model = LinearRegression()
# 模型训练
model.fit(X_train, y_train)
# 在验证集上评估
val_score = model.score(X_val, y_val)
print(f'Validation R^2: {val_score:.2f}')
在此示例中,我们采用 fit 方法来训练模型,并使用 score 方法评估模型在验证集上的表现。
3. 监控模型性能
在训练过程中,我们需要定期监控模型的性能,以便在必要时进行调整。可以通过绘制损失图、精确度图等方式观察模型在训练集和验证集上的表现。此外,过拟合和欠拟合是我们在训练过程中常会遭遇的问题。
- 过拟合:模型在训练集上表现良好,但在验证集或测试集上表现不佳。可以通过增加正则化、减少模型复杂度或使用更多的数据来减轻。
- 欠拟合:模型在训练集上表现也不好,通常是因为模型太简单。可以通过使用更复杂的模型或者增强特征来改善。
4. 训练结束后的保存与加载
模型训练完成后,保存模型以便后续的使用是非常重要的。可以使用 joblib 或 pickle 来保存和加载模型。例如:
import joblib
# 保存模型
joblib.dump(model, 'linear_model.pkl')
# 加载模型
loaded_model = joblib.load('linear_model.pkl')
这样可以在之后的工作中直接使用已经训练好的模型,而无需重新训练。
如果《模型选择与训练之模型训练》还没完全消化,可以从这张卡片的四个动作重新走一遍。
回看《模型选择与训练之模型训练》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。
5. 总结
在这一节中,我们详细讨论了如何进行模型训练,包括数据准备、训练方法、模型评估及结果的保存等。一次成功的模型训练能够为后续的超参数调优打下良好的基础。接下来的章节中,我们将进一步探讨《模型选择与训练之超参数调优》,以优化我们的模型性能,使其在特定任务上达到最优效果。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
模型选择与训练之模型训练适合谁读?
这是 机器学习入门 系列第 11 / 21 篇,适合正在学习机器学习入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇机器学习入门教程要多久?
按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读