- y
es el valor y de un ejemplo de datos (la variable dependiente).
-
x
es el valor x de un ejemplo de datos (la variable independiente).
-
m
es la pendiente de la línea, que se calcula dividiendo el cambio en y
por el cambio en x
.
-
b
es la intersección: el valor de y
cuando x
es 0.
x
) y el efecto que tiene en el precio de venta del televisor (y
). Tiene 15 ejemplos de datos históricos de los que extraer, cada uno de los cuales es el mismo modelo de TV vendido en diferentes puntos en el tiempo, como se registra en la tabla siguiente.Meses desde su primer lanzamiento | Precio de venta en dólares |
---|---|
0 | 849.99 |
8 | 819.49 |
19 | 775.99 |
30 | 699.49 |
37 | 720.49 |
44 | 745.99 |
56 | 625.99 |
66 | 560.99 |
75 | 580.49 |
87 | 520.99 |
92 | 590.49 |
99 | 440.99 |
105 | 389.99 |
112 | 405.99 |
120 | 299.99 |
m
) es #LioxSpecialChar8722#4144 y la intersección es 864,3. El valor de #LioxSpecialChar8722#4144 es la reducción de precio por cada mes que se ha vendido el televisor. Entonces, conectado a la ecuación lineal, esto es:x
así:θi
que el modelo debe resolver. Estos parámetros son lo que el modelo "aprende".θ
es la letra griega theta. - ŷ
es la variable que está intentando estimar (la variable dependiente).
-
θ0
es la intersección (equivalente a b
en la ecuación lineal).
-
θ1
es un parámetro del modelo (equivalente a m
en la ecuación lineal).
-
x
es la variable independiente de interés: las características que extraería y pasaría al modelo.
Nota: Recuerde, ŷ
(pronunciado "y-hat") se utiliza a menudo para significar una estimación de un modelo.
Con el ejemplo de precio de TV, se entrena el modelo en datos históricos con varias características. Puede construir un modelo lineal basado en una o varias de estas características. Por motivos de simplicidad, desea comenzar asignando una sola característica: durante cuánto tiempo se ha vendido el televisor. Esto se puede conectar a la fórmula como:
n
número de ejemplos en un conjunto de entrenamiento, habría un n
número de ecuaciones lineales para cada valor relevante de x
e y
. Para calcular todas estas instancias, los modelos lineales representan los datos en matrices. Una matriz es como una tabla de datos en la que puede realizar operaciones matemáticas: contiene valores, normalmente números, en filas y columnas.y
que son iguales a una matriz de valores x
multiplicados por los parámetros del modelo. Como ecuación, esto es:X
es necesaria porque estos 1 se multiplican por el valor de intersección constante θ0
, mientras que la columna de valores de variable x
se multiplica por θ1
.θ0
y θ1
, pero es mejor multiplicar previamente cada lado de la ecuación por la inversa de la matriz X
. Cualquier matriz multiplicada por su inversa (indicada por #LioxSpecialChar8722#1
) da como resultado una matriz de identidad. Una matriz de identidad es una matriz de todos los 0 excepto la diagonal principal, que consta de los 1. Después de multiplicar ambos lados por la matriz inversa, se puede quitar la matriz de identidad resultante en el lado derecho de la ecuación y se queda con:X
resulta ser:X
como el vector y
para obtener los parámetros del modelo. Esto implica multiplicar los números en las filas de X
con sus columnas coincidentes en y
. El cálculo es el siguiente:y = #LioxSpecialChar8722#13.25x + 1889.99
. Por supuesto, en un escenario real, usaría todo el conjunto de datos como los valores de la matriz, en lugar de solo dos instancias, por lo que los parámetros del modelo cambiarían para tener esto en cuenta.x
. La solución para esto es tomar el seudoinverso de la matriz. Esto implica transponer la matriz de valores x
. La ecuación que toma este seudoinverso (específicamente, la inversa de Moore-Penrose) se llama la ecuación normal. La ecuación normal es una solución de forma cerrada, lo que significa que le proporcionará directamente los parámetros del modelo que conducen al mejor ajuste posible a los datos de entrenamiento. - θ
es una matriz de los parámetros del modelo (por ejemplo, m
y b
para pendiente e intersección). -
X
es una matriz de los valores x
.
- y
es el vector de los valores y
.T
representa la transposición.θ0 = 864.3
y θ1 = #LioxSpecialChar8722#4.144
, lo mismo que la intersección y la pendiente mencionadas anteriormente. Esta es una forma más robusta de resolver problemas de regresión lineal que simplemente una simple ecuación lineal.Hora | Humedad relativa (%) | Valor de punto de rocío (°C) | Velocidad del viento (k/h) | Temperatura (°C) |
---|---|---|---|---|
02:00:00 | 88 | 25 | 10 | 28 |
03:00:00 | 89 | 24 | 9 | 27 |
04:00:00 | 89 | 24 | 8 | 27 |
05:00:00 | 84 | 22 | 9 | 26 |
06:00:00 | 84 | 22 | 12 | 26 |
/home/student/ITSAI/Regression/Regression-PowerPlant.ipynb
/home/student/ITSAI/Regression/data/cc_power_plant_data.csv
Antes de empezar
La máquina virtual y Jupyter® Notebook no están abiertos.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
- Temperature
es la temperatura del sistema en grados centígrados.- ExhaustVacuum
mide la presión del aire a medida que se expulsa del sistema.- AmbientPressure
es la presión de aire que rodea el sistema.- RelativeHumidity
mide la humedad a una temperatura determinada.- EnergyOutput
es la producción neta de energía eléctrica por el sistema en megavatios.EnergyOutput
se tratará como la etiqueta que el modelo intentará predecir.AmbientPressure
es más o menos simétrica.RelativeHumidity
aparece sesgada hacia la izquierda.AmbientPressure
y EnergyOutput
parecen exhibir una baja cantidad de varianza, ya que sus valores mínimos y máximos están relativamente juntos.EnergyOutput
.EnergyOutput
y examine la lista de código debajo de ella.AmbientPressure
tiene la correlación positiva más alta (es decir, a medida que la presión aumenta, también lo hace la producción de energía) y ExhaustVacuum
y Temperature
tienen la correlación negativa más alta (es decir, a medida que aumentan, la producción de energía disminuye). Por lo tanto, usará todas estas características durante el entrenamiento.EnergyOutput
se quitó de las matrices X
y se colocó en su propio vector y
.LinearRegression()
se utiliza para ajustarse a un modelo lineal simple. El argumento fit_intercept
determina si se calcula o no la intersección; en este caso, se establece como False
en aras de la simplicidad.score()
para los modelos de regresión en scikit-learn devuelve el valor R2
de la predicción, también conocido como coeficiente de determinación. El significado detrás de esta métrica se explicará más adelante; en este punto, es suficiente saber que se prefieren números más altos.EnergyOutput
, con una línea de mejor opción generada a partir de la regresión lineal.Temperature
y ExhaustVacuum
exhibieron una alta correlación negativa con EnergyOutput
, por lo que sus puntos de datos admiten un ajuste de línea recta bastante bien. Por otro lado, RelativeHumidity
tuvo una correlación mucho menor y sus puntos de datos están dispersos de tal manera que una línea recta no encaja tan bien.Temperature
del usuario. Si Temperature
es igual o menor que 18,52, el árbol se divide en un nodo de la izquierda que determina si Temperature
es igual o menor que 11,865. Si Temperature
es mayor que 18,52, el árbol se divide en un nodo de la derecha que determina si ExhaustVacuum
es igual o menor que 66,21.