Relación lineal de regresión lineal, relación no lineal, derivada de función común, función de pérdida y algoritmo de optimización, ecuación normal y descenso de gradiente de función univariante, descenso de gradiente de función multivariante

1. Descripción general de la regresión lineal

Regresión lineal (Linear regression): Es un método de análisis que utiliza una ecuación de regresión (función) para modelar la relaciónentre una o más variables independientes (valores propios) y variables dependientes (valores objetivo)

Características: El caso de una sola variable independiente se llama regresión univariante, y el caso de más de una variable independiente se llama regresión múltiple

 Se establece una relación entre el valor propio y el valor objetivo, que puede entenderse como un modelo lineal

2. Análisis de la relación entre las características de la regresión lineal y el objetivo

Hay dos modelos principales en regresión lineal, uno es una relación lineal y el otro es una relación no lineal. Aquí solo podemos dibujar un plano para entender mejor, así que usamos una sola característica o dos características como ejemplo

relación lineal

La relación lineal univariante y la relación lineal multivariante se muestran en la siguiente figura

La relación entre una característica única y el valor objetivo es lineal, o la relación entre dos características y el valor objetivo es plana

La ecuación de regresión de relación no lineal se puede entender como:y = w_{1}x_{1} + w_{2}x_{2}^{2} + w_{3}x_{3}^{2}, de la siguiente manera

3. API de regresión lineal

  • sklearn.modelo_lineal.RegresiónLineal()
    • LinearRegression.coef_: coeficiente de regresión

El código de uso simple es el siguiente

from sklearn.linear_model import LinearRegression

x = [[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]]   # [平时成绩,考试成绩]
y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]   # 总成绩
estimator = LinearRegression()   # 实例化API
estimator.fit(x, y)   # 使用fit方法进行训练
print('系数是:', estimator.coef_)   # 平时成绩与考试成绩系数,即所占比例
print('预测值是:', estimator.predict([[90, 85]]))   # 预测总成绩
------------------------------------------------------------------
输出:
系数是: [0.3 0.7]
预测值是: [86.5]

4. Derivadas de funciones comunes

Cuatro operaciones aritméticas de derivadas

5. Función de pérdida y algoritmo de optimización

5.1 Función de pérdida

La pérdida total se define como

 Es decir, la suma de los cuadrados de las diferencias entre cada valor predicho y el valor real, donde

  • y_{yo}es el valor verdadero de la i-ésima muestra de entrenamiento
  • h(x_{i})Combine la función de predicción para el i-ésimo valor de característica de la muestra de entrenamiento, es decir, el valor predicho
  • La función de pérdida también se llama método de mínimos cuadrados.

5.2 Algoritmo de optimización (la optimización reduce la pérdida total)

El propósito de la optimización : encontrar el valor W correspondiente a la pérdida mínima

Hay dos algoritmos de optimización comúnmente utilizados en la regresión lineal

1. Ecuación normal

Use la inversa y la transposición de la matriz para resolver el problema, X es la matriz de valores propios e y es la matriz de valores objetivo. Después de incorporar X e y, el mejor resultado se puede obtener directamente

Desventajas: solo es adecuado para muestras y pocas funciones, cuando las funciones son demasiadas y complejas, la velocidad de solución es demasiado lenta y no se pueden obtener resultados

El proceso de derivación de la ecuación normal

Convierta esta función de pérdida en una notación matricial

\begin{alineado} J(\theta) & =\left(h_{w}\left(x_{1}\right)-y_{1}\right)^{2}+\left(h_{w}\left(x_{2}\right)-y_{2}\right)^{2}+\cdots+\left(h_{w}\left(x_{m}\right)-y_{m}\right)^{2} \\ & = \sum_{i=1}^{m}\left(h_{w}\left(x_{i}\right)-y_{i}\right)^{2} \\ & =(yX w)^{2} \end{alineado}

donde y es la matriz de valores verdaderos, X es la matriz de valores propios y w es la matriz de pesos

Resolver para el valor mínimo de w, comenzando y terminando y, X son función cuadrática conocida derivación directa, la posición donde la derivada es cero es el valor mínimo

La derivación es la siguiente

\begin{alineado} 2(\mathrm{Xw}-\mathrm{y}) * \mathrm{X} & =0 \\ 2(\mathrm{Xw}-\mathrm{y}) *\left(X \mathrm{X}^{\mathrm{T}}\right) & =0 \mathrm{X}^{T} \\ 2(\mathrm{Xw}-\mathrm{y} ) *\left(X \mathrm{X}^{\mathrm{T}}\right)\left(X \mathrm{X}^{\mathrm{T}}\right)^{-1} & =0 \mathrm{X}^{T}\left(\mathrm{XX}^{\mathrm{T}}\right)^{-1} \\ 2(\mathrm{Xw}-\mathrm{y}) & =0 \\ \mathrm{Xw} & =\mathrm{y} \\ \mathrm{X}^{T} X w & =X^{T}y \\\left(\mathrm{X}^{T}X\right)^{-1}\left(\mathrm{X}^{T}X\right) * w & =\left(\mathrm{X}^{T}X\right)^{-1} * X^{T} y\\w&=\ izquierda(\mathrm{X}^{T}X\right)^{-1}*X^{T}y\end{alineado}

