Scikit Learn - Regressão do cume
A regressão de cume ou regularização de Tikhonov é a técnica de regularização que realiza a regularização de L2. Ele modifica a função de perda adicionando a penalidade (quantidade de encolhimento) equivalente ao quadrado da magnitude dos coeficientes.
$$ \ 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 = perda _ {-} função + \ alpha \ displaystyle \ sum \ limits_ {i = 1} ^ nW_i ^ 2 $$sklearn.linear_model.Ridge é o módulo usado para resolver um modelo de regressão em que a função de perda é a função de mínimos quadrados lineares e a regularização é L2.
Parâmetros
A tabela a seguir consiste nos parâmetros usados por Ridge módulo -
Sr. Não | Parâmetro e Descrição |
---|---|
1 | alpha - {float, array-like}, forma (n_targets) Alpha é o parâmetro de ajuste que decide o quanto queremos penalizar o modelo. |
2 | fit_intercept - booleano Este parâmetro especifica que uma constante (polarização ou interceptação) deve ser adicionada à função de decisão. Nenhuma interceptação será usada no cálculo, se for definida como falsa. |
3 | tol - flutuante, opcional, padrão = 1e-4 Ele representa a precisão da solução. |
4 | normalize - Booleano, opcional, padrão = False Se este parâmetro for definido como True, o regressor X será normalizado antes da regressão. A normalização será feita subtraindo a média e dividindo pela norma L2. E sefit_intercept = False, este parâmetro será ignorado. |
5 | copy_X - Booleano, opcional, padrão = Verdadeiro Por padrão, é verdade, o que significa que X será copiado. Mas se for definido como falso, X pode ser substituído. |
6 | max_iter - int, opcional Como o nome sugere, ele representa o número máximo de iterações tomadas para solvers de gradiente conjugado. |
7 | solver - str, {'auto', 'svd', 'cholesky', 'lsqr', 'sparse_cg', 'sag', 'saga'} ' Este parâmetro representa qual solucionador usar nas rotinas computacionais. A seguir estão as propriedades das opções neste parâmetro
|
8 | random_state - int, instância RandomState ou Nenhum, opcional, padrão = nenhum Este parâmetro representa a semente do número pseudoaleatório gerado que é usado ao embaralhar os dados. A seguir estão as opções -
|
Atributos
A tabela a seguir consiste nos atributos usados por Ridge módulo -
Sr. Não | Atributos e descrição |
---|---|
1 | coef_ - matriz, forma (n_features,) ou (n_target, n_features) Este atributo fornece os vetores de peso. |
2 | Intercept_- float | matriz, forma = (n_targets) Ele representa o termo independente na função de decisão. |
3 | n_iter_ - matriz ou nenhum, forma (n_targets) Disponível apenas para os solucionadores 'sag' e 'lsqr', retorna o número real de iterações para cada destino. |
Exemplo de Implementação
Seguir o script Python fornece um exemplo simples de implementação de Ridge Regression. Estamos usando 15 amostras e 10 recursos. O valor de alfa é 0,5 em nosso caso. Existem dois métodos, a saberfit() e score() usado para ajustar este modelo e calcular a pontuação, respectivamente.
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)
Resultado
0.76294987
A saída mostra que o modelo Ridge Regression acima deu a pontuação de cerca de 76 por cento. Para obter mais precisão, podemos aumentar o número de amostras e recursos.
Exemplo
Para o exemplo acima, podemos obter o vetor de peso com a ajuda do seguinte script python -
rdg.coef_
Resultado
array([ 0.32720254, -0.34503436, -0.2913278 , 0.2693125 , -0.22832508,
-0.8635094 , -0.17079403, -0.36288055, -0.17241081, -0.43136046])
Exemplo
Da mesma forma, podemos obter o valor de interceptar com a ajuda do seguinte script python -
rdg.intercept_
Resultado
0.527486