Está en la página 1de 14

ANÁLISIS ESTADÍSTICO Y REGRESIÓN LINEAL

PARA LA PREDICCIÓN DEL PRECIO DE


ALQUILER DE AUTOMÓVILES

Liyibeth Güiza Forero – 2185536


Juan Pablo Guio Riaño – 2170310

RESÚMEN
El objetivo de este proyecto es ejemplificar el uso del Machine Learning, mediante el
análisis de una base de datos. Para esto se implementa un algoritmo que le proporciona
al ordenador la capacidad de identificar un patrón que le permita predecir el precio del
alquiler de un vehículo. ¿Cómo se realizará el proyecto?, Mediante una de las ramas de
la inteligencia artificial la cual es Machine Learning se desarrollará una técnica que
permita al ordenador aprender ejecutando el método ‘supervised Learning’.
Por medio de una base de datos generada la cual contiene características como: Tipo de
vehículo, rendimiento en Km/galón de combustible, numero de puestos, pantallas y
airbags y si cuenta o no con aire acondicionado y servicio técnico. En el algoritmo se
trabajará con funciones como ‘sklearn. model_selection, importtrain_test_split ’ la cual
va dividir los conjuntos de datos en dos bloques uno de entrenamiento y otro de validación
del modelo, también se trabajara con funciones como ‘from sklearn.preprocessingimport
MinMaxScaler’ y algunas más que se analizaran más a fondo en la explicación de la base
de datos.
Para concluir, mediante el uso de la función de regularización lineal se pudo evidenciar
que se logró minimizar la diferencia de error tomando el valor de Alpha más conveniente
para su respectivo modelo.

PALABRAS CLAVES
Matlab, aprender, algoritmo, predecir, validación, regularización.
INTRODUCCIÓN
El proyecto desarrollado se enfoca en predecir el precio del alquiler de un vehículo. Su
valor va a depender de algunas variables como las que son: el tipo de vehículo, el numero
de puestos, el rendimiento, si cuenta o no con aire acondicionado, entre otras.
El algoritmo de alquiler de vehículos se realizó por el interés de abarcar una mayor
competencia en el manejo del Machine Learning, dando uso a una variedad de librerías y
funciones. Se iniciara tomando de la base de datos algunas muestras las cuales se van a
dividir para probar y entrenar los datos, de igual manera se manejó una función para
transformar los datos y entregarlos en valores entre 0 y 1 con el fin de no contar con
números ya sean muy pequeños o muy grandes, seguidamente se implementaron las
regresiones en las cuales se obtuvieron algunos obstáculos debido a que se debía
encontrar el mejor valor tanto del polinomio de la función como el alfa de la
regularización para conseguir un mejor valor de regresión
(poner algunos análisis y resultados obtenidos)

EXPLICACIÓN DE LA BASE DE DATOS


La base de datos utilizada en este proyecto es bastante amplia, cuenta con 6080 ejemplos,
una variable dependiente y ocho variables aleatorias, de las cuales cuatro son binarias.
Entre las variables aleatorias se encuentra el tipo de vehículo, la cual toma valores de cero
si el auto a rentar es una camioneta y uno si es un automóvil. El rendimiento en número
de kilómetros por galón de combustible oscila entre los 10 km/galón y 999 km/galón, el
rendimiento promedio es de 144,57 km/galón. El número de puestos y airbags oscila
entre uno y diez, mientras el número de pantallas varia entre cero y doce pantallas en los
autos. Las variables servicio técnico, asientos para bebe y aire acondicionado son binarias,
toman el valor de cero si el auto no cuenta con estas y uno si el auto cuenta con dichas
características. En cuanto a la variable dependiente, la cual es el precio de alquiler del
auto, este varía de acuerdo con las características mencionadas anteriormente, y oscila
entre $420/día y $45000/día.

CÓDIGOS PYTHON
1. Aplicación de algoritmo visto en clase a la base de datos
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

data = pd.read_csv("dats.csv", header=None, index_col=False, delimiter=';',


names=['tipo', 'km/galón', 'puestos', 'airbags', 'pantallas', 'servicio técnico',
'aire acondicionado', 'precio de alquiler'])
X = data[['tipo', 'km/galón', 'puestos', 'airbags', 'pantallas', 'servicio técnico',
'aire acondicionado']]

y = data[['precio de alquiler']]

from sklearn.preprocessing import PolynomialFeatures


poly = PolynomialFeatures(1)
X_poly=poly.fit_transform(X)

from sklearn.model_selection import train_test_split


X_train, X_test, y_train, y_test = train_test_split(X_poly, y, test_size=0.01,
random_state=2)

from sklearn.preprocessing import MinMaxScaler


