sklearn.linear_model.MultiTaskElasticNet

class sklearn.linear_model.MultiTaskElasticNet

Modelo ElasticNet multitarea entrenado con la norma mixta L1/L2 como regularizador.

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 las normas de cada fila.

Leer más en el Manual de Usuario.

Parámetros
alphafloat, default=1.0

Constante que multiplica el término L1/L2. Por defecto es 1.0.

l1_ratiofloat, 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.

fit_interceptbool, default=True

Si se calcula el intercepto para este modelo. Si se establece en falso, no se utilizará ningún intercepto en los cálculos (es decir, se espera que los datos estén centrados).

normalizebool, default=False

Este parámetro se ignora cuando fit_intercept se establece en False. Si es True, los regresores X serán normalizados antes de la regresión restando la media y dividiendo entre la norma l2. Si deseas normalizar, por favor utiliza StandardScaler antes de llamar a fit en un estimador con normalize=False.

copy_Xbool, default=True

Si es True, X se copiará; si no, puede ser sobrescrita.

max_iterint, default=1000

El número máximo de iteraciones.

tolfloat, default=1e-4

La tolerancia para la optimización: si las actualizaciones son menores que tol, el código de optimización comprueba la optimización de la brecha dual y continúa hasta que sea menor que tol.

warm_startbool, default=False

Cuando se establece en True, reutiliza la solución de la llamada previa a fit como inicialización, de lo contrario, sólo borra la solución previa. Ver el Glosario.

random_stateint, instancia RandomState, default=None

La semilla del generador de números pseudoaleatorios que selecciona una característica aleatoria para actualizar. Se utiliza cuando selection == “random”. Pasa un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.

selection{“cyclic”, “random”}, default=”cyclic”

Si se establece en “random”, se actualiza un coeficiente aleatorio en cada iteración en lugar de hacer un bucle sobre las características de forma secuencial por defecto. Esto (establecerlo en “random”) a menudo conduce a una convergencia significativamente más 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)

Vector de parámetros (W en la fórmula de la función de costo). Si una y 1D se pasa en el ajuste (uso no multitarea), coef_ es entonces un arreglo 1D. Ten en cuenta que coef_ almacena la transposición de W, W.T.

n_iter_int

Número de iteraciones ejecutadas por el solucionador de descenso de coordenadas para alcanzar la tolerancia especificada.

dual_gap_float

Las brechas duales al final de la optimización.

eps_float

La tolerancia escalada por la varianza del objetivo y.

sparse_coef_matriz dispersa de forma (n_features,) o (n_tasks, n_features)

Representación dispersa del coef_ ajustado.

Ver también

MultiTaskElasticNetCV

ElasticNet multitarea L1/L2 con validación cruzada incorporada.

ElasticNet
MultiTaskLasso

Notas

El algoritmo utilizado para ajustar el modelo es el descenso de coordenadas.

Para evitar la duplicación innecesaria de memoria, los argumentos X y y del método fit deben pasarse directamente como arreglos numpy Fortran-contiguos.

Ejemplos

>>> from sklearn import linear_model
>>> clf = linear_model.MultiTaskElasticNet(alpha=0.1)
>>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]])
MultiTaskElasticNet(alpha=0.1)
>>> print(clf.coef_)
[[0.45663524 0.45612256]
 [0.45663524 0.45612256]]
>>> print(clf.intercept_)
[0.0872422 0.0872422]

Métodos

fit

Ajusta el modelo MultiTaskElasticNet con descenso de coordenadas

get_params

Obtiene los parámetros para este estimador.

path

Calcula la ruta de la red elástica con el descenso de coordenadas.

predict

Predice utilizando el modelo lineal.

score

Devuelve el coeficiente de determinación \(R^2\) de la predicción.

set_params

Establece los parámetros de este estimador.

fit()

Ajusta el modelo MultiTaskElasticNet con descenso de coordenadas

Parámetros
Xndarray de forma (n_samples, n_features)

Datos.

