En una misión anterior, aprendimos sobre la validación de entrenamiento/prueba, una técnica simple para probar la precisión de un modelo de aprendizaje automático en nuevos datos en los que el modelo no fue entrenado, en esta misión, nos centraremos en técnicas más robustas, para empezar, nos centraremos en la técnica de validación de retención (holdout validation), que implica:
En la validación por retención (holdout validation), solemos utilizar una división 50/50 en lugar de la división 75/25 de la validación de entrenamiento/prueba, de este modo, eliminamos el número de observaciones como fuente potencial de variación en el rendimiento de nuestro modelo.

Empecemos por dividir el conjunto de datos en 2 mitades casi equivalentes.
Al dividir el conjunto de datos, no olvides establecer una copia del mismo utilizando .copy() para asegurarte de que no obtienes resultados inesperados más adelante, si ejecutas el código localmente en Jupyter Notebook o Jupyter Lab sin .copy(), notarás lo que se conoce como una advertencia SettingWithCopy, esto no impedirá que tu código se ejecute correctamente, pero te está haciendo saber que cualquier operación que estés haciendo está tratando de establecerse en una copia de un slice de un dataframe, para asegurarse de no ver esta advertencia, asegúrese de incluir .copy() siempre que realice operaciones en un marco de datos.
|
|
import numpy as np import pandas as pd dc_listings = pd.read_csv("dc_airbnb.csv") stripped_commas = dc_listings[ 'price'].str.replace(',', '') stripped_dollars = stripped_commas.str.replace('$', '') dc_listings['price'] = stripped_dollars.astype('float") shuffled_index = np.random.permutation(dc_listings.index) dc_listings = de_listings.reindex(shuffled_index) split_one = de_listings.¡loc[0:1862].copy() split_two = de_listings.¡loc[1862:].copy() |