0

J'essaie de mettre en œuvre un classificateur binaire en utilisant la régression logistique pour les données tirées de deux ensembles de points (classes y (-1, 1)). Comme on le voit ci-dessous, nous pouvons utiliser le paramètre a pour éviter le surajustement.Convergence et régularisation dans un classificateur de régression linéaire

target_function

Maintenant, je ne suis pas sûr, comment choisir la valeur « bon » pour une. Une autre chose dont je ne suis pas sûr est de savoir comment choisir un "bon" critère de convergence pour ce genre de problème.

+0

Cela ne constitue-t-il pas plus une question pour la validation croisée? –

+0

La régression linéaire de @Natecat est techniquement l'apprentissage automatique, mais à son niveau le plus fondamental, je dirais –

+1

Il n'y a pas de règle stricte pour déterminer le paramètre de convergence et de régularisation. Vous pouvez diviser votre ensemble de données en 3 parties: train, validation, test. Vous pouvez vous entraîner sur des données d'entraînement avec différentes valeurs de a et pour différents nombres d'itérations. Ensuite, vous pouvez prédire sur l'ensemble de validation pour voir à quel point votre classificateur fait de nouvelles données. Cela donne un indice quant à savoir si vous overfit/underfit. Une fois que vous obtenez de bons résultats sur l'ensemble de validation, prédisez sur l'ensemble de test pour obtenir une «vraie» mesure de la qualité de votre classificateur. – user2570465

Répondre

1

valeur 'a'

Le choix des choses "bonnes" est une sorte de méta-régression: choisir une valeur pour un qui semble raisonnable. Exécutez la régression. Essayez à nouveau avec et les valeurs plus grandes et plus petites d'un facteur de 3. Si l'une fonctionne mieux que l'original, essayez un autre facteur de 3 dans cette direction - mais arrondissez-le de 9x à 10x pour plus de lisibilité. Vous avez l'idée ... jouez avec jusqu'à ce que vous soyez dans la bonne gamme. Sauf si vous êtes vraiment essayant d'optimiser le résultat, vous aurez probablement pas besoin de le réduire beaucoup plus proche que ce facteur de 3.

Data Set Partition

gens ML ont passé beaucoup de mots analysant la meilleure répartition. La répartition optimale dépend beaucoup de votre espace de données. En tant qu'heuristique globale, utilisez la moitié ou un peu plus pour la formation; du reste, pas plus de la moitié devrait être utilisée pour les tests, le reste pour la validation. Par exemple, 50:20:30 est une approximation viable pour train: test: validate. Encore une fois, vous pouvez jouer avec cela un peu ... sauf que vrai test du taux d'erreur serait entièrement nouveau.

Convergence

Cela dépend beaucoup des caractéristiques de votre espace d'erreur empirique près de la meilleure solution, ainsi que près de régions locales de faible gradient. La première considération est de choisir une fonction d'erreur qui est susceptible d'être convexe et qui n'a pas de régions aplaties. La seconde est d'avoir une idée de l'ampleur du gradient dans la région d'une solution désirée (la normalisation de vos données aidera à cela); utilisez ceci pour aider à choisir le rayon de convergence; vous pourriez vouloir jouer avec cette mise à l'échelle 3x ici aussi. Le dernier est de jouer avec le taux d'apprentissage, de sorte qu'il est adapté aux données normalisées.

Est-ce que cela aide?

+0

Merci pour votre réponse.Je ne suis toujours pas sûr des ordres de grandeur à essayer ... Serait-ce de 1 à 1000? 10^-3 à 1? Est-ce que 10^-6 à 10^-3 est plus réaliste? Il semble y avoir beaucoup trop d'options à essayer intensivement. – vonludi

+0

Encore une fois, cela dépend de vos données. J'ai généralement trouvé que commencer à partir de 10^-3 d'une valeur de données moyenne fonctionne assez bien. En outre, utilisez la décroissance du taux d'apprentissage si votre framework le supporte: réduisez ** a ** par, disons, 4% toutes les 1000 itérations. Il est utile d'avoir un taux d'apprentissage plus élevé au début, plus petit au fur et à mesure de la convergence. – Prune