web-dev-qa-db-fra.com

Quel est l'inverse de la force de régularisation dans la régression logistique? Comment cela devrait-il affecter mon code?

J'utilise sklearn.linear_model.LogisticRegression dans scikit learn pour exécuter une régression logistique.

C : float, optional (default=1.0) Inverse of regularization strength;
    must be a positive float. Like in support vector machines, smaller
    values specify stronger regularization.

Que signifie C ici en termes simples, s'il vous plaît? Qu'est-ce que la force de régularisation?

36
user3427495

Régularisation applique une pénalité à l'augmentation de la magnitude des valeurs des paramètres afin de réduire sur-ajustement . Lorsque vous entraînez un modèle tel qu'un modèle de régression logistique, vous choisissez des paramètres qui vous donnent le meilleur ajustement aux données. Cela signifie minimiser l'erreur entre ce que le modèle prédit pour votre variable dépendante compte tenu de vos données par rapport à ce qu'est réellement votre variable dépendante.

Le problème survient lorsque vous avez beaucoup de paramètres (beaucoup de variables indépendantes) mais pas trop de données. Dans ce cas, le modèle adaptera souvent les valeurs des paramètres aux particularités de vos données, ce qui signifie qu'il s'adapte presque parfaitement à vos données. Cependant, comme ces particularités n'apparaissent pas dans les données futures que vous voyez, votre modèle prédit mal.

Pour résoudre ce problème, ainsi que minimiser l'erreur comme déjà discuté, vous ajoutez à ce qui est minimisé et minimisez également une fonction qui pénalise les grandes valeurs des paramètres. Le plus souvent, la fonction est λΣθj2, qui est une constante λ fois la somme des valeurs des paramètres au carré θj2. Plus λ est grand, moins il est probable que les paramètres seront augmentés en amplitude simplement pour s'ajuster aux petites perturbations dans les données. Dans votre cas cependant, plutôt que de spécifier λ, vous spécifiez C = 1/λ.

59
TooTone