SVR (Máquina de vectores de soporte) Introducción al uso

Introducción a la RVS

Support Vector Machine (SVM para abreviar) es un algoritmo de aprendizaje supervisado de uso común, utilizado principalmente para problemas de clasificación y regresión. Su principio se basa en la idea de minimización del riesgo estructural y realiza tareas de clasificación o regresión al encontrar un hiperplano óptimo en el espacio de características.

El principio de la máquina de vectores de soporte incluye los siguientes conceptos clave:

  1. Separando el hiperplano: SVM intenta encontrar un hiperplano que pueda separar completamente las muestras de diferentes clases. Para problemas de clasificación binaria, este hiperplano es un plano bidimensional; para problemas de clasificación múltiple, se pueden construir múltiples hiperplanos de clasificación binaria de una manera uno a uno o uno a muchos.

  2. Vectores de soporte: los vectores de soporte se refieren a los puntos de muestra más cercanos al hiperplano de separación. Desempeñan un papel importante en la determinación del hiperplano porque determinan la ubicación y el espaciado del hiperplano.

  3. Maximización del margen: el objetivo de una máquina de vectores de soporte es encontrar un hiperplano de separación que maximice la distancia (es decir, el margen) entre los vectores de soporte de las dos clases y el hiperplano. Maximizar el margen ayuda a mejorar la solidez y la generalización del modelo.

  4. Función kernel: en aplicaciones prácticas, las muestras pueden ser linealmente inseparables. Para resolver este problema, la máquina de vectores de soporte introduce el concepto de función kernel, que mapea las muestras del espacio de características original al espacio de características de alta dimensión, de modo que el problema separable no linealmente se convierte en un problema separable linealmente en el espacio de alta dimensión. Las funciones de kernel comúnmente utilizadas incluyen kernel lineal, kernel polinomial y kernel de base radial gaussiana.

  5. Parámetro de regularización: la máquina de vectores de soporte también introduce un parámetro de regularización C para controlar la complejidad y la tolerancia a fallas del modelo. Los valores más pequeños de C dan como resultado intervalos más grandes pero con menos tolerancia a fallas, y los valores más grandes de C dan como resultado intervalos más pequeños pero con mayor tolerancia a fallas.

Al resolver el problema de optimización de la máquina de vectores de soporte, se puede obtener un hiperplano óptimo para realizar la tarea de clasificación o regresión. Las máquinas de vectores de soporte tienen un buen rendimiento de generalización y adaptabilidad en aplicaciones prácticas, y funcionan bien para datos de alta dimensión y tamaños de muestra pequeños.

1. Introducción a la regresión SVR

SVR (Support Vector Regression) es la aplicación de Support Vector Machine (SVM) en problemas de regresión. Al igual que el modelo de clasificación SVM, SVR también es un algoritmo no probabilístico. Al usar la función kernel para asignar los datos a un espacio de alta dimensión y encontrar el hiperplano óptimo en este espacio para maximizar el intervalo entre los datos de entrenamiento, el modelo de regresión obtenido.

A diferencia del modelo de regresión tradicional, SVR transforma el problema de regresión en un proceso de encontrar una función que se aproxime a la función real. En aplicaciones prácticas, se pueden usar diferentes funciones del núcleo e hiperparámetros para ajustar el modelo y obtener mejores resultados de ajuste.

2. Establecimiento del modelo de regresión SVR

Los pasos básicos para construir un modelo de regresión SVR son los siguientes:

1. Preprocesamiento de datos
El modelo de regresión SVR tiene requisitos de datos relativamente altos, y se requiere preprocesamiento de datos. Primero, los datos deben estandarizarse para que la media sea 0 y la varianza sea 1. En segundo lugar, es necesario normalizar los datos y escalar los datos al rango [0,1], para evitar que las diferencias de datos entre las características afecten el efecto de entrenamiento del modelo.

X_train = StandardScaler().fit_transform(X_train)
y_train = np.log1p(y_train) # 取对数归一化,提高拟合效果

2. Entrenamiento del modelo
Puede usar la clase SVR en la biblioteca sklearn para entrenar el modelo, donde necesita especificar la función del kernel y los hiperparámetros, por ejemplo:

clf = SVR(kernel='rbf', C=1, gamma=0.1, epsilon=0.1)
clf.fit(X_train, y_train)

