Soy un novato al principio, espero registrar lo que he aprendido como tomar notas, y también espero ayudar a las personas que también están comenzando.
Tabla de contenido
3. Resuelva el problema: encuentre w y b
1. Conversión de forma vectorial
3. La derivada es 0 para sacar una conclusión
4. El resultado final del modelo
4. Problemas ocultos: puede que no sea una matriz de rango completo
5. La solución del problema oculto - regularización
1. Regularización L1 - Regresión Lasso
2. Regularización L2 - regresión de cresta
6. Cambios y aplicaciones de la regresión lineal
Siete, implementación de python
Ocho, modelo lineal - problema de clasificación de problemas de regresión
1. Descripción del problema
Ahora tenemos un conjunto de datos D a la mano: cada muestra está descrita por d atributos, es decir , donde
está el valor de la muestra x en el i-ésimo atributo. Y
el valor del resultado final correspondiente de cada muestra es
.
Ahora viene una nueva muestra y quiero saber su valor de resultado
2. Análisis de problemas
Necesitamos encontrar un modelo lineal para predecir de acuerdo con el conjunto de datos D ,
es decir, encontrar
la w y b apropiadas.
3. Resuelva el problema: encuentre w y b
Podemos usar el método de mínimos cuadrados para resolver este problema.
1. Conversión de forma vectorial
Primero, combine w y b en una forma vectorial con un tamaño de (d+1)*1;
Luego reescriba la matriz de datos X: , el tamaño es (d+1)*m.
Luego escribe el patrón vectorial para la etiqueta y también:
2. Estilo de gol
hacer
3. La derivada es 0 para sacar una conclusión
4. El resultado final del modelo
4. Problemas ocultos:
puede que no sea una matriz de rango completo
Es posible que no sea una matriz de rango completo y
se generarán varias soluciones óptimas. ¿Qué solución debe seleccionarse como
Por ejemplo, si la cantidad de muestras es pequeña, la cantidad de atributos de características es grande o incluso excede la cantidad de muestras, entonces no es una matriz de rango completo en este momento y se pueden resolver múltiples
soluciones
.
5. La solución del problema oculto - regularización
El papel de la regularización es elegir un modelo con un riesgo empírico pequeño y complejidad del modelo al mismo tiempo.
1. Regularización L1 - Regresión Lasso
Agregar un elemento después de la función objetivo
Entonces, la función objetivo se convierte en
El primer elemento es el riesgo empírico mencionado anteriormente, y el segundo elemento controla la complejidad del modelo.
Entre ellos , se controla el grado de castigo:
;
Esto también se conoce como regresión de Lasso.
Como se muestra en la siguiente figura (suponiendo que solo hay dos atributos): el contorno del término de error cuadrático regularizado L1 y el contorno regularizado a menudo se cruzan en el eje de coordenadas, lo que significa que uno de los atributos se descarta, lo que refleja la selección de características. es más fácil obtener una solución dispersa (en comparación con la regularización L2 a continuación), es decir, habrá menos valores distintos de cero en el vector W obtenido.
2. Regularización L2 - regresión de cresta
Agregar un elemento después de la función objetivo
Entonces, la función objetivo se convierte en
Esto también se conoce como regresión de cresta.
La regularización L2 selecciona los parámetros uniformemente, de modo que los coeficientes de la curva de ajuste sean similares. Aunque no se puede reducir el número de elementos, los coeficientes están equilibrados. Esto es diferente de la regularización L1 en principio.
6. Cambios y aplicaciones de la regresión lineal
Si el modelo del problema no es una regresión lineal, intente aproximar las predicciones del modelo a las derivadas de y.
Por ejemplo, regresión log-lineal
De manera más general: , que se denomina modelo lineal generalizado.
Siete, implementación de python
1. Regresión lineal múltiple
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(x,y,test_size=0.3,random_state=1)//x,y分别为已经分好的属性数据和标记数据
model = LinearRegression()
model.fit(X_train, Y_train)
score = model.score(X_test, Y_test)
print('模型测试得分:'+str(score))
Y_pred = model.predict(X_test)
print(Y_pred)
2. Regresión de cresta
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(x,y,test_size=0.3,random_state=1)//x,y分别为已经分好的属性数据和标记数据
model = Ridge(alpha=1)
model.fit(X_train, Y_train)
score = model.score(X_test, Y_test)
print('模型测试得分:'+str(score))
Y_pred = model.predict(X_test)
print(Y_pred)
3. regresión de lazo
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(x,y,test_size=0.3,random_state=1)//x,y分别为已经分好的属性数据和标记数据
model = Lasso(alpha=0.1)
model.fit(X_train, Y_train)
score = model.score(X_test, Y_test)
print('模型测试得分:'+str(score))
Y_pred = model.predict(X_test)
print(Y_pred)
Ocho, modelo lineal -
problema de clasificación de problemas de regresión
Todos los mencionados anteriormente utilizan modelos lineales para resolver problemas de regresión. De hecho, los modelos lineales también se pueden usar para resolver problemas de clasificación: regresión logística (regresión de probabilidad logarítmica).
Para obtener más información, consulte Regresión logística (Regresión logística)
Todos son bienvenidos a criticar y corregir en el área de comentarios, gracias~