yndarray de forma (n_samples, n_tasks)

Objetivo. Se convertirá al dtype de X si es necesario.

Notas

El descenso de coordenadas es un algoritmo que considera cada columna de datos a la vez, por lo que convertirá automáticamente la entrada X a un arreglo numpy Fortran-contiguo si es necesario.

Para evitar la reasignación de memoria se aconseja asignar los datos iniciales en memoria directamente utilizando ese formato.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, 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 la red elástica con el descenso de coordenadas.

La función de optimización de la red elástica varía para las monosalidas y multisalidas.

Para las tareas de salida única es:

1 / (2 * n_samples) * ||y - Xw||^2_2
+ alpha * l1_ratio * ||w||_1
+ 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2

Para las tareas de salida múltiple 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.

Leer más en el Manual de Usuario.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Datos de entrenamiento. Pasa directamente como datos Fortran-contiguos para evitar la duplicación innecesaria de memoria. Si y es monosalida entonces X puede ser dispersa.

y{array-like, sparse matrix} de forma (n_samples,) o (n_samples, n_outputs)

Valores objetivo.

l1_ratiofloat, default=0.5

Número entre 0 y 1 pasado a la red elástica (escala entre las penalizaciones l1 y l2). l1_ratio=1 corresponde al Lasso.

epsfloat, default=1e-3

Longitud de la ruta. eps=1e-3 significa que alpha_min / alpha_max = 1e-3.

n_alphasint, 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 o array-like de forma (n_features, n_features), default=”auto”

Si se utiliza una matriz de Gram precalculada para acelerar los cálculos. Si se establece en 'auto' podemos decidir. La matriz de Gram también se puede pasar como argumento.

Xyarray-like de forma (n_features,) o (n_features, n_outputs), default=None

Xy = np.dot(X.T, y) que puede precalcularse. Sólo es útil cuando la matriz de Gram está precalculada.

copy_Xbool, default=True

Si es True, X se copiará; si no, puede ser sobrescrita.

coef_initndarray de forma (n_features, ), default=None

Los valores iniciales de los coeficientes.

verbosebool o int, default=False

Cantidad de verbosidad.

return_n_iterbool, default=False

Si se devuelve o no el número de iteraciones.

positivebool, default=False

Si se establece en True, obliga a que los coeficientes sean positivos. (Sólo se permite cuando y.ndim == 1).

check_inputbool, default=True

Si se establece en False, se omiten las comprobaciones de validación de la entrada (incluyendo la matriz de Gram cuando se proporciona). Se asume que son manejadas por el invocador.

**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 de la ruta donde se calculan los modelos.

coefsndarray de forma (n_features, n_alphas) o (n_outputs, n_features, n_alphas)

Coeficientes a lo largo de la ruta.

dual_gapsndarray de forma (n_alphas,)

Las brechas duales al final de la optimización para cada alfa.

n_iterslista de int

El número de iteraciones tomadas por el optimizador de descenso de coordenadas para alcanzar la tolerancia especificada para cada alfa. (Se devuelve cuando return_n_iter se establece en 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 de cuadrados residual ((y_true - y_pred) ** 2).sum() y \(v\) es la suma total de cuadrados ((y_true - y_true.mean()) ** 2).sum(). La mejor puntuación posible es 1.0 y puede ser negativa (porque el modelo puede ser arbitrariamente peor). Un modelo constante que siempre predice el valor esperado de y, sin tener en cuenta las características de entrada, obtendría una puntuación \(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), donde n_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 muestras.

Devuelve
scorefloat

\(R^2\) de self.predict(X) con respecto a y.

Notas

La puntuación \(R^2\) utilizada al llamar a score en un regresor utiliza multioutput='uniform_average' desde la versión 0.23 para mantener la consistencia con el valor predeterminado de r2_score. Esto influye en el método score de todos los regresores de salida múltiple (excepto para MultiOutputRegressor).

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en 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.

property sparse_coef_

Representación dispersa del coef_ ajustado.