<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>模型评估 on 老张开工了</title>
    <link>/%E6%A8%A1%E5%9E%8B%E8%AF%84%E4%BC%B0/</link>
    <description>Recent content in 模型评估 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 18 Jan 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="/%E6%A8%A1%E5%9E%8B%E8%AF%84%E4%BC%B0/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>模型评估与调优</title>
      <link>/posts/2025/01/model-evaluation/</link>
      <pubDate>Sat, 18 Jan 2025 00:00:00 +0000</pubDate>
      <guid>/posts/2025/01/model-evaluation/</guid>
      <description>训练一个模型只是第一步。如何可靠地评估模型的表现，如何找到最好的参数组合，如何比较不同模型哪个更优，这些才是机器学习实践中的核心挑战。本文将全面介绍模型评估和调优的方法论。&#xA;交叉验证：更可靠的评估 单次划分训练集和测试集存在一个问题：结果可能因为随机划分而产生很大波动。交叉验证通过多次划分取平均值，提供更稳定的评估结果。&#xA;K-Fold 交叉验证 将数据平均分为 K 份，轮流用 K-1 份训练、1 份验证。&#xA;import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_diabetes from sklearn.model_selection import (cross_val_score, cross_validate, KFold, StratifiedKFold, LeaveOneOut, TimeSeriesSplit, learning_curve, validation_curve, GridSearchCV, RandomizedSearchCV) from sklearn.linear_model import Ridge, Lasso from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor from sklearn.metrics import mean_squared_error, r2_score, make_scorer import warnings warnings.filterwarnings(&amp;#39;ignore&amp;#39;) # 加载数据 diabetes = load_diabetes() X, y = diabetes.data, diabetes.target # 5 折交叉验证 kfold = KFold(n_splits=5, shuffle=True, random_state=42) scores = cross_val_score(Ridge(alpha=1.</description>
    </item>
  </channel>
</rss>
