class sklearn.linear_model.MultiTaskLassoCV(*, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, normalize=False, max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, random_state=None, selection='cyclic')[source]

Modelo de lazo multitarea entrenado con norma mixta L1 / L2 como regularizador.

Consulte la entrada del glosario para estimador de validación cruzada.

El objetivo de optimización de MultiTaskLasso es:

(1/(2* n_samples))*||Y - XW||^Fro_2 + alpha *||W||_21

Dónde:

||W||_21 = sum_i sqrtsum_j w_ij^2

es decir, la suma de la norma de cada fila.

Leer más en el Guía del usuario.

Nuevo en la versión 0.15.

Parámetros
epsfloat, default=1e-3

Longitud del camino. 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.

alphasarray-like, default=None

Lista de alfas donde calcular los modelos. Si no se proporciona, configúrelo automáticamente.

fit_interceptbool, default=True

Ya sea para calcular la intersección para este modelo. Si se establece en falso, no se utilizará ninguna intersección 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 está establecido en False. Si es verdadero, los regresores X se normalizarán antes de la regresión restando la media y dividiendo por la norma l2. Si desea estandarizar, utilice StandardScaler antes de llamar fit en un estimador con normalize=False.

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 es menor que tol.

copy_Xbool, default=True

Si True, Se copiará X; de lo contrario, puede sobrescribirse.

cvint, cross-validation generator or iterable, default=None

Determina la estrategia de división de validación cruzada. Las posibles entradas para cv son:

  • Ninguno, para utilizar la validación cruzada 5 veces predeterminada,
  • int, para especificar el número de pliegues.
  • Divisor de CV,
  • Un rendimiento iterable (entrenamiento, prueba) se divide como matrices de índices.

Para entradas int / None, KFold se utiliza.

Referir Guía del usuario para las diversas estrategias de validación cruzada que se pueden utilizar aquí.

Modificado en la versión 0.22: cv valor predeterminado si Ninguno cambió de 3 veces a 5 veces.

verbosebool or int, default=False

Cantidad de verbosidad.

n_jobsint, default=None

Número de CPU que se utilizarán durante la validación cruzada. Tenga en cuenta que esto se usa solo si se dan varios valores para l1_ratio. None significa 1 a menos que en un joblib.parallel_backend contexto. -1 significa utilizar todos los procesadores. Ver Glosario para más detalles.

random_stateint, RandomState instance, default=None

La semilla del generador de números pseudoaleatorios que selecciona una característica aleatoria para actualizar. Usado cuando selection == ‘aleatorio’. Pase un int para una salida reproducible a través de múltiples llamadas a funciones. Ver Glosario.

selection‘cyclic’, ‘random’, default=’cyclic’

Si se establece en ‘aleatorio’, un coeficiente aleatorio se actualiza en cada iteración en lugar de recorrer las características secuencialmente de forma predeterminada. Esto (establecerlo en ‘aleatorio’) a menudo conduce a una convergencia significativamente más rápida, especialmente cuando tol es mayor que 1e-4.

Atributos
intercept_ndarray of shape (n_tasks,)

Término independiente en función de decisión.

coef_ndarray of shape (n_tasks, n_features)

Vector de parámetros (W en la fórmula de la función de costo). Tenga en cuenta que coef_ almacena la transposición de W, W.T.

alpha_float

La cantidad de penalización elegida por validación cruzada.

mse_path_ndarray of shape (n_alphas, n_folds)

Error cuadrático medio para el conjunto de pruebas en cada pliegue, alfa variable.

alphas_ndarray of shape (n_alphas,)

La cuadrícula de alfas utilizada para encajar.

n_iter_int

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

dual_gap_float

La brecha dual al final de la optimización para el alfa óptimo.

Ver también

MultiTaskElasticNet
ElasticNetCV
MultiTaskElasticNetCV

Notas

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

Para evitar la duplicación de memoria innecesaria, los argumentos X e y del método de ajuste deben pasarse directamente como matrices numpy contiguas a Fortran.

Ejemplos de

>>>from sklearn.linear_model import MultiTaskLassoCV
>>>from sklearn.datasets import make_regression
>>>from sklearn.metrics import r2_score
>>> X, y = make_regression(n_targets=2, noise=4, random_state=0)>>> reg = MultiTaskLassoCV(cv=5, random_state=0).fit(X, y)>>> r2_score(y, reg.predict(X))0.9994...>>> reg.alpha_
0.5713...>>> reg.predict(X[:1,])
array([[153.7971...,94.9015...]])

Métodos

fit(X, y)

Ajustar modelo lineal con descenso de coordenadas.

get_params([deep])

Obtenga parámetros para este estimador.

path(* argumentos, ** kwargs)

Calcular ruta de lazo con descenso de coordenadas

predict(X)

Predecir usando el modelo lineal.

score(X, y[, sample_weight])

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

set_params(** parámetros)

Establezca los parámetros de este estimador.

fit(X, y)[source]

Ajustar modelo lineal con descenso de coordenadas.

El ajuste está en la cuadrícula de alfas y el mejor alfa se estima mediante validación cruzada.

Parámetros
Xarray-like, sparse matrix of shape (n_samples, n_features)

Datos de entrenamiento. Pase directamente como datos contiguos a Fortran para evitar la duplicación de memoria innecesaria. Si y es una salida mono, X puede ser escasa.