Entre ellos, el parámetro del kernel es el tipo de función del kernel, C es el parámetro de regularización, gamma es el parámetro de ancho de banda de la función del kernel rbf y epsilon es el parámetro de tolerancia al error.

3. Evaluación del modelo
Puede usar la función mean_squared_error en la biblioteca sklearn para calcular el error cuadrático medio (MSE) del modelo y evaluar el efecto de ajuste del modelo, por ejemplo:

y_pred = clf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)

El mse se puede comparar con la media y la desviación estándar para evaluar qué tan bien se ajusta el modelo.

3. Ajuste del modelo de regresión SVR

En la regresión SVR, el ajuste de parámetros es un proceso muy importante. Los métodos de ajuste de parámetros comúnmente utilizados incluyen principalmente el método de búsqueda en cuadrícula y el método de búsqueda aleatoria.

1. Método de búsqueda en cuadrícula
El método de búsqueda en cuadrícula atraviesa todos los valores posibles de hiperparámetros y selecciona la mejor combinación de hiperparámetros para obtener el modelo óptimo. La búsqueda en cuadrícula se puede realizar utilizando la clase GridSearchCV en la biblioteca sklearn.

Por ejemplo, se puede definir una cuadrícula de parámetros especificando diferentes valores de kernel, C y gamma para el entrenamiento y la evaluación del modelo:

param_grid = {
    
    'kernel': ['rbf'], 'C': [0.1, 1, 10], 'gamma': [0.1, 0.01, 0.001]}
grid_search = GridSearchCV(clf, param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, y_train)

2. Método de búsqueda aleatoria
A diferencia del método de búsqueda en cuadrícula, el método de búsqueda aleatoria toma muestras del espacio de hiperparámetros especificado de acuerdo con la distribución de probabilidad, para encontrar la combinación óptima de hiperparámetros más rápido. Las búsquedas aleatorias se pueden realizar utilizando la clase RandomizedSearchCV en la biblioteca sklearn.

Por ejemplo, las distribuciones de hiperparámetros se pueden definir para especificar la distribución de valores de diferentes funciones del núcleo, C y gamma para el entrenamiento y la evaluación del modelo:

param_distribs = {
    
    'kernel': ['rbf'], 'C': reciprocal(20, 200000), 'gamma': expon(scale=1.0)}
rnd_search = RandomizedSearchCV(clf, param_distributions=param_distribs, n_iter=50, cv=5, scoring='neg_mean_squared_error')
rnd_search.fit(X_train, y_train)

4. SVR vuelve a la aplicación práctica

La regresión SVR se puede aplicar en muchos campos, como la predicción de existencias, la predicción del precio de la vivienda y la predicción de la relación entre caracteres. Tomemos como ejemplo una predicción simple del precio de la vivienda para presentar la aplicación práctica de la regresión SVR.

1. Recopilación y procesamiento de datos
En primer lugar, es necesario recopilar datos de muestra de la casa, incluidos el área de la casa, la cantidad de habitaciones, la cantidad de baños, la cantidad de cocinas, la ubicación geográfica, etc. Preprocesar los datos, incluido el escalado de características, la normalización y la codificación de clasificación, etc.

2. Entrenamiento del modelo y ajuste de parámetros
Puede usar la clase SVR en la biblioteca sklearn para entrenar el modelo y usar el método de búsqueda en cuadrícula o el método de búsqueda aleatoria para ajustar los hiperparámetros y obtener el mejor efecto de ajuste.

param_grid = {
    
    'kernel': ['rbf'], 'C': [0.1, 1, 10], 'gamma': [0.1, 0.01, 0.001]}
grid_search = GridSearchCV(clf, param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, y_train)

3. Prueba del modelo y evaluación del rendimiento
Use datos de prueba para probar el modelo y use indicadores como el error cuadrático medio (MSE) y el valor R-cuadrado para evaluar el rendimiento del modelo. La evaluación se puede realizar utilizando las funciones mean_squared_error y r2_score en la biblioteca sklearn:

y_pred = clf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

Cinco, resumen de regresión de RVS

Este artículo profundiza en la introducción de la regresión SVR, el establecimiento del modelo, el ajuste de parámetros y la aplicación práctica. La regresión SVR es un modelo de regresión muy útil que tiene amplias aplicaciones en varios campos.

Supongo que te gusta

Origin blog.csdn.net/weixin_45277161/article/details/131190324
Recomendado
Clasificación