郭震 AI公众号:郭震AI

12 机器学习基础之模型评估与选择

发布日期:

最近更新:

分类: 计算机视觉

预计阅读: 5 分钟

阅读次数: 0

预计阅读5 分钟
结构重点5 个
图文要点6 张
正文规模2.0k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 5 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

模型评估与选择流程图查看大图
模型评估与选择流程图

视觉模型不能只看训练集表现。验证集、测试集和真实场景样本要分开,否则很容易把过拟合当成进步。

模型评估与选择实操核对图查看大图
模型评估与选择实操核对图

我会固定数据划分和评估指标,再比较模型。指标和样本一变,模型好坏就没有可比性。

在机器学习的过程中,模型的评估与选择是至关重要的一步,它直接影响到我们所构建模型的效果。上一篇中,我们讨论了监督学习与非监督学习的基本概念。接下来,我们将深入探讨如何评估和选择机器学习模型,以确保我们的模型能够在实际应用中取得良好的表现。

模型评估的基本概念

在模型评估中,我们需要了解的第一个概念是性能度量。在监督学习中,我们通常需要处理分类和回归任务,这两种任务的性能评估指标是不同的。

视觉模型评估选择判断卡查看大图
视觉模型评估选择判断卡

选择视觉模型时,先比较验证指标、错误样例、推理速度、显存占用、数据偏差和维护成本。

分类模型的评估指标

  1. 准确率 (Accuracy): 准确率是所有预测中正确预测的比例。它的计算公式为:

    Accuracy=TP+TNTP+TN+FP+FN\text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}}

    其中,TP是真正类的数量,TN是真负类的数量,FP是假正类的数量,FN是假负类的数量。

  2. 精确率 (Precision): 精确率是指在所有被预测为正类的样本中,实际为正类的比例。其计算公式为:

    Precision=TPTP+FP\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}
  3. 召回率 (Recall): 召回率是指在所有实际为正类的样本中,被正确预测的比例。其计算公式为:

    Recall=TPTP+FN\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}
  4. F1 分数: F1 分数是精确率和召回率的调和平均数,用于综合评估分类模型的性能。其计算公式为:

    F1=2×Precision×RecallPrecision+RecallF1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

案例:鸢尾花数据集的分类

我们可以使用鸢尾花数据集来进行一个简单的分类任务,并评估模型的性能。以下是使用 Python 和 Scikit-learn 的代码示例:

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

# 加载数据
iris = load_iris()
X = iris.data
y = iris.target

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建与训练模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 进行预测
y_pred = model.predict(X_test)

# 输出分类报告
print(classification_report(y_test, y_pred, target_names=iris.target_names))

回归模型的评估指标

对于回归模型,常用的评估指标包括:

  1. 均方误差 (MSE): 是预测值与实际值的差值的平方的平均值。其计算公式为:

    MSE=1ni=1n(yiy^i)2\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
  2. 均方根误差 (RMSE): 是均方误差的平方根,常用于与真实值的比较。其计算公式为:

    RMSE=MSE\text{RMSE} = \sqrt{\text{MSE}}
  3. 决定系数 (R²): 用于衡量模型对数据变异的解释能力,其值在0和1之间,值越高,模型越好。其计算公式为:

    R2=1i=1n(yiy^i)2i=1n(yiyˉ)2R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}

案例:波士顿房价数据集的回归

以波士顿房价数据集为例,我们来训练一个回归模型并评估其性能:

from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 加载数据
boston = load_boston()
X = boston.data
y = boston.target

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建与训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 进行预测
y_pred = model.predict(X_test)

# 输出评估指标
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f'MSE: {mse}, R²: {r2}')

模型选择

评估完各个模型的性能后,我们需要选择最佳的模型。模型选择的常用方法有:

计算机视觉阅读地图卡查看大图
计算机视觉阅读地图卡

读《机器学习基础之模型评估与选择》时,可以先看配图里的任务、概念、练习和判断点,再回到正文补细节。这样更容易判断这篇内容能放到哪个真实场景里。

  1. 交叉验证 (Cross-validation): 通过将数据集划分为多个子集,使用其中一部分训练模型,使用其他部分进行评估,从而得到模型在不同数据上的表现,更可靠地选择模型。

  2. 网格搜索 (Grid Search): 针对模型的超参数,通过系统的方法来寻找最佳的参数组合,以提高模型性能。

交叉验证示例

以下是使用交叉验证进行模型选择的简单代码示例:

from sklearn.model_selection import cross_val_score

# 使用随机森林模型
model = RandomForestClassifier()

# 进行交叉验证
scores = cross_val_score(model, X, y, cv=5)

print(f'Cross-validation scores: {scores}')
print(f'Mean score: {scores.mean()}')
机器学习基础之模型评估与选择应用复盘卡查看大图
机器学习基础之模型评估与选择应用复盘卡

读到这里,可以把《机器学习基础之模型评估与选择》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

机器学习基础之模型评估与选择应用检查卡查看大图
机器学习基础之模型评估与选择应用检查卡

读完《机器学习基础之模型评估与选择》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

小结

通过对模型评估与选择的深入理解,我们能够更有效地选择和优化机器学习模型。在实际应用中,可以根据任务的不同特征和要求来选择合适的评估指标,从而确保最好的模型表现。评估模型的结果应作为模型优化与改进的重要依据。

在下一篇中,我们将讨论过拟合与正则化的概念,以进一步提升模型的泛化能力。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

机器学习基础之模型评估与选择适合谁读?

这是 计算机视觉网络教程 系列第 12 / 31 篇,适合正在学习计算机视觉网络教程,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇计算机视觉网络教程要多久?

按中文技术文章阅读速度估算,通读大约 5 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...