He generado un modelo y validado el mismo generando el archivo con la columna de los valores que mi modelo "predice" para los datos del csv de validacion.
Cuando voy a subirlo me dice que debo poner una url... me pueden explicar como subir la solucion del modelo o que cosas se espera que se "suban" a esa url? el modelo? el archivo con los resultados generados, el proceso de limpieza, depuracion y generacion del modelo, los pasos intermedios dados para la carga y para la validacion, etc
Hola Nestor debería permitirte subir la solución csv y un colab con el código o una url que nos puedes copartir un drive para acceder al csv y al colab.
Saludos!
el archivo generado debe tener los mismos datos que el archivo enviado apra validar MAS LA COLUMNA GENERADA POR LA PREDICCION?
O puede ser el resultado del dataframe ya limpio y procesado? por ejemplo si hay mapeos de valores dentro dle mismo campo ?
por ejemplo luego de hacer
mapeo = {
'C': 1,
'I': 2,
'E': 3,
'R': 4
}
df3['cod_area_escuela'] = df3['cod_area_escuela'].map(mapeo)
El valor de cod_area_escualea en el dataframe quedara con los valores 1,2,3,4 en lugar de C,I,E,R..... eso es valido o debe ir el archivo original tal cual se recibio mas la columna calculada?
Hola, el archivo generado va a tener la misma cantidad de filas que “st_verify_data.csv”, lo que tienen que enviar obligatoriamente es una columna con el id y otra con la predicción. Si quieren pueden dejar las demás pero las que necesitamos son esas dos.
La columna a agregar se podría llamar por ejemp. evaluacion_final: La estructura del archivo a entregar será la siguiente:
Columnas:
- id: Debe contener los valores de los IDs dados en "st_verify_data.csv".
- predicciones: Debe contener las predicciones para cada id, bajo la columna "evaluacion_final".
Ejemplo de Formato del Archivo de Entrega:
___________________
| id | evaluacion_final |
___________________
| 1 | prediccion1 |
| 2 | prediccion2 |
| 3 | prediccion3 |
___________________
Donde "prediccion1", "prediccion2" y "prediccion3" son las predicciones que tu modelo generó para cada ID correspondiente.
Adjunto una imagen.
Un posible proceso para generar el archivo de entrega puede ser:
- Cargar "st_verify_data.csv": Cargar el archivo de validación para obtener los IDs.
- Generar Predicciones: Usar tu modelo para predecir "evaluacion_final" para cada fila en "st_verify_data.csv".
- Crear DataFrame de Entrega: Crear un nuevo DataFrame que contenga las columnas "id" y "evaluacion_final".
- Guardar en CSV: Guardar el DataFrame en un archivo CSV.
En python podría ser:
import pandas as pd
#Cargar el archivo de validación
verify_data = pd.read_csv('st_verify_data.csv')
predicciones = modelo.predict(verify_data)
#se debe realizar el proceso que se haya realizado a las columnas en el conjunto de entrenamiento
#Creamos el DataFrame de entrega, en el siguiente paso hacer solo una delas opciones, ver cual les aplica mejor
#1- una posible opción
entrega = pd.DataFrame({
'id': verify_data['id'],
'evaluacion_final': predicciones
})
#2- otra opción capaz que para visualizar mejor paso a paso el proceso
entrega = pd.DataFrame(columns=['id', 'evaluacion_final'] )
#Guardamos el DataFrame en un archivo CSV
entrega.to_csv('archivo_entrega.csv', index=False)
Respecto a:
El valor de cod_area_escualea en el dataframe quedara con los valores 1,2,3,4 en lugar de C,I,E,R..... eso es valido o debe ir el archivo original tal cual se recibio mas la columna calculada?
Respuesta:
Está bien lo que pones, me corriges cualquier cosa pero creo que hicistes ese cambio para que el modelo pueda procesar la columna, en la entrega no va a afectar dado que la evaluación se va a tomar en base al id y su respectiva predicción (si aprobo o no)
Lo único que quizás te sirve re pensar es si se puede ser que al pasarle 1,2,3,4 el algoritmo interprete que es una ponderación, o sea, el 1 > 2 eso se corresponde con por ejemplo C > I. Si esa consideración no corresponde para pasar a valores quizás puede aplicar algún tipo de codificación como:
- Codificación One-Hot
- Codificación Ordinal
- Codificación Basada en Frecuencia, entre otras.
Agrego un ejemplo de One-hot:
data = {'cod_area_escuela': ['C', 'I', 'E', 'R']}
df = pd.DataFrame(data)
#Aplico codificación one-hot
df_encoded = pd.get_dummies(df, columns=['cod_area_escuela'])
adjunto lo que quedaría de df_encoded
Cualquier problema que te surja vuelves a escribir, saludos!
Un posible proceso para generar el archivo de entrega puede ser:
Cargar "st_verify_data.csv": Cargar el archivo de validación para obtener los IDs.
Generar Predicciones: Usar tu modelo para predecir "evaluacion_final" para cada fila en "st_verify_data.csv".
Crear DataFrame de Entrega: Crear un nuevo DataFrame que contenga las columnas "id" y "evaluacion_final".
Guardar en CSV: Guardar el DataFrame en un archivo CSV.
Podría ser:
import pandas as pd
#Cargar el archivo de validación
verify_data = pd.read_csv('st_verify_data.csv')
predicciones = modelo.predict(verify_data)
#se debe realizar el proceso que se haya realizado a las columnas en el conjunto de entrenamiento
#Creamos el DataFrame de entrega, en el siguiente paso hacer solo una delas opciones, ver cual les aplica mejor
#1- una posible opción
entrega = pd.DataFrame({
'id': verify_data['id'],
'evaluacion_final': predicciones
})
#2- otra opción capaz que para visualizar mejor paso a paso el proceso
entrega = pd.DataFrame(columns=['id', 'evaluacion_final'] )
x=0
for i in verify_data ['id']:
entrega.loc[x] = [i,predicciones [x]]
x = x+1
#Guardamos el DataFrame en un archivo CSV
entrega.to_csv('archivo_entrega.csv', index=False)