yarray-like of shape (n_samples,) or (n_samples, n_targets)

Valores objetivo.

get_params(deep=True)[source]

Obtenga 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.

Devoluciones
paramsdict

Nombres de parámetros asignados a sus valores.

static path(*args, **kwargs)[source]

Calcular ruta de lazo con descenso de coordenadas

La función de optimización de Lasso varía para mono y salidas múltiples.

Para tareas mono-salida es:

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

Para tareas de múltiples salidas es:

(1/(2* n_samples))*||Y - XW||^2_Fro + alpha *||W||_21

Dónde:

||W||_21 = sum_i sqrtsum_j w_ij^2

es decir, la suma de la norma de cada fila.

Leer más en el Guía del usuario.

Parámetros
Xarray-like, sparse matrix of shape (n_samples, n_features)

Datos de entrenamiento. Pase directamente como datos contiguos a Fortran para evitar la duplicación de memoria innecesaria. Si y es mono-salida entonces X puede ser escasa.

yarray-like, sparse matrix of shape (n_samples,) or (n_samples, n_outputs)

Valores objetivo

epsfloat, default=1e-3

Longitud del camino. 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 None los alfa se establecen automáticamente

precompute‘auto’, bool or array-like of shape (n_features, n_features), default=’auto’

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

Xyarray-like of shape (n_features,) or (n_features, n_outputs), default=None

Xy = np.dot (XT, y) que se puede calcular previamente. Es útil solo cuando la matriz de Gram está calculada previamente.

copy_Xbool, default=True

Si True, Se copiará X; de lo contrario, puede sobrescribirse.

coef_initndarray of shape (n_features, ), default=None

Los valores iniciales de los coeficientes.

verbosebool or int, default=False

Cantidad de verbosidad.

return_n_iterbool, default=False

si devolver el número de iteraciones o no.

positivebool, default=False

Si se establece en Verdadero, fuerza a los coeficientes a ser positivos. (Solo permitido cuando y.ndim == 1).

**paramskwargs

argumentos de palabra clave pasados ​​al solucionador de descenso de coordenadas.

Devoluciones
alphasndarray of shape (n_alphas,)

Los alfas a lo largo de la ruta donde se calculan los modelos.

coefsndarray of shape (n_features, n_alphas) or (n_outputs, n_features, n_alphas)

Coeficientes a lo largo del camino.

dual_gapsndarray of shape (n_alphas,)

Los espacios dobles al final de la optimización para cada alfa.

n_iterslist of int

El número de iteraciones tomadas por el optimizador de descenso de coordenadas para alcanzar la tolerancia especificada para cada alfa.

Ver también

lars_path
Lasso
LassoLars
LassoCV
LassoLarsCV
sklearn.decomposition.sparse_encode

Notas

Por ejemplo, vea examples / linear_model / plot_lasso_coordinate_descent_path.py.

Para evitar la duplicación de memoria innecesaria, el argumento X del método de ajuste debe pasarse directamente como una matriz numpy contigua a Fortran.

Tenga en cuenta que, en ciertos casos, el solucionador de Lars puede ser significativamente más rápido para implementar esta funcionalidad. En particular, la interpolación lineal se puede utilizar para recuperar los coeficientes del modelo entre los valores generados por lars_path

Ejemplos de

Comparando lasso_path y lars_path con interpolación:

>>> X = np.array([[1,2,3.1],[2.3,5.4,4.3]]).T
>>> y = np.array([1,2,3.1])>>># Use lasso_path to compute a coefficient path>>> _, coef_path, _ = lasso_path(X, y, alphas=[5.,1.,.5])>>>print(coef_path)[[0.0.0.46874778][0.21590480.44257650.23689075]]
>>># Now use lars_path and 1D linear interpolation to compute the>>># same path>>>from sklearn.linear_model import lars_path
>>> alphas, active, coef_path_lars = lars_path(X, y, method='lasso')>>>from scipy import interpolate
>>> coef_path_continuous = interpolate.interp1d(alphas[::-1],...                                             coef_path_lars[:,::-1])>>>print(coef_path_continuous([5.,1.,.5]))[[0.0.0.46915237][0.21590480.44257650.23668876]]
predict(X)[source]

Predecir usando el modelo lineal.

Parámetros
Xarray-like or sparse matrix, shape (n_samples, n_features)

Muestras.

Devoluciones
Carray, shape (n_samples,)

Devuelve valores predichos.

score(X, y, sample_weight=None)[source]

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

El coeficiente (R ^ 2 ) Se define como ((1 – frac u v) ), dónde (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()
. 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 funciones de entrada, obtendría un (R ^ 2 ) puntuación de 0,0.

Parámetros
Xarray-like of shape (n_samples, n_features)

Muestras de prueba. Para algunos estimadores, esto puede ser una matriz de kernel precalculada o una lista de objetos genéricos en su lugar con forma (n_samples, n_samples_fitted), dónde n_samples_fitted es el número de muestras utilizadas en el ajuste del estimador.

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

Valores verdaderos para X.

sample_weightarray-like of shape (n_samples,), default=None

Pesos de muestra.

Devoluciones
scorefloat

(R ^ 2 ) de self.predict(X) wrt. y.

Notas

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

set_params(**params)[source]

Establezca 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 __ para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devoluciones
selfestimator instance

Instancia de estimador.