Scikit Learn - Régression Ridge
La régression de crête ou régularisation de Tikhonov est la technique de régularisation qui effectue la régularisation L2. Il modifie la fonction de perte en ajoutant la pénalité (quantité de retrait) équivalente au carré de la grandeur des coefficients.
$$ \ displaystyle \ sum \ limits_ {j = 1} ^ m \ left (Y_ {i} -W_ {0} - \ displaystyle \ sum \ limits_ {i = 1} ^ nW_ {i} X_ {ji} \ right ) ^ {2} + \ alpha \ displaystyle \ sum \ limits_ {i = 1} ^ nW_i ^ 2 = loss _ {-} function + \ alpha \ displaystyle \ sum \ limits_ {i = 1} ^ nW_i ^ 2 $$sklearn.linear_model.Ridge est le module utilisé pour résoudre un modèle de régression où la fonction de perte est la fonction des moindres carrés linéaires et la régularisation est L2.
Paramètres
Le tableau suivant comprend les paramètres utilisés par Ridge module -
Sr. Non | Paramètre et description |
---|---|
1 | alpha - {float, en forme de tableau}, forme (n_targets) Alpha est le paramètre de réglage qui décide à quel point nous voulons pénaliser le modèle. |
2 | fit_intercept - Booléen Ce paramètre spécifie qu'une constante (biais ou interception) doit être ajoutée à la fonction de décision. Aucune interception ne sera utilisée dans le calcul, si elle est définie sur false. |
3 | tol - float, facultatif, par défaut = 1e-4 Il représente la précision de la solution. |
4 | normalize - Booléen, facultatif, par défaut = False Si ce paramètre est défini sur True, le régresseur X sera normalisé avant la régression. La normalisation se fera en soustrayant la moyenne et en la divisant par la norme L2. Sifit_intercept = False, ce paramètre sera ignoré. |
5 | copy_X - Booléen, facultatif, par défaut = True Par défaut, il est vrai, ce qui signifie que X sera copié. Mais s'il est défini sur false, X peut être écrasé. |
6 | max_iter - int, facultatif Comme son nom l'indique, il représente le nombre maximum d'itérations prises pour les solveurs de gradient conjugués. |
sept | solver - str, {'auto', 'svd', 'cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga'} ' Ce paramètre représente le solveur à utiliser dans les routines de calcul. Voici les propriétés des options sous ce paramètre
|
8 | random_state - int, instance RandomState ou None, facultatif, par défaut = aucun Ce paramètre représente la graine du nombre pseudo aléatoire généré qui est utilisé lors du brassage des données. Voici les options -
|
Les attributs
Le tableau suivant comprend les attributs utilisés par Ridge module -
Sr. Non | Attributs et description |
---|---|
1 | coef_ - tableau, forme (n_features,) ou (n_target, n_features) Cet attribut fournit les vecteurs de poids. |
2 | Intercept_- flotteur | tableau, forme = (n_targets) Il représente le terme indépendant dans la fonction de décision. |
3 | n_iter_ - tableau ou Aucun, forme (n_targets) Disponible uniquement pour les solveurs 'sag' et 'lsqr', renvoie le nombre réel d'itérations pour chaque cible. |
Exemple d'implémentation
Le script Python suivant fournit un exemple simple d'implémentation de Ridge Regression. Nous utilisons 15 échantillons et 10 fonctionnalités. La valeur de alpha est de 0,5 dans notre cas. Il existe deux méthodes à savoirfit() et score() utilisé pour ajuster ce modèle et calculer le score respectivement.
from sklearn.linear_model import Ridge
import numpy as np
n_samples, n_features = 15, 10
rng = np.random.RandomState(0)
y = rng.randn(n_samples)
X = rng.randn(n_samples, n_features)
rdg = Ridge(alpha = 0.5)
rdg.fit(X, y)
rdg.score(X,y)
Production
0.76294987
La sortie montre que le modèle de régression de crête ci-dessus a donné un score d'environ 76%. Pour plus de précision, nous pouvons augmenter le nombre d'échantillons et de fonctionnalités.
Exemple
Pour l'exemple ci-dessus, nous pouvons obtenir le vecteur de poids à l'aide du script python suivant -
rdg.coef_
Production
array([ 0.32720254, -0.34503436, -0.2913278 , 0.2693125 , -0.22832508,
-0.8635094 , -0.17079403, -0.36288055, -0.17241081, -0.43136046])
Exemple
De même, nous pouvons obtenir la valeur de l'interception à l'aide du script python suivant -
rdg.intercept_
Production
0.527486