sklearn.linear_model
.MultiTaskElasticNetCV¶
- class sklearn.linear_model.MultiTaskElasticNetCV¶
ElasticNet multitarea L1/L2 con validación cruzada incorporada.
Ver entrada de glosario para cross-validation estimator.
El objetivo de optimización para MultiTaskElasticNet es:
(1 / (2 * n_samples)) * ||Y - XW||^Fro_2 + alpha * l1_ratio * ||W||_21 + 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2
Donde:
||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}
es decir, la suma de la norma de cada fila.
Más información en el Manual de usuario.
Nuevo en la versión 0.15.
- Parámetros
- l1_ratioflotante o lista de flotantes, default=0.5
El parámetro de mezcla de ElasticNet, con 0 < l1_ratio <= 1. Para l1_ratio = 1 la penalización es una penalización L1/L2. Para l1_ratio = 0 es una penalización L2. Para
0 < l1_ratio < 1
, la penalización es una combinación de L1/L2 y L2. Este parámetro puede ser una lista, en cuyo caso se prueban los diferentes valores por validación cruzada y se utiliza el que da la mejor puntuación de predicción. Tenga en cuenta que una buena elección de la lista de valores para l1_ratio suele ser poner más valores cerca de 1 (es decir, Lasso) y menos cerca de 0 (es decir, Ridge), como en[.1, .5, .7, .9, .95, .99, 1]
- epsflotante, default=1e-3
Longitud de la ruta.
eps=1e-3
significa quealpha_min / alpha_max = 1e-3
.- n_alphasentero, default=100
Número de alfas a lo largo de la ruta de regularización.
- alphasarray-like, default=None
Lista de alfas donde calcular los modelos. Si es None los alfas se establecen automáticamente.
- fit_interceptbooleano, default=True
Si se calcula el intercepto para este modelo. Si se establece como falso, no se usara ningún intercepto en los cálculos (es decir, los datos se espera que estén centrados).
- normalizebooleano, default=False
Este parámetro es ignorado cuando
fit_intercept
se establece como False. Si es True, los regresores X serán normalizados antes de la regresión restando la media y dividiendo por la norma l2. Si tu deseas estandarizar, por favor utilizaStandardScaler
antes de llamarfit
en un estimador connormalize=False
.- max_iterentero, default=1000
Número máximo de iteraciones.
- tolflotante, default=1e-4
La tolerancia para la optimización: si las actualizaciones son menores que
tol
, el código de optimización comprueba la brecha dual para la optimalidad y continúa hasta que es menor quetol
.- cventero, generador de validación cruzada o iterable, default=None
Determina la estrategia de división de la validación cruzada. Las posibles entradas para cv son:
None, para usar la validación cruzada de 5 partes por defecto,
entero, para especificar el número de pliegues.
Un iterable que produce divisiones (train, test) como matrices de índices.
Para entradas None/de enteros se usa
KFold
.Consulta Manual de usuario para las diversas estrategias de validación cruzada que pueden ser utilizadas aquí.
Distinto en la versión 0.22:
cv
es el valor predeterminado si None cambió de 3 partes a 5 partes.- copy_Xbooleano, default=True
Si es
True
, X se copiará; si no, puede ser sobrescrito.- verbosebooleano o entero, default=0
Cantidad de verbosidad.
- n_jobsentero, default=None
Número de CPUs a usar durante la validación cruzada.
None
significa 1 a menos que esté en un contextojoblib.parallel_backend
.-1
significa utilizar todos los procesadores. Ver Glosario para más detalles.- random_stateentero, instancia de RandomState, default=None
La semilla del generador de números pseudo aleatorio que selecciona una característica aleatoria a actualizar. Usada cuando
selection
==”random”. Pasa un entero para una salida reproducible a través de multiples llamadas de función. Ver Glosario.- selection{“cyclic”, “random”}, default=”cyclic”
Si se establece a “random”, un coeficiente aleatorio es actualizado cada iteración en lugar de hacer un bucle sobre características secuencialmente por defecto. Esto (establecer a “random”) a menudo lleva a convergencia significativamente mas rápida especialmente cuando tol es mayor que 1e-4.
- Atributos
- intercept_ndarray de forma (n_tasks,)
Término independiente en la función de decisión.
- coef_ndarray de forma (n_tasks, n_features)
El parámetro vector (W en la fórmula de la función de costo). Ten en cuenta que
coef_
almacena la transposición deW
,W.T
.- alpha_flotante
La cantidad de penalización elegida por validación cruzada.
- mse_path_ndarray de forma (n_alphas, n_folds) o (n_l1_ratio, n_alphas, n_folds)
Error cuadrático medio para el conjunto de prueba en cada pliegue, variando l1_ratio y alfa.
- alphas_ndarray de forma (n_alphas,) o (n_l1_ratio, n_alphas)
La cuadrícula de alfas usada para ajustar, por cada l1_ratio.
- l1_ratio_flotante
El mejor l1_ratio obtenido por validación cruzada.
- n_iter_entero
Número de iteraciones ejecutadas por el solucionador de descenso de coordenadas para alcanzar la tolerancia especificada para el alfa óptimo.
- dual_gap_flotante
Los huecos duales al final de la optimización para el alfa óptimo.
Ver también
Notas
El algoritmo utilizado para encajar el modelo es el descenso de coordenadas.
Para evitar la duplicación innecesaria de la memoria, los argumentos X y y del método de ajuste deben pasarse directamente como arreglos numpy de Fortran-contiguo.
Ejemplos
>>> from sklearn import linear_model >>> clf = linear_model.MultiTaskElasticNetCV(cv=3) >>> clf.fit([[0,0], [1, 1], [2, 2]], ... [[0, 0], [1, 1], [2, 2]]) MultiTaskElasticNetCV(cv=3) >>> print(clf.coef_) [[0.52875032 0.46958558] [0.52875032 0.46958558]] >>> print(clf.intercept_) [0.00166409 0.00166409]
Métodos
Ajustar el modelo lineal del descenso de coordenadas.
Obtiene los parámetros para este estimador.
Calcula la ruta de red elástica con el descenso de coordenadas.
Predice utilizando el modelo lineal.
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
Establece los parámetros de este estimador.
- fit()¶
Ajustar el modelo lineal del descenso de coordenadas.
El ajuste esta en la cuadrícula de alfas y el mejor alfa estimado por validación cruzada.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Datos de entrenamiento. Pase directamente como datos Fortran-contiguos para evitar la duplicación innecesaria de memoria. Si y es mono-salida entonces X puede ser disperso.
- yarray-like de forma (n_samples,) o (n_samples, n_targets)
Valores objetivo.
- get_params()¶
Obtiene los parámetros para este estimador.
- Parámetros
- deepbooleano, default=True
Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- static path()¶
Calcula la ruta de red elástica con el descenso de coordenadas.
La función de optimización de la red elástica varía para las mono y multisalidas.
Para las tareas mono-salida es:
1 / (2 * n_samples) * ||y - Xw||^2_2 + alpha * l1_ratio * ||w||_1 + 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2
Para tareas multi-salidas es:
(1 / (2 * n_samples)) * ||Y - XW||^Fro_2 + alpha * l1_ratio * ||W||_21 + 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2
Donde:
||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}
es decir, la suma de la norma de cada fila.
Más información en el Manual de usuario.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Datos de entrenamiento. Pase directamente como datos Fortran-contiguos para evitar la duplicación innecesaria de memoria. Si
y
es mono-salida entoncesX
puede ser disperso.- y{array-like, sparse matrix} de forma (n_samples,), o (n_samples, n_outputs)
Valores objetivo.
- l1_ratioflotante, default=0.5
Número entre 0 y 1 pasado a la red elástica (escalado entre penalizaciones l1 y l2).
l1_ratio=1
corresponde al Lasso.- epsflotante, default=1e-3
Longitud de la ruta.
eps=1e-3
significa quealpha_min / alpha_max = 1e-3
.- n_alphasentero, default=100
Número de alfas a lo largo de la ruta de regularización.
- alphasndarray, default=None
Lista de alfas donde calcular los modelos. Si es None los alfas se establecen automáticamente.
- precompute“auto”, bool or array-like of shape (n_features, n_features), default=”auto”
Si usar una matriz precalculada Gram para acelerar los cálculos. Si se establece como
'auto'
, nosotros decidimos. La matriz de Gram puede también ser pasada como un argumento.- Xyarray-like de forma (n_features,) o (n_features, n_outputs), default=None
Xy = np.dot(X.T, y) que puede ser precalculado. Es útil sólo cuando la matriz Gram está precalculada.
- copy_Xbooleano, default=True
Si es
True
, X se copiará; si no, puede ser sobrescrito.- coef_initndarray de forma (n_features, ), default=None
Los valores iniciales de los coeficientes.
- verbosebooleano o entero, default=False
Cantidad de verbosidad.
- return_n_iterbooleano, default=False
Si se devuelve o no el número de iteraciones.
- positivebooleano, default=False
Si se establece como True, obliga a los coeficientes a ser positivos. (Sólo se permite cuando
y.ndim ==1
).- check_inputbooleano, default=True
Si se establece en False, se omiten las comprobaciones de validación de la entrada (incluyendo la matriz Gram cuando se proporciona). Se asume que son manejadas por el llamador.
- **paramskwargs
Argumentos de palabras clave que se pasan al solucionador de descenso de coordenadas.
- Devuelve
- alphasndarray de forma (n_alphas,)
Los alfas a lo largo del camino donde se calculan los modelos.
- coefsndarray de forma (n_features, n_alphas) o (n_outputs, n_features, n_alphas)
Coeficientes a lo largo del camino.
- dual_gapsndarray de forma (n_alphas,)
Los huecos duales al final de la optimización para cada alfa.
- n_iterslista de enteros
El número de iteraciones tomadas por el optimizador de descenso de coordenadas para alcanzar la tolerancia especificada para cada alfa. (Es devuelto cuando
return_n_iter
está establecido a True).
Notas
Para un ejemplo, ver examples/linear_model/plot_lasso_coordinate_descent_path.py.
- predict()¶
Predice utilizando el modelo lineal.
- Parámetros
- Xarray-like o matriz dispersa, forma (n_samples, n_features)
Muestras.
- Devuelve
- Carreglo, forma (n_samples,)
Devuelve los valores predichos.
- score()¶
Devuelve el coeficiente de determinación \(R^2\) de la predicción.
El coeficiente \(R^2\) se define como \((1 - \frac{u}{v})\), donde \(u\) es la suma residual de cuadrados
((y_true - y_pred) ** 2).sum()
y \(v\) es la suma total de cuadrados((y_true - y_true.mean()) ** 2).sum()
. El mejor valo posible es 1.0 y puede ser negativo (porque el modelo puede ser arbitrariamente peor). Un modelo constante que siempre predice el valor esperado dey
, sin tener en cuenta las características de entrada, obtendría un valor \(R^2\) de 0,0.- Parámetros
- Xarray-like de forma (n_samples, n_features)
Muestras de prueba. Para algunos estimadores puede ser una matriz de núcleo precalculada o una lista de objetos genéricos con forma
(n_samples, n_samples_fitted)
, donden_samples_fitted
es el número de muestras utilizadas en el ajuste para el estimador.- yarray-like de forma (n_samples,) o (n_samples, n_outputs)
Valores verdaderos para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de muestra.
- Devuelve
- scoreflotante
\(R^2\) de
self.predict(X)
con respecto ay
.
Notas
El valor \(R^2\) utilizado al llamar a
score
en un regresor utilizamultioutput='uniform_average'
desde la versión 0.23 para mantener la coherencia con el valor predeterminado der2_score`
. Esto influye en el métodoscore
de todos los regresores de salida múltiple (excepto paraMultiOutputRegressor
).
- set_params()¶
Establece los parámetros de este estimador.
El método funciona tanto con estimadores simples como con objetos anidados (como
Pipeline
). Estos últimos tienen parámetros de la forma<component>__<parameter>
para que sea posible actualizar cada componente de un objeto anidado.- Parámetros
- **paramsdict
Parámetros del estimador.
- Devuelve
- selfinstancia del estimador
Instancia del estimador.