Aprendizaje automático - Regresión multivariada
- Página Anterior Regresión Polinómica
- Página Siguiente Escala
Regresión múltiple (Multiple Regression)
La regresión múltiple es como la regresión lineal, pero tiene múltiples valores independientes, lo que significa que intentamos predecir un valor basándonos en dos o más variables.
Mire los datos a continuación, que contienen información sobre coches.
Car | Model | Volume | Weight | CO2 |
---|---|---|---|---|
Toyota | Aygo | 1000 | 790 | 99 |
Mitsubishi | Space Star | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Fiat | 500 | 900 | 865 | 90 |
Mini | Cooper | 1500 | 1140 | 105 |
VW | Up! | 1000 | 929 | 105 |
Skoda | Fabia | 1400 | 1109 | 90 |
Mercedes | A-Class | 1500 | 1365 | 92 |
Ford | Fiesta | 1500 | 1112 | 98 |
Audi | A1 | 1600 | 1150 | 99 |
Hyundai | I20 | 1100 | 980 | 99 |
Suzuki | Swift | 1300 | 990 | 101 |
Ford | Fiesta | 1000 | 1112 | 99 |
Honda | Civic | 1600 | 1252 | 94 |
Hundai | I30 | 1600 | 1326 | 97 |
Opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Rapid | 1600 | 1119 | 104 |
Ford | Focus | 2000 | 1328 | 105 |
Ford | Mondeo | 1600 | 1584 | 94 |
Opel | Insignia | 2000 | 1428 | 99 |
Mercedes | C-Class | 2100 | 1365 | 99 |
Skoda | Octavia | 1600 | 1415 | 99 |
Volvo | S60 | 2000 | 1415 | 99 |
Mercedes | CLA | 1500 | 1465 | 102 |
Audi | A4 | 2000 | 1490 | 104 |
Audi | A6 | 2000 | 1725 | 114 |
Volvo | V70 | 1600 | 1523 | 109 |
BMW | 5 | 2000 | 1705 | 114 |
Mercedes | E-Class | 2100 | 1605 | 115 |
Volvo | XC70 | 2000 | 1746 | 117 |
Ford | B-Max | 1600 | 1235 | 104 |
BMW | 2 | 1600 | 1390 | 108 |
Opel | Zafira | 1600 | 1405 | 109 |
Mercedes | SLK | 2500 | 1395 | 120 |
Podemos predecir la emisión de CO2 de un coche basándonos en el tamaño del motor, pero mediante regresión múltiple, podemos introducir más variables, como el peso del coche, para hacer la predicción más precisa.
Principio de funcionamiento
En Python, tenemos módulos que pueden hacer este trabajo. Primero, importamos el módulo Pandas:
import pandas
El módulo Pandas nos permite leer archivos csv y devolver un objeto DataFrame.
Este archivo se utiliza solo con fines de prueba, puede descargarlo aquí:cars.csv
df = pandas.read_csv("cars.csv")
Luego, liste los valores independientes y asigne este nombre a la variable X.
Coloque los valores relacionados en una variable llamada y.
X = df[['Peso', 'Volumen']] y = df['CO2']
Consejo:Por lo general, se nombra la lista de valores independientes en mayúsculas X
asignaremos el nombre de lista de valores relacionados en minúsculas y
.
Por lo tanto, también debemos importar este módulo:
from sklearn import linear_model
En el módulo sklearn, utilizaremos LinearRegression()
para crear un objeto de regresión lineal.
Este objeto tiene un método llamado fit()
El método, que toma valores independientes y dependientes como parámetros, y llena el objeto de regresión con datos que describen esta relación:
regr = linear_model.LinearRegression() regr.fit(X, y)
Ahora, tenemos un objeto de regresión que puede predecir valores de CO2 basándose en el peso y la capacidad de cilindrada del coche:
# Predicción de la emisión de CO2 de un coche con peso de 2300kg y capacidad de cilindrada de 1300ccm: predictedCO2 = regr.predict([[2300, 1300]])
Ejemplo
Vea el ejemplo completo:
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Peso', 'Volumen']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) # Predicción de la emisión de CO2 de un coche con peso de 2300kg y capacidad de cilindrada de 1300ccm: predictedCO2 = regr.predict([[2300, 1300]]) print(predictedCO2)
Resultados:
[107.2087328]
Predecimos que un coche con motor de 1.3 litros y peso de 2300 kg liberará aproximadamente 107 g de dióxido de carbono por cada kilómetro recorrido.
Coeficiente
Los coeficientes son factores que describen la relación con la variable desconocida.
Por ejemplo: si x
Es una variable, por lo tanto 2x
Es x
dos veces.x
Son variables desconocidas, número 2
Son coeficientes.
En este caso, podemos solicitar los valores de coeficiente de peso en relación con CO2, así como los valores de coeficiente de volumen en relación con CO2. La respuesta que obtenemos nos dice qué ocurrirá si aumentamos o reducimos uno de los valores independientes.
Ejemplo
Imprimir los valores de coeficientes del objeto de regresión:
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Peso', 'Volumen']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) print(regr.coef_)
Resultados:
[0.00755095 0.00780526]
Explicación de los resultados
El array de resultados representa los valores de coeficiente de peso y capacidad de cilindrada.
Peso: 0.00755095 Volumen: 0.00780526
Estos valores nos dicen que si el peso aumenta 1g, la emisión de CO2 aumentará 0.00755095g.
Si el tamaño del motor (volumen) aumenta 1 ccm, la emisión de CO2 aumentará 0.00780526g.
Creo que es una buena suposición, pero por favor, realice las pruebas!
Hemos predicho que si un coche con un motor de 1300ccm y un peso de 2300 kg, la emisión de dióxido de carbono será aproximadamente de 107 gramos.
¿Qué pasaría si aumentáramos 1000g de peso?
Ejemplo
Copia el ejemplo anterior, pero cambia el peso del coche de 2300 a 3300:
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Peso', 'Volumen']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) predictedCO2 = regr.predict([[3300, 1300]]) print(predictedCO2)
Resultados:
[114.75968007]
Hemos predicho que un coche con un motor de 1.3 litros y un peso de 3.3 toneladas emitirá aproximadamente 115 gramos de dióxido de carbono por cada kilómetro recorrido.
Esto indica que el coeficiente de 0.00755095 es correcto:
107.2087328 + (1000 * 0.00755095) = 114.75968
- Página Anterior Regresión Polinómica
- Página Siguiente Escala