Saltar al contenido principal
Página

Tema 4.1 - Recapitulemos

Recapitulemos

En la última misión, exploramos cómo usar un modelo de aprendizaje automático k-nearest neighbors simple que usó solo una característica, o atributo, de la lista para predecir el precio de renta, primero nos basamos en la columna de accommodates, que describe el número de personas que un espacio habitable puede acomodar cómodamente, luego, cambiamos a la columna de bathrooms y observamos una mejora en la precisión, si bien estas fueron buenas características para familiarizarse con los conceptos básicos del aprendizaje automático, está claro que usar una sola característica para comparar listados no refleja la realidad del mercado, un apartamento que puede acomodar a 4 personas en una parte popular de Washington D.C. se alquila por mucho más alto que uno que puede acomodar a 4 personas en un área plagada de delitos.


Hay 2 formas en las que podemos retocar el modelo para tratar de mejorar la precisión (mejorar el RMSE durante la validación):

  1. Incrementar el número de atributos que el modelo usa para calcular similitudes cuando ranquea los vecinos más cercanos 
  2. Incrementar k, el número de vecinos cercanos que el modelo usa cuando calcula la predicción


En esta misión, nos centraremos en aumentar el número de atributos que utiliza el modelo, al seleccionar más atributos para utilizar en el modelo, tenemos que tener cuidado con las columnas que no funcionan bien con la ecuación de la distancia, esto incluye las columnas que contienen:

  • Valores no numéricos (por ejemplo, ciudad o estado):
    1. La ecuación de distancia euclidiana espera valores numéricos

  • Valores perdidos:
  1. La ecuación de la distancia espera un valor para cada observación y atributo

  • Valores no ordinales (por ejemplo, latitud o longitud):
    1. La clasificación por distancia euclidiana no tiene sentido si todos los atributos no son ordinales

En la siguiente pantalla de código, hemos leído el conjunto de datos dc_airbnb.csv de la última misión en pandas y hemos traído los cambios de limpieza de datos que hicimos, vamos a ver primero los valores de la primera fila para identificar cualquier columna que contenga valores no numéricos o no ordinales, en la siguiente pantalla, eliminaremos esas columnas y luego buscaremos los valores que faltan en cada una de las columnas restantes.


Instrucciones

  • Utilice el método DataFrame.info() para devolver el número de valores no nulos en cada columna

Soluciones

 1
 2
 3
 4
 5
 6
 
 7
 
 8
 9
10
import pandas as pd
import numpy as np
np.random.seed(1)

dc_listings = pd.read_csv('dc_airbnb.csv')
dc_listings =
dc_listings.loc[np.random.permutation(len(dc_listings))]
stripped_commas = dc_listings['price'].str.replace(',',
'')
stripped_dollars = stripped_commas.str.replace('$', '')
dc_listings['price'] = stripped_dollars.astype('float')
print(dc_listings.info())
Última modificación: miércoles, 27 de abril de 2022, 18:08