La régularisation en régression (linéaire, logistique ...) est le moyen le plus utilisé pour réduire le sur-ajustement.
Lorsque l'objectif est la précision des prédictions (sans explication), existe-t-il de bonnes alternatives à la régularisation, particulièrement adaptées aux ensembles de données volumineuses (mi / milliards d'observations et millions de fonctionnalités)?
regression
regularization
overfitting
Benoit Sanchez
la source
la source
Réponses:
Deux points importants qui ne sont pas directement liés à votre question:
Premièrement, même l'objectif est la précision plutôt que l'interprétation, la régularisation est toujours nécessaire dans de nombreux cas, car elle garantira la «haute précision» sur l'ensemble de données de test / production réelles, et non sur les données utilisées pour la modélisation.
Deuxièmement, s'il y a des milliards de lignes et des millions de colonnes, il est possible qu'aucune régularisation ne soit nécessaire. En effet, les données sont énormes et de nombreux modèles de calcul ont une «puissance limitée», c'est-à-dire qu'il est presque impossible de les suréquiper. C'est pourquoi certains réseaux de neurones profonds ont des milliards de paramètres.
Maintenant, à propos de votre question. Comme l'ont mentionné Ben et Andrey, il existe certaines options comme alternatives à la régularisation. Je voudrais ajouter plus d'exemples.
Utilisez un modèle plus simple (Par exemple, réduisez le nombre d'unités cachées dans le réseau neuronal. Utilisez un noyau polynomial d'ordre inférieur dans SVM. Réduisez le nombre de Gaussiens dans un mélange de Gaussiens. Etc.)
Arrêtez-vous tôt dans l'optimisation. (Par exemple, réduire l'époque dans la formation des réseaux de neurones, réduire le nombre d'itérations dans l'optimisation (CG, BFGS, etc.)
Moyenne sur de nombreux modèles (par exemple, forêt aléatoire, etc.)
la source
Deux alternatives à la régularisation:
Geoff Hinton (co-inventeur de la propulsion arrière) a un jour raconté une histoire d'ingénieurs qui lui a dit (en paraphrasant fortement): "Geoff, nous n'avons pas besoin d'abandon dans nos filets profonds parce que nous avons tellement de données." Et sa réponse a été: "Eh bien, alors vous devriez construire des filets encore plus profonds, jusqu'à ce que vous soyez en sur- ajustement, puis utiliser l'abandon." Bon conseil à part, vous pouvez apparemment éviter la régularisation même avec des filets profonds, tant qu'il y a suffisamment de données.
Avec un nombre fixe d'observations, vous pouvez également opter pour un modèle plus simple. Vous n'avez probablement pas besoin de régularisation pour estimer une interception, une pente et une variance d'erreur dans une régression linéaire simple.
la source
Quelques possibilités supplémentaires pour éviter le sur-ajustement
Réduction dimensionnelle
Sélection des fonctionnalités (également réduction de la dimensionnalité)
Vous pouvez effectuer un tour de sélection d'entités (par exemple en utilisant LASSO) pour obtenir un espace d'entités de dimension inférieure. Quelque chose comme la sélection de fonctionnalités à l'aide de LASSO peut être utile si certains sous-ensembles de fonctionnalités importants mais inconnus ne sont pas pertinents.
Utilisez des algorithmes moins sujets au surapprentissage, comme la forêt aléatoire. (Selon les paramètres, le nombre de fonctionnalités, etc.), ceux-ci peuvent être plus coûteux en calcul que les moindres carrés ordinaires.)
Certaines des autres réponses ont également mentionné les avantages des techniques / algorithmes de boosting et d'ensachage.
Méthodes bayésiennes
L'ajout d'un a priori sur le vecteur de coefficient réduit le sur-ajustement. Ceci est conceptuellement lié à la régularisation: par exemple. la régression des crêtes est un cas particulier d'estimation maximale a posteriori.
la source
Si vous utilisez un modèle avec un solveur, où vous pouvez définir le nombre d'itérations / d'époques, vous pouvez suivre l'erreur de validation et appliquer un arrêt précoce: arrêtez l'algorithme, lorsque l'erreur de validation commence à augmenter.
la source
Deux réflexions:
J'appuie la stratégie "utiliser un modèle plus simple" proposée par Ben Ogorek .
Je travaille sur des modèles de classification linéaire vraiment clairsemés avec de petits coefficients entiers (par exemple max 5 variables avec des coefficients entiers entre -5 et 5). Les modèles se généralisent bien en termes de précision et de métriques de performance plus délicates (par exemple l'étalonnage).
Cette méthode dans cet article sera mise à l'échelle pour de grandes tailles d'échantillon pour la régression logistique, et peut être étendue pour s'adapter à d'autres classificateurs linéaires avec des fonctions de perte convexe. Il ne traitera pas les cas avec beaucoup de fonctionnalités (sauf sin / d est suffisamment grand, auquel cas les données sont séparables et le problème de classification devient facile).
Si vous pouvez spécifier des contraintes supplémentaires pour votre modèle (par exemple, contraintes de monotonie, informations secondaires), cela peut également aider à la généralisation en réduisant l'espace d'hypothèse (voir par exemple ce document ).
Cela doit être fait avec soin (par exemple, vous voulez probablement comparer votre modèle à une ligne de base sans contraintes et concevoir votre processus de formation de manière à vous assurer que vous n'êtes pas contraint de choisir des contraintes).
la source