[PYTHON] Apprentissage automatique sur le surapprentissage

○ Les principaux points de cet article Notez que le surapprentissage a été reproduit Surapprentissage: il peut gérer les données d'entraînement, mais il ne peut pas gérer les données inconnues. Sentiment qu'il n'y a pas de puissance d'application.

○ Code source (Python): modèle de surentraînement et confirmation de surentraînement

Comment vérifier le surentraînement et le surentraînement du modèle


from sklearn.datasets import load_boston
from sklearn.svm import SVR
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
%matplotlib inline

#Préparation des données. Prix des maisons à Boston
data = load_boston()
X = data.data[:, [5,]] #Extraire uniquement le nombre de pièces comme variables explicatives
y = data.target

#Séparé en données d'entraînement et données de test
train_X, test_X = X[:400], X[400:]
train_y, test_y = y[:400], y[400:]

#SVR avec hyper paramètres modifiés(Machine à vecteurs de soutien (méthode du noyau))Apprendre en
model_s = SVR(C=1.0, kernel='rbf') #Utiliser le noyau rbf avec le paramètre de régularisation 1
model_s.fit(train_X, train_y)
#Prédiction à l'aide des données d'entraînement
s_pred = model_s.predict(train_X)
#Prédiction à l'aide de données de test (prédiction pour des données inconnues)
s_pred_t = model_s.predict(test_X)

#affichage graphique
fig, ax = plt.subplots()
ax.scatter(train_X, train_y, color='red', marker='s', label='data')
ax.plot(train_X, s_pred, color='blue', label='svr_rbf curve(train)')
ax.plot(test_X, s_pred_t, color='orange', label='svr_rbf curve(test)')
ax.legend()
plt.show()

print("○ Erreur quadratique moyenne et coefficient de détermination des données d'entraînement")
print(mean_squared_error(train_y, s_pred))
print(r2_score(train_y, s_pred))
print("○ Erreur quadratique moyenne et coefficient de détermination des données de test")
print(mean_squared_error(test_y, s_pred_t))
print(r2_score(test_y, s_pred_t))

résultat ダウンロード.png ○ Erreur quadratique moyenne et coefficient de détermination des données d'entraînement 30.330756428515905 0.6380880725968641 ○ Erreur quadratique moyenne et coefficient de détermination des données de test 69.32813164021485 -1.4534559402985217

La ligne de données d'entraînement (bleue) est dessinée de manière agréable, mais la ligne de données de test (orange) est subtile. Il ressort clairement des valeurs de l'erreur quadratique moyenne et du coefficient de détermination. C'est du surapprentissage.

Il existe plusieurs moyens d'éviter le surapprentissage, mais je vais les expliquer à nouveau. ・ Augmentez le nombre de données d'apprentissage (formation) ・ Effectuer une vérification croisée -Ajuster les hyper paramètres (rendre le modèle simple) ・ Réduisez le nombre de fonctionnalités ・ Mettre en œuvre la régularisation

Recommended Posts

Apprentissage automatique sur le surapprentissage
Apprentissage automatique
À propos de la matrice mixte d'apprentissage automatique
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
Une histoire sur l'apprentissage automatique avec Kyasuket
Notes personnelles et liens sur l'apprentissage automatique ① (Machine learning)
Résumé du didacticiel d'apprentissage automatique
Une histoire sur l'apprentissage automatique simple avec TensorFlow
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Régression logistique d'apprentissage automatique
Machine de vecteur de support d'apprentissage automatique
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
À propos du contenu de développement de l'apprentissage automatique (exemple)
Apprenez en quelque sorte le machine learning
Histoire de l'analyse de données par apprentissage automatique
Bibliothèque d'apprentissage automatique Shogun
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (1)
À propos du prétraitement des données des systèmes utilisant l'apprentissage automatique
À propos des tests dans la mise en œuvre de modèles d'apprentissage automatique
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (3)
Ce que j'ai appris sur l'IA / l'apprentissage automatique avec Python (2)
Parlez de l'amélioration du goulot d'étranglement des algorithmes d'apprentissage automatique avec Cython
Modèle d'apprentissage automatique prenant en compte la maintenabilité
Prétraitement japonais pour l'apprentissage automatique
Apprentissage automatique dans Delemas (s'entraîner)
Une introduction à l'apprentissage automatique
Techniques liées à l'apprentissage automatique / à la classification
Machine Learning: Supervision - Régression linéaire
Bases de l'apprentissage automatique (mémoire)
Un débutant en apprentissage automatique a essayé la RBM
[Apprentissage automatique] Comprendre la forêt aléatoire
À propos de l'apprentissage avec Google Colab
Apprentissage automatique avec Python! Préparation
Bloc-notes de ressources d'étude d'apprentissage automatique
Apprentissage automatique ② Résumé Naive Bayes
Comprendre l'apprentissage automatique ~ régression de crête ~.
Résumé de l'article sur l'apprentissage automatique (auto-écrit)
Apprentissage automatique: forêt supervisée - aléatoire
Mémo pratique du système d'apprentissage automatique
Démineur d'apprentissage automatique avec PyTorch
Créer un environnement d'apprentissage automatique
Programmation Python Machine Learning> Mots-clés
Algorithme d'apprentissage automatique (perceptron simple)
Utilisé en EDA pour l'apprentissage automatique
Importance des ensembles de données d'apprentissage automatique
Apprentissage automatique et optimisation mathématique
Machine Learning: Supervisé - Support Vector Machine
Machine learning supervisé (classification / régression)
J'ai essayé d'implémenter Extreme Learning Machine