scaler = MinMaxScaler()
scaler.fit(X_train)
X_train_scaled= scaler.transform(X_train)

from sklearn.linear_model import LinearRegression


reg = LinearRegression().fit(X_train_scaled, y_train)

print("reg.coef_: {}".format(reg.coef_))
print("reg.intercept_: {}".format(reg.intercept_))

X_test_scaled= scaler.transform(X_test)
print("Training set score: {:.2f}".format(reg.score(X_train_scaled, y_train)))
print("Test set score: {:.2f}".format(reg.score(X_test_scaled, y_test)))

from sklearn.linear_model import Ridge


ridge = Ridge(alpha=0.001).fit(X_train_scaled, y_train) #alpha es un parametro queu
ayuda a la regularizacion

print("Training set score regularized: {:.2f}".format(ridge.score(X_train_scaled,


y_train)))
print("Test set score regularized: {:.2f}".format(ridge.score(X_test_scaled, y_test)))
ex1=np.array([[1,250,4,6,4,0,0,]])
ex1_poly=poly.fit_transform(ex1)
ex1_scaled=scaler.transform(ex1_poly)
y_ex1=reg.predict(ex1_scaled)
2. Aplicación algoritmo usando la biblioteca de aprendizaje profundo Keras
from pandas import read_csv
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
dataframe = read_csv("dats.csv", delim_whitespace=True, header=None)
dataset = dataframe.values
X = dataset[:,0:8]
Y = dataset[:,0:8]
def baseline_model():
model = Sequential()
model.add(Dense(8, input_dim=8, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
model.compile(loss='mean_squared_error', optimizer='adam')
return model
estimator = KerasRegressor(build_fn=baseline_model, epochs=100, batch_size=5,
verbose=0)
kfold = KFold(n_splits=10)
results = cross_val_score(estimator, X, Y, cv=kfold)
print("Baseline: %.2f (%.2f) MSE" % (results.mean(), results.std()))
ANÁLISIS ESTADÍSTICO DE VARIABLES
El análisis de las variables de estudio es un factor muy importante, este se puede realizar
con herramientas estadísticas como lo son los gráficos de cajas, histogramas, medidas de
tendencia central y dispersión, entre otras. Para este caso el análisis se llevará a cabo con
las tres herramientas estadísticas mencionadas.

Diagrama de cajas
El diagrama de cajas y bigotes es un método estadístico estandarizado para representar de
manera grafica una serie de datos numéricos a través de sus cuartiles. El diagrama muestra
a simple vista la mediana y los cuartiles de los datos, además de los valores atípicos.

Diagrama de cajas para la variable dependiente precio de alquiler/día

Bigote Superior 9520


Cuartil Superior 4782,5
Mediana 2617
Cuartil inferior 1583,5
Bigote Inferior 420

En el diagrama se pueden evidenciar cinco datos atípicos, siendo $45000/día el mas


alejado de la mediana. Se puede concluir mediante este diagrama que el precio
normalmente oscila entre $420/día y $9520/día.
Diagrama de cajas para el rendimiento Km/galón

Bigote Superior 660


Cuartil Superior 325
Mediana 199,5
Cuartil inferior 100
Bigote Inferior 10

En el diagrama se puede evidenciar que los rendimientos superiores a 660 km/galón se


consideran atípicos, siendo el rendimiento de 1600 km/galón el valor mas alejado de la
mediana.
Diagrama de caja para la variable número de puestos

Bigote Superior 10
Cuartil Superior 7
Mediana 5
Cuartil inferior 3
Bigote Inferior 1
se puede inferir que gran parte de los vehículos cuentan con entre 3 y 7 puestos, además
de que contar con uno o diez puestos no es atípico.
Diagrama de caja para la variable número de Airbags

Bigote Superior 10
Cuartil Superior 6
Mediana 4,5
Cuartil inferior 3
Bigote Inferior 1

Del análisis mediante el diagrama se puede inferir que no se presentan valores atípicos,
además de que la mayoría de los automóviles cuentan con entre 3 y 6 Airbags.
Diagrama de caja para la variable número de Pantallas

Bigote Superior 8
Cuartil Superior 6
Mediana 4
Cuartil inferior 2
Bigote Inferior 0
Se puede evidenciar que un vehiculo que cuente con 12 pantallas no es algo habitual,
mientras lo normal es que cuenten con 4 pantallas.

Histogramas
Los histogramas son una representación grafica de una variable en forma de barras, donde
la superficie de la barra es proporcional a los valores representados. Sirve para a primera
vista observar el comportamiento de la muestra y deducir valores de interés.
Histograma de tipo de vehículo

En este histograma podemos observar la distribución por tipo de vehículo, se puede


determinar que el vehículo tipo uno o automóvil es muy superior en cantidad en cuanto
al vehículo tipo cero o camioneta, de este tipo en la muestra de 6080 vehículos solo 831
pertenecen a esta categoría, siendo el excedente automóvil.
Histograma de número de puestos
En este histograma podemos observar que en la parte superior se encuentran el numero
de puestos, los cuales van desde uno hasta 10, la grafica muestra por separado lo vehículos
tipo cero y tipo 1 para un mayor entendimiento, a manera de análisis podemos mencionar
que la mayoría de los vehículos cuentan con entre uno y cuatro puestos, de los vehículos
tipo 1 de uno, dos, tres y cuatro puestos podemos encontrar 1190, 1389, 1714 y 791
respectivamente, lo que supone un 83,61% del total de los vehículos. Por otra parte los
vehículos tipo 0, de uno, dos, tres y cuatro puestos cuentan con 208, 232, 280 y 88
automóviles, los cuales de manera porcentual representan el 13,28% de los automóviles
disponibles para rentar.

Histograma de numero de pantallas

Mediante este histograma podemos observar una distribución normal sesgada a la


izquierda, lo que nos da a entender que la mayoría de los vehículos cuentan con entre una
y cuatro pantallas. Siendo 2 el numero de pantallas que normalmente tienen los vehículos.
De los vehículos tipo 0, de uno, dos, tres, cuatro y cinco pantallas hay 142, 369, 166, 56,
61 vehículos respectivamente mientras de los vehículos tipo 1 de los mismos puestos hay
1101, 1692, 1116, 612 y 423 automóviles respectivamente. Si bien los vehículos cuentan
hasta con 12 pantallas, solo el 5,625% de los vehículos cuentan con mas de cinco
pantallas.
Histograma de número de Airbags

El número de Airbags en un vehículo es sinónimo de seguridad, por tal motivo es un


factor importante a la hora de elegir un vehículo. Para el caso de estudio se pudo
evidenciar mediante el histograma que la mayoría de los vehículos cuentan con menos de
5 airbags. La tendencia tanto de los vehículos tipo 0 como tipo 1 es la misma, la cual es
de manera decreciente.
Los numero de vehículos tipo 0, que cuentan con uno, dos, tres, cuatro y cinco airbags
son 416, 207, 95, 45 y 37 respectivamente, mientras para los vehículos tipo 1 es de 1856,
1384, 819, 695 y 339 vehículos respectivamente.
Histograma asientos para bebe

El histograma muestra en color naranja el numero de vehículos tipo 1 o automóvil y en


color azul el vehículo tipo 0 o camioneta, se puede evidenciar un comportamiento similar
entre los vehículos que cuentan no cuentan con asientos para bebe y los que cuentan con
este servicio. Los vehículos que no cuentan con este servicio se encuentran agrupados en
el primer bloque, bajo la columna del número cero. De los vehículos tipo camioneta 430
no cuentan con asientos para bebe y 401 cuentan con dicho servicio, mientras que de los
vehículos tipo 0 o automóvil 2579 cuentan con el servicio y 2670 no lo ofertan.
Histograma disposición de Aire Acondicionado

De los vehículos que se ofertan para alquiler se evidencio mediante la construcción del
histograma que la mayoría no cuenta con aire acondicionado. De los vehículos tipo cero
o camioneta solo 118 ofertan esta característica de los 831 automóviles te este tipo. En
cuanto a los vehículos tipo 1 o automóvil, 1464 vehículos cuentan con aire acondicionado
y 3785 no lo hacen.
Histograma de disponibilidad de Servicio Técnico

Mediante este histograma podemos evidenciar que la mayoría de los vehículos incluyen
el servicio técnico. De los 831 vehículos tipo cero, 667 incluyen el servicio técnico y de
los 5249 vehículos tipo uno, 3999 incluyen el servicio técnico.
Medidas de dispersión y tendencia central
Media: La media es el valor promedio de un conjunto de datos numéricos, calculada
como la suma del conjunto de valores dividida entre el número total de valores.
Mediana: La mediana es el valor de la variable que ocupa la posición central, cuando los
datos se disponen en orden de magnitud. Es decir, el 50% de las observaciones tiene
valores iguales o inferiores a la mediana y el otro 50% tiene valores iguales o superiores
a la mediana.
Moda: La moda se define como el valor de la variable que más se repite. En un polígono
de frecuencia la moda corresponde al valor de la variable que está bajo el punto más alto
del gráfico.
Rango: El rango es la diferencia entre el mayor valor de la variable y el menor valor de
la variable.
Varianza: La varianza representa la variabilidad de una serie de datos respecto a su
media. Formalmente se calcula como la suma de los residuos al cuadrado divididos entre
el total de observaciones.
Desviación estándar o covarianza: La covarianza es el valor que refleja en qué cuantía
dos variables aleatorias varían de forma conjunta respecto a sus medias.

Variables Aleatorias Variable


dependiente
Rendimiento Número de Número de Número de Servicio Asientos Aire Precio
Km/galón Puestos Airbags Pantallas Técnico para Bebe Acondicion Alquiler/Día
ado
Medidas de Tendencia Central

Media 144,9814145 2,49259868 2,34161184 1,75625 0,767434 0,50509868 0,26019736 4395,844408


4 2 211 4 8
Mediana 100 3 2 1 1 1 0 3111

Moda 50 3 1 1 1 1 0 15000

Medidas de Dispersión

Rango 1590 9 9 12 1 1 1 44580

Varianza 16495,3405 1,27614195 2,07031949 2,598250123 0,178508 0,25001512 0,19252636 12792560,75


4 4 303 4 3
Desviación 128,4341874 1,12966453 1,43886048 1,611908845 0,422502 0,50001512 0,43877826 3576,668946
estándar 2 5 43 4 2

Partiendo de las definiciones anteriores podemos concluir que el rendimiento promedio


de los vehículos es de 144,98 km/galón, además que la mediana es de 100 km/galón, lo
que quiere decir que el 50% de los vehículos tiene un rendimiento igual o menor a la
mediana. Se puede decir por otra parte que la desviación estándar es baja dado la amplitud
del rango, por lo que se puede decir que hay datos atípicos en la variable.
La variable del número de puestos presenta un comportamiento normal sesgada a la
derecha, además si bien el rango es amplio las medidas de tendencia central se encuentran
juntas, sumado a la baja variabilidad de los datos, se puede decir que un auto con 10
pantallas es poco usual.
El número de airbags si bien presenta una mayor variación si lo comparamos con el
numero de puestos, sabiendo que tienen el mismo rango, esta variable esta sesgada que la
izquierda, razón por la cual es normal que los automóviles tengan entre uno y dos airbags
nada más.
La variable del número de pantallas cuenta con un rango amplio, pero se puede inferir
que es poco usual que los vehículos cuenten con mas de dos pantallas, sabiendo que en
promedio cuentan con 1,75 pantallas y el 50% de los vehículos solo tiene una.
Las variables tipo, servicio técnico, asientos para bebe, aire acondicionado son de tipo
binario, se puede inferir que el servicio técnico es el servicio mas incluido, seguido de los
asientos para bebe, el aire acondicionado es el servicio menos común, estando presente
solo en el 26,01% de los automóviles.
Por ultimo la variable dependiente, precio de alquiler tiene un rango amplio, y una
desviación estándar baja, además que la media es mayor a la mediana por lo que se puede
decir que esto se debe a valores atípicos los cuales tienden a ser valore numéricos altos.

RESULTADOS Y ANÁLISIS
- Para la base de datos implementada se hizo más conveniente usar un Polinomio
mayor que 2, esto para minimizar el error de la relación entre las variables.
- El valor de Alpha juega un papel muy importante, para la base de datos implementada
resultó más conveniente un Alpha que tiende a 0, esto se debe, al igual que el
Polinomio, al número de datos que componen la base de datos.
- El valor de la talla del paso y el “random_test” aunque también dependa de la base
de datos a implementar, hace que en el proceso de la regresión lineal a la base datos, el
rango sea o no más estrecho, entre más estrecho sean los valores, en otras palabras,
exista una menor diferencia entre los valores entregados en la regresión se obtiene un
resultado similar al valor esperado.
- A partir de la implementación de la base de datos y junto con el uso del modelo
matemático usado para aproximar la relación de una variable dependiente, variables
independientes y un término aleatorio denominado regresión lineal, se verificó la
relación de las mismas, con una precisión cercana al 70%.
- En la implementación de la biblioteca de aprendizaje profundo, primero se debió
acondicionar la biblioteca de Python para Keras, al momento de dar lectura a la base de
datos, se ajustaron los valores de densidad, el tamaño de X y Y, para el ejemplo se
presenta con 13 columnas, para este se presenta con 8.
CONCLUSIONES
- A partir de una base de datos se implementó un modelo en Python para predecir una
variable aleatoria dependiente de otras variables aleatorias.
- Se verificó la regresión lineal como modelo usado para aproximar la relación de
dependencia entre una variable dependiente, variables independientes y un término
aleatorio.
-Se ejemplifico el Uso de Machine Learning mediante el modelo matemático
implementado en Python.

También podría gustarte