Maison >Périphériques technologiques >IA >Quelle est la définition de l'erreur de généralisation du modèle ?
En machine learning, l'erreur de généralisation fait référence à l'erreur du modèle sur des données invisibles. Ce concept est important car l'objectif du modèle est d'être performant sur les données futures, et pas seulement sur les données d'entraînement. L’erreur de généralisation est donc un indicateur clé de la qualité du modèle. En réduisant l'erreur de formation et en contrôlant la complexité du modèle, nous pouvons réduire l'erreur de généralisation et ainsi améliorer la capacité de généralisation du modèle.
L'erreur de généralisation est généralement affectée par deux facteurs : l'erreur de formation et la complexité du modèle. L'erreur de formation fait référence à l'erreur du modèle sur les données de formation, tandis que la complexité du modèle est déterminée par le nombre de paramètres et la taille de l'espace d'hypothèse. Les modèles simples se généralisent généralement plus facilement que les modèles complexes car ils disposent d’un plus grand espace d’hypothèses. L'erreur de généralisation du modèle peut être exprimée par la formule suivante :
Erreur de généralisation = erreur de formation + terme de pénalité de complexité du modèle
Le terme de pénalité de complexité du modèle est généralement implémenté par régularisation pour pénaliser les paramètres du modèle et éviter une sur- ajustement. données d’entraînement combinées.
Ce qui suit est un exemple simple pour expliquer le concept d'erreur de généralisation. Supposons que nous ayons un ensemble de données contenant des informations sur la taille et le poids de certaines personnes. Notre objectif est d'utiliser cet ensemble de données pour former un modèle capable de prédire le poids d'une personne en fonction de sa taille. Pour atteindre cet objectif, nous pouvons utiliser un modèle de régression linéaire supposant une relation linéaire entre le poids et la taille. Nous divisons d'abord l'ensemble de données en deux parties : l'une est l'ensemble d'entraînement, utilisé pour entraîner le modèle ; l'autre partie est l'ensemble de test, utilisé pour évaluer les performances du modèle. Nous utilisons l'ensemble de formation pour apprendre les paramètres du modèle afin que le modèle puisse bien s'adapter aux données de l'ensemble de formation. Nous utilisons ensuite l'ensemble de test pour évaluer les performances du modèle sur des données invisibles. L'erreur de généralisation fait référence à l'erreur de prédiction du modèle sur des données invisibles. Si notre modèle fonctionne bien sur l'ensemble d'entraînement mais pas sur l'ensemble de test
nous pouvons utiliser une partie des données pour entraîner le modèle, puis utiliser une autre partie des données pour tester les performances du modèle. L'erreur de formation fait référence à l'erreur du modèle sur les données de formation, tandis que l'erreur de test fait référence à l'erreur du modèle sur les données de test. Si le modèle fonctionne bien sur les données d'entraînement mais fonctionne mal sur les données de test, alors nous pouvons dire que le modèle a un problème de surajustement.
Dans cet exemple, si nous utilisons un modèle linéaire très simple pour faire des prédictions, il se peut qu'il ne soit pas en mesure de capturer la relation complexe entre la taille et le poids, ce qui entraîne des erreurs d'entraînement et des erreurs de test plus élevées pour le moment. du modèle L'erreur de généralisation est grande.
Voici un exemple de code simple qui utilise un modèle de régression linéaire pour prédire le poids d'une personne :
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)
Dans cet exemple, nous utilisons Numpy pour charger un fichier CSV contenant des informations sur la taille et le poids. Ensuite, nous utilisons la fonction train_test_split pour diviser l'ensemble de données en ensembles d'entraînement et de test. Ensuite, nous utilisons la classe LinearRegression pour créer un modèle de régression linéaire et entraîner le modèle sur l'ensemble d'entraînement. Enfin, nous utilisons le modèle pour faire des prédictions sur l'ensemble de test et calculer l'erreur quadratique moyenne entre les valeurs prédites et les valeurs vraies.
Il convient de noter que le modèle de cet exemple est très simple et peut ne pas être en mesure de capturer la relation complexe entre la taille et le poids. Dans les applications pratiques, des modèles plus complexes peuvent être nécessaires pour améliorer la précision des prévisions. Dans le même temps, il est également nécessaire de prêter attention à la capacité de généralisation du modèle pour éviter un surajustement des données d'entraînement.
D'un autre côté, si nous utilisons un modèle très complexe, tel qu'un modèle de régression polynomiale d'ordre élevé, il peut être capable de très bien fonctionner sur les données d'entraînement, mais pas de bons résultats sur les données de test. En effet, les modèles complexes disposent d'un large espace d'hypothèses et peuvent surajuster des caractéristiques bruyantes et non pertinentes dans les données d'entraînement, ce qui entraîne de faibles capacités de généralisation.
Afin de réduire l'erreur de généralisation du modèle, nous pouvons adopter certaines stratégies. Une stratégie courante consiste à utiliser la validation croisée pour sélectionner les hyperparamètres du modèle. La validation croisée divise les données de formation en plusieurs sous-ensembles, puis utilise tour à tour chaque sous-ensemble comme ensemble de validation, et les sous-ensembles restants comme ensemble de formation pour la formation et l'évaluation du modèle. En validant de manière croisée différentes combinaisons d'hyperparamètres, nous pouvons sélectionner le modèle qui fonctionne le mieux sur l'ensemble de validation.
De plus, des méthodes de régularisation peuvent également être utilisées pour contrôler la complexité du modèle. Les méthodes de régularisation courantes incluent la régularisation L1 et la régularisation L2, qui limitent la taille des paramètres du modèle en introduisant un terme de pénalité dans la fonction de perte. Cela peut éviter que le modèle ne surajuste les données d'entraînement et améliorer la capacité de généralisation du modèle.
L'erreur de généralisation du modèle fait référence à l'erreur du modèle sur des données invisibles. Elle est déterminée par deux facteurs : l'erreur de formation et la complexité du modèle, et peut généralement être contrôlée par des méthodes de régularisation. L'erreur de généralisation d'un modèle est une mesure importante de la qualité du modèle car l'objectif du modèle est de bien fonctionner sur les données futures. Afin de réduire l'erreur de généralisation du modèle, la validation croisée peut être utilisée pour sélectionner les hyperparamètres du modèle et des méthodes de régularisation peuvent être utilisées pour contrôler la complexité du modèle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!