En el proceso de derivación anterior, X es una matriz con m filas y n columnas, y no se puede garantizar que tenga una matriz inversa. Se puede transformar en una matriz cuadrada mediante multiplicación por la derecha o por la izquierda para garantizar que tenga una matriz inversa X^{T}.

2. Descenso de gradiente

Tome la siguiente montaña como ejemplo. Según su posición actual, encuentre el lugar más empinado en esta posición y luego camine hacia el lugar donde desciende la altura de la montaña. Cada vez que camine una cierta distancia, usará el mismo método repetidamente, y finalmente podrá alcanzar con éxito el valle.

Descenso de gradiente: una función diferenciable representa una montaña. El valor mínimo de la función es la parte inferior de la montaña. La forma más rápida de bajar la montaña es encontrar la dirección más empinada de la posición actual y luego bajar en esta dirección, que corresponde a la función. Es encontrar el gradiente de un punto dado y luego moverse en la dirección opuesta del gradiente, de modo que el valor de la función pueda caer más rápido, porque la dirección del gradiente es la dirección del cambio más rápido de la función. Repita este método, obtenga repetidamente el gradiente y alcanzar finalmente el mínimo local

  • En una función univariante: el gradiente es en realidad el diferencial de la función, que representa la pendiente de la tangente de la función en un punto dado
  • ​En una función multivariada el gradiente es un vector, el vector tiene una dirección y la dirección del gradiente indica la dirección de ascenso más rápido de la función en un punto dado
  • La dirección del gradiente es la dirección en la que la función sube más rápido en un punto dado , luego la dirección opuesta del gradiente es la dirección en la que la función cae más rápido en un punto dado

Descenso de gradiente de función univariada

Supongamos que hay una función univariada: J(θ) = \theta^{2}

  • Derivación de una función: J'(θ) = 2θ
  • Inicialización, a partir de: \ theta ^ {0} = 1
  • Tasa de aprendizaje: α = 0.4

El proceso de cálculo iterativo del descenso de gradiente es el siguiente

\begin{alineado} \theta^{0} & =1 \\ \theta^{1} & =\theta^{0}-\alpha * J^{\prime}\left(\theta^{0}\right) \\ & =1-0.4 * 2 \\ & =0.2 \\ \theta^{2} & =\theta^{1}-\alpha * J^{\prime}\left(\theta^{1}\right) \\ & = 0.04 \\ \theta^{3} & =0.008 \\ \theta^{4} & =0.0016 \end{alineado}

Descenso de gradiente para funciones multivariadas

Supongamos que existe una función objetivo:\mathrm{J}(\theta)=\theta_{1}^{2}+\theta_{2}^{2}

Ahora necesitamos calcular el valor mínimo de esta función a través del método de descenso de gradiente. A través de la observación, podemos encontrar que el valor mínimo es en realidad el punto (0, 0). Ahora comenzamos a calcular el valor mínimo paso a paso del algoritmo de descenso de gradiente. Supongamos que el punto de partida inicial es: = (1, 3  \ theta ^ {0} )

La tasa de aprendizaje inicial es: α = 0.1

El gradiente de la función es\nabla J(\theta)=<2 \theta_{1}, 2 \theta_{2}>

múltiples iteraciones

 \begin{alineado}\Theta^{0}&=(1,3)\\\Theta^{1}&=\Theta^{0}-\alpha\nabla J(\Theta)\\&=(1,3)-0.1(2,6)\\&=(0.8,2.4)\\\Theta^{2}&=(0.8,2.4)-0.1(1.6,4.8)\\&=( 0 .64.1.92) \\ \Theta^{3} & =(0.512.1.536) \\\Theta^{4} & =(0.4096.1.2288000000000001) \\\vdots & \\\Theta^{10} & =(0.10737418240000003.0.322122547 . 6296287810675902 \mathrm{e}^{-10}, 4.888886343202771 \mathrm{e}^{-10}\right)\end{alineado}

 Univariante y multivariante

Fórmula de descenso de gradiente

\theta_{i}=\theta_{i}-\alpha \frac{\parcial}{\parcial \theta_{i}} J(\theta)

α se denomina tasa de aprendizaje o tamaño de paso en el algoritmo de descenso de gradiente. Significa que α se puede usar para controlar la distancia de cada paso para garantizar que los pasos no sean demasiado grandes y pierdan el punto más bajo. Al mismo tiempo, también es necesario asegurarse de no caminar demasiado lento.

Agregar un signo negativo antes del gradiente significa moverse en la dirección opuesta del gradiente. La dirección del gradiente es en realidad la dirección en la que la función sube más rápido en este punto, y caminar en la dirección del declive más rápido es naturalmente la dirección del gradiente negativo, por lo que debe agregar un signo negativo.

descenso de gradiente ecuación normal
Necesidad de elegir la tasa de aprendizaje innecesario
necesita resolver iterativamente Una operación produce
Se puede usar un mayor número de características Necesidad de calcular la ecuación, la complejidad del tiempo es alta O( n^{3})

Con un algoritmo de optimización como el descenso de gradiente, la regresión tiene la capacidad de "aprender automáticamente" 

Optimice el gráfico dinámico de la siguiente manera  

elegir

  • Datos a pequeña escala: regresión lineal (no resuelve el problema de ajuste) y regresión de cresta
  • Datos a gran escala: SGDRegressor

Aprendiendo a navegar: http://xqnav.top/

Supongo que te gusta

Origin blog.csdn.net/qq_43874317/article/details/128232829
Recomendado
Clasificación