sklearn.linear_model
.TheilSenRegressor¶
- class sklearn.linear_model.TheilSenRegressor¶
Estimador Theil-Sen: modelo robusto de regresión multivariante.
El algoritmo calcula las soluciones de mínimos cuadrados en subconjuntos de tamaño n_subsamples de las muestras de X. Cualquier valor de n_subsamples entre el número de características y de muestras conduce a un estimador con un compromiso entre robustez y eficiencia. Dado que el número de soluciones de mínimos cuadrados es «n_samples elige n_subsamples», puede ser extremadamente grande y, por tanto, puede limitarse con max_subpopulation. Si se alcanza este límite, los subconjuntos se eligen aleatoriamente. En un último paso, se calcula la mediana espacial (o mediana L1) de todas las soluciones de mínimos cuadrados.
Más información en el Manual de usuario.
- Parámetros
- fit_interceptbool, default=True
Si se calcula el intercepto para este modelo. Si se establece en false, no se utilizará ningún intercepto en los cálculos.
- copy_Xbool, default=True
Si es True, X se copiará; si no, puede ser sobrescrito.
- max_subpopulationint, default=1e4
En lugar de calcular con un conjunto de cardinalidad “n choose k”, donde n es el número de muestras y k es el número de submuestras (al menos el número de características), considera sólo una subpoblación estocástica de un tamaño máximo dado si “n choose k” es mayor que max_subpopulation. Para otros tamaños de problema que no sean pequeños, este parámetro determinará el uso de memoria y el tiempo de ejecución si no se modifica el n_subsamples.
- n_subsamplesint, default=None
Número de muestras para calcular los parámetros. Es al menos el número de características (más 1 si fit_intercept=True) y el número de muestras como máximo. Un número menor conduce a un punto de ruptura más alto y una eficiencia baja, mientras que un número alto conduce a un punto de ruptura bajo y una eficiencia alta. Si es None, se toma el número mínimo de submuestras que conduce a la máxima robustez. Si n_subsamples se establece en n_samples, Theil-Sen es idéntico a los mínimos cuadrados.
- max_iterint, default=300
Número máximo de iteraciones para el cálculo de la mediana espacial.
- tolfloat, default=1.e-3
Tolerancia al calcular la mediana espacial.
- random_stateentero, instancia de RandomState o None, default=None
Una instancia del generador de números aleatorios para definir el estado del generador de permutaciones aleatorias. Pase un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario
- n_jobsint, 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.- verbosebool, default=False
Modo verboso al ajustar el modelo.
- Atributos
- coef_ndarray de forma (n_features,)
Coeficientes del modelo de regresión (mediana de la distribución).
- intercept_float
Intercepción estimada del modelo de regresión.
- breakdown_float
Punto de ruptura aproximado.
- n_iter_int
Número de iteraciones necesarias para la mediana espacial.
- n_subpopulation_int
Número de combinaciones que se tienen en cuenta a partir de “n choose k”, siendo n el número de muestras y k el número de submuestras.
Referencias
Theil-Sen Estimators in a Multiple Linear Regression Model, 2009 Xin Dang, Hanxiang Peng, Xueqin Wang and Heping Zhang http://home.olemiss.edu/~xdang/papers/MTSE.pdf
Ejemplos
>>> from sklearn.linear_model import TheilSenRegressor >>> from sklearn.datasets import make_regression >>> X, y = make_regression( ... n_samples=200, n_features=2, noise=4.0, random_state=0) >>> reg = TheilSenRegressor(random_state=0).fit(X, y) >>> reg.score(X, y) 0.9884... >>> reg.predict(X[:1,]) array([-31.5871...])
Métodos
Ajustar el modelo lineal.
Obtiene los parámetros para este estimador.
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.
- Parámetros
- Xndarray de forma (n_samples, n_features)
Datos de entrenamiento.
- yndarray de forma (n_samples,)
Valores objetivo.
- Devuelve
- selfdevuelve una instancia de sí misma.
- 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 sub objetos contenidos que son estimadores.
- Devuelve
- paramsdict
Nombres de parámetros mapeados a sus valores.
- 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()
. La mejor puntuación 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_muestras, n_muestras_ajustadas)
, donden_muestras_ajustadas
es el número de muestras utilizadas en el ajuste para el estimador.- yarray-like de forma (n_samples,) or (n_samples, n_outputs)
Valores verdaderos para
X
.- sample_weightarray-like de forma (n_samples,), default=None
Ponderaciones de muestra.
- Devuelve
- scorefloat
\(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 de estimador
Instancia de estimador.