Con los algoritmos de aprendizaje automático de LassoCV, RidgeCV y Regresión lineal.
En este post, lo guiaré por el proceso científico de mis datos para utilizando el aprendizaje automático para predecir los precios de la vivienda. Antes de comenzar, me gustaría resumir el proceso de la ciencia de datos:
- Defina el problema
- Reúna los datos
- Limpie y explore los datos
- Modele los datos
- Evalúe el modelo
- Responda la problema
Defina el problema
Se me asignó la tarea de crear un modelo de aprendizaje automático para predecir el precio de una vivienda usando el conjunto de datos de viviendas Ames de Kaggle. Queriendo hacer que el problema de la ciencia de los datos sea más realista, agregué la necesidad de mejorar la precisión Zestimate de Zillow (clasificación por estrellas) para áreas como Ames con 3 estrellas (Good Zestimate). Esto se debería a un supuesto aumento en el tráfico web del usuario hacia las propiedades con una estimación de 3 estrellas Zestimates.
Recolecte los datos
El conjunto de datos contenía información de la Oficina del Asesor que se usó para calcular los valores evaluados para propiedades residenciales individuales vendidas en Ames, IA de 2006 a 2010. El conjunto de datos contenía 2051 filas y 81 columnas (características) de información. Estos datos fueron recopilados y proporcionados por Kaggle. Si no me hubieran proporcionado los datos, mi método de recopilación habría sido hacer una investigación para ver si estaba disponible públicamente o bajarla mediante la API de Zillow.
Limpiar y explorar los datos
A continuación, realicé la limpieza de mis datos. y análisis exploratorio. Para el primero, verifiqué y tomé decisiones sobre valores nulos y errores de entrada de datos. Para este último, visualicé los datos para ver y comprender mejor las relaciones y distribuciones.
A continuación se muestran dos visualizaciones de mi variable objetivo, Precio de venta. Quería entender su distribución.


Quería examinar esas relaciones más a fondo, así que graficé diagramas de dispersión de seis de las características del mapa de calor de correlación de arriba.
puedo ver overall_qual que tuvo la correlación más fuerte con el precio de venta en 0.80 muestra la relación lineal más fuerte entre los seis elegidos.
Modele los datos
En este paso, divido mis datos en conjuntos de entrenamiento y pruebas , elegí mis características para incorporar los modelos, los métodos de ingeniería de características y los modelos. Inicialmente comencé con un proceso de selección hacia adelante: seleccioné una función, ejecuté mi modelo, verificé el rendimiento y repetí los pasos. También creé manualmente algunos términos de interacción, dummied (convirtiendo una característica categórica en una matriz booleana), y asigné (calificando / ponderando características categóricas) algunas de mis características categóricas. Cada característica que elegí incluir en mi modelo tal como está o fue diseñada manualmente fue intencional. La mayor parte de mi confianza estaba en la fuerte correlación de la característica con el precio de venta y en las suposiciones intuitivas que hice sobre si una característica tendría o no un impacto en el precio de venta. Con este método obtuve excelentes resultados, pero me entusiasmé y asumí (incorrectamente) que todas mis funciones tendrían el mejor rendimiento para mi modelo si simulaba o mapeaba todas las categorías y luego aplicaba características polinómicas (en términos de interacciones en masa ) para todos después de que fueran numéricos.
Verifiqué las correlaciones de mis características recién diseñadas con mi variable objetivo, Precio de venta. A continuación se muestran los resultados.
Como puede ver, las características que asigné (segunda imagen) Tenía correlaciones mucho más fuertes con el precio de venta que las características que yo había simulado. Aún así, mantuve mi suposición y procedí a alimentar mi modelo con todas mis características (excepto, por supuesto, el precio de venta).
Elegí tres algoritmos de aprendizaje automático que eran Regresión lineal, RidgeCV y LassoCV. Sabía que con un gran número de funciones mejoraría mi potencial de sobrealimentación, así que quise incluir los últimos modelos, ya que tienen métodos rigurosos de regularización. También asumí que las características polinomiales se harían cargo de cualquier multicolinealidad entre mis características.
Evaluar el modelo
El modelo con el que fui fue LassoCV. Logró un R-cuadrado de 94% en mis datos de entrenamiento y 86% en datos invisibles. El RMSE para mis datos de prueba fue 37,334. Esto significa dos cosas: 1) 86% de la variabilidad en los datos se explica por el modelo y 2) el modelo es overfit.
A continuación puede ver la distribución de mis predicciones (yhat) superpuesta contra la variable objetivo (y
El modelo final no fue mi mejor modelo. Desafortunadamente, sobrescribí las características de mi mejor modelo, aquel en el que fui intencional en mi selección de funciones y en mi proceso de ingeniería, ya que se asumió incorrectamente que convertir todas las funciones en numéricas y usar características polinómicas daría incluso mejores resultados. [19659012] Responda al problema
El modelo LassoCV maneja los datos invisibles bastante bien, así que lo usaría para predecir el precio de una casa.
Recomendación
Una recomendación que haría sería continuar probando / aprendiendo para mejorar el modelo por:
- Revisando mi proceso de selección inicial hacia adelante
- Seleccionando características altamente correlacionadas con el Precio de venta
- Creando otras nuevas y verificando su correlación
- Alimentando el modelo y verificando los resultados
- Manteniendo el seguimiento de la características que mejoran el modelo y descartan (pero también rastrean) las características que no
Verifique mi código y mi presentación . Por favor comente cualquier pregunta. ¡Gracias por leer!
Uso del aprendizaje automático para predecir los precios de la vivienda se publicó originalmente en Hacia la ciencia de datos en Medium, donde las personas continúan la conversación destacando y respondiendo a esta historia.