sklearn.svm
.LinearSVR¶
- class sklearn.svm.LinearSVR¶
Regresión de Vector de Soporte Lineal.
Similar a SVR con el parámetro kernel=”linear”, pero implementado en términos de liblinear en lugar de libsvm, por lo que tiene más flexibilidad en la elección de las penalidades y funciones de pérdida y debería escalar mejor a un gran número de muestras.
Esta clase soporta entradas densas y dispersas.
Lee más en el Manual de usuario.
Nuevo en la versión 0.16.
- Parámetros
- epsilonflotante, default=0.0
Parámetro épsilon en la función de pérdida insensibles a épsilon. Tenga en cuenta que el valor de este parámetro depende de la escala de la variable de destino y. Si no está seguro, establezca
epsilon=0
.- tolflotante, default=1e-4
Tolerancia para el criterio de parada.
- Cflotante, default=1.0
Parámetro de regularización. La fuerza de la regularización es inversamente proporcional a C. Debe ser estrictamente positiva.
- loss{“epsilon_insensitive”, “squared_epsilon_insensitive”}, default=”epsilon_insensitive”
Especifica la función de pérdida. La pérdida insensible a épsilon (estándar SVR) es la pérdida L1, mientras que la pérdida insensible a épsilon cuadrada (“squared_epsilon_insensitive”) es la pérdida L2.
- fit_interceptbooleano, 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 (es decir, se espera que los datos ya estén centrados).
- intercept_scalingflotante, default=1.
Cuando self.fit_intercept es True, la instancia vector y se vuelve [x, self.intercept_scaling], es decir, una característica «synthetic» con valor constante igual a intercept_scaling se adjunta al vector de instancia. El intercepto se vuelve intercept_scaling * synthetic feature weight. Nota! El ponderado de característica sintetica es sujeto a la regularización l1/l2 como todás las demás características. Para disminuir el efecto de la regularización en el ponderado de características synteticas (y por lo tanto, en el intercepto) intercept_scaling debe ser incrementado.
- dualbooleano, default=True
Seleccione el algoritmo para resolver el problema de optimización dual o primaria. Se prefiere dual=False cuando n_samples > n_features.
- verboseentero, default=0
Activar salida detallada. Ten en cuenta que esta configuración toma ventaja de una configuración por proceso en el tiempo de ejecución en liblinear que, si está habilitada, puede no funcionar correctamente en un contexto multihilo.
- random_stateentero, instancia de RandomState o None, default=None
Controla la generación de números pseudo aleatorios para revolver los datos. Pasa un int para salidas reproducibles a través de múltiples llamadas a la función. Ver el Glosario.
- max_iterentero, default=1000
Número máximo de iteraciones a correr.
- Atributos
- coef_ndarray de forma (n_features) si n_classes == 2 de lo contrario (n_classes, n_features)
Ponderaciones asignadas a las características (coeficientes en el problema primario). Esto solo está disponible en el caso de un kernel lineal.
coef_
es una propiedad de sólo lectura derivada deraw_coef_
que sigue el diseño de memoria interna de liblinear.- intercept_ndarray de forma (1) si n_classes == 2 de lo contrario (n_classes)
Constantes en la función de decisión.
- n_iter_entero
Número máximo de iteraciones ejecutadas en todas las clases.
Ver también
LinearSVC
Implementación del clasificador Máquina de Vectores de Soporte usando la misma librería que esta clase (liblinear).
SVR
Implementación de regresión por Maquina de Vectores de Soporte usando libsvm: el núcleo puede ser no lineal pero su algoritmo SMO no escala a un gran número de muestras como LinearSVC lo hace.
sklearn.linear_model.SGDRegressor
SGDRegressor puede optimizar la misma función de costo que LinearSVR ajustando los parámetros de penalización y pérdida. Además requiere menos memoria, permite un aprendizaje incremental (en línea) e implementa varias funciones de pérdida y regimenes de regularización.
Ejemplos
>>> from sklearn.svm import LinearSVR >>> from sklearn.pipeline import make_pipeline >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_features=4, random_state=0) >>> regr = make_pipeline(StandardScaler(), ... LinearSVR(random_state=0, tol=1e-5)) >>> regr.fit(X, y) Pipeline(steps=[('standardscaler', StandardScaler()), ('linearsvr', LinearSVR(random_state=0, tol=1e-05))])
>>> print(regr.named_steps['linearsvr'].coef_) [18.582... 27.023... 44.357... 64.522...] >>> print(regr.named_steps['linearsvr'].intercept_) [-4...] >>> print(regr.predict([[0, 0, 0, 0]])) [-2.384...]
Métodos
Ajusta el modelo de acuerdo a los datos de entrenamiento dados.
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()¶
Ajusta el modelo de acuerdo a los datos de entrenamiento dados.
- Parámetros
- X{array-like, sparse matrix} de forma (n_samples, n_features)
Vector de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.
- yarray-like de forma (n_samples,)
Vector objetivo relativo a X
- sample_weightarray-like de forma (n_samples,) default=None
Arreglo de ponderados asignados a muestras individuales. Si no se proporciona, entonces se le da peso unitario a cada muestra.
Nuevo en la versión 0.18.
- Devuelve
- selfobjeto
Una instancia del estimador.
- 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 sub objetos contenidos que son estimadores.
- Devuelve
- paramsdict
Los nombres de los parámetros asignados 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 de cuadrados de los residuos
((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 dey
, 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_X, n_features)
Muestras de prueba. Para algunos estimadores esto 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 muestras.
- Devuelve
- scorede punto flotante (float)
\(R^2\) de
self.predict(X)
con respecto ay
.
Notas
La puntuación \(R^2\) utilizada al llamar a
score
en un regresor utilizamultioutput='uniform_average'
desde la versión 0.23 para mantener la consistencia 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 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 de estimador.