機械学習では、汎化誤差とは、目に見えないデータに関するモデルの誤差を指します。モデルの目標はトレーニング データだけでなく将来のデータでも適切なパフォーマンスを発揮することであるため、この概念は重要です。したがって、汎化誤差はモデルの品質を示す重要な指標となります。トレーニング誤差を減らし、モデルの複雑さを制御することで、汎化誤差を減らし、モデルの汎化能力を向上させることができます。
一般化誤差は、通常、トレーニング誤差とモデルの複雑さという 2 つの要因の影響を受けます。トレーニング誤差はトレーニング データ上のモデルの誤差を指しますが、モデルの複雑さはパラメーターの数と仮説空間のサイズによって決まります。単純なモデルは、より大きな仮説空間を持つため、一般に複雑なモデルよりも簡単に一般化できます。モデルの汎化誤差は、次の式で表すことができます。
汎化誤差 = トレーニング誤差モデルの複雑さのペナルティ項
モデルの複雑さのペナルティこの用語は通常、モデル パラメーターにペナルティを課し、トレーニング データへの過剰適合を防ぐために正則化を通じて実装されます。
以下では、簡単な例を使用して汎化誤差の概念を説明します。何人かの人の身長と体重の情報を含むデータセットがあるとします。私たちの目標は、このデータセットを使用して、身長に基づいて人の体重を予測できるモデルをトレーニングすることです。この目標を達成するには、体重と身長の間に線形関係があると仮定した線形回帰モデルを使用できます。 まず、データ セットを 2 つの部分に分割します: 1 つはモデルのトレーニングに使用されるトレーニング セット、もう 1 つはモデルのパフォーマンスの評価に使用されるテスト セットです。モデルがトレーニング セット内のデータに適切に適合できるように、トレーニング セットを使用してモデルのパラメーターを学習します。次に、テスト セットを使用して、目に見えないデータに対するモデルのパフォーマンスを評価します。 一般化誤差は、目に見えないデータに対するモデルの予測誤差を指します。モデルがトレーニング セットではうまく機能するが、テスト セットではうまく機能しない場合は、
# データの一部を使用してモデルをトレーニングし、データの別の部分を使用してパフォーマンスをテストできます。モデルの。トレーニング誤差はトレーニング データ上のモデルの誤差を指し、テスト誤差はテスト データ上のモデルの誤差を指します。モデルがトレーニング データでは良好なパフォーマンスを発揮するが、テスト データではパフォーマンスが低下する場合、モデルには過剰適合の問題があると言えます。 この例では、非常に単純な線形モデルを使用して予測を行うと、身長と体重の複雑な関係を捉えることができない可能性があり、その結果、トレーニング エラーやテスト エラーが発生します。がすべて高い場合、モデルの汎化誤差は大きくなります。 次は、線形回帰モデルを使用して人の体重を予測する簡単なサンプル コードです:import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # 加载数据集 data = np.loadtxt('height_weight.csv', delimiter=',', skiprows=1) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(data[:, 0], data[:, 1], test_size=0.2) # 构建线性回归模型 model = LinearRegression() # 在训练集上进行模型训练 model.fit(X_train.reshape(-1, 1), y_train) # 在测试集上进行模型评估 y_pred = model.predict(X_test.reshape(-1, 1)) mse = mean_squared_error(y_test, y_pred) print('测试集上的均方误差为:', mse)
以上がモデル汎化誤差の定義は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。