Resultado 02
In [1]:
Copied!
# librerias
from loguru import logger
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)
pd.set_option('display.float_format', lambda x: '%.3f' % x)
# librerias
from loguru import logger
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)
pd.set_option('display.float_format', lambda x: '%.3f' % x)
Lectura de datos¶
In [2]:
Copied!
logger.info("Leer Datos")
# paths
path_raw = "../../data/raw/"
path_procesed = "../../data/procesed/"
path_final = "../../data/final/"
logger.info("Leer Datos")
# paths
path_raw = "../../data/raw/"
path_procesed = "../../data/procesed/"
path_final = "../../data/final/"
2024-04-02 22:32:09.878 | INFO | __main__:<module>:1 - Leer Datos
In [3]:
Copied!
# leer datos
train = pd.read_csv(path_raw + "train.csv")
test = pd.read_csv(path_raw + "test.csv")
# leer datos
train = pd.read_csv(path_raw + "train.csv")
test = pd.read_csv(path_raw + "test.csv")
In [4]:
Copied!
# Obtener nombres de columnas según tipos de datos
variable_objetivo = 'Survived'
columnas_flotantes = [x for x in list(train.select_dtypes(include=['float64']).columns) if x!=variable_objetivo]
columnas_enteras = [x for x in list(train.select_dtypes(include=['int32', 'int64']).columns) if x!=variable_objetivo]
columnas_objetos = [x for x in list(train.select_dtypes(include=['object']).columns) if x!=variable_objetivo]
# Obtener nombres de columnas según tipos de datos
variable_objetivo = 'Survived'
columnas_flotantes = [x for x in list(train.select_dtypes(include=['float64']).columns) if x!=variable_objetivo]
columnas_enteras = [x for x in list(train.select_dtypes(include=['int32', 'int64']).columns) if x!=variable_objetivo]
columnas_objetos = [x for x in list(train.select_dtypes(include=['object']).columns) if x!=variable_objetivo]
Feature Engineering¶
Esta etapa ofrece numerosas oportunidades para un análisis más profundo, especialmente al comparar con otras columnas. Sin embargo, para nuestros propósitos prácticos, seguiremos este enfoque:
- Eliminaremos las columnas 'Name' y 'Ticket', ya que inicialmente no contribuyen significativamente al modelo.
- Para la variable 'Age', rellenaremos los valores faltantes con la media de edades.
- Abordaremos la columna 'Cabin' al reemplazar los valores faltantes con el dato más frecuente, optimizando así la integridad devariabler
- Modificaremos el tipo de las variables 'Pclass', 'SibSp'y 'Parch'.iable.
In [5]:
Copied!
logger.info("eliminar variables: 'Name' y 'Ticket'")
cols_delete = ['Name', 'Ticket']
train = train.drop(cols_delete,axis=1)
test = test.drop(cols_delete,axis=1)
logger.info("eliminar variables: 'Name' y 'Ticket'")
cols_delete = ['Name', 'Ticket']
train = train.drop(cols_delete,axis=1)
test = test.drop(cols_delete,axis=1)
2024-04-02 22:32:09.925 | INFO | __main__:<module>:1 - eliminar variables: 'Name' y 'Ticket'
In [6]:
Copied!
logger.info("Rellenar 'Age' con el promedio")
age_mean = round(train['Age'].mean())
train['Age'] = train['Age'].fillna(age_mean)
test['Age'] = test['Age'].fillna(age_mean)
logger.info("Rellenar 'Age' con el promedio")
age_mean = round(train['Age'].mean())
train['Age'] = train['Age'].fillna(age_mean)
test['Age'] = test['Age'].fillna(age_mean)
2024-04-02 22:32:09.941 | INFO | __main__:<module>:1 - Rellenar 'Age' con el promedio
In [7]:
Copied!
logger.info("Modificar y rellenar valores nulos 'Cabin'")
train['Cabin'] = train['Cabin'].fillna('N').str[0]
test['Cabin'] = test['Cabin'].fillna('N').str[0]
logger.info("Modificar y rellenar valores nulos 'Cabin'")
train['Cabin'] = train['Cabin'].fillna('N').str[0]
test['Cabin'] = test['Cabin'].fillna('N').str[0]
2024-04-02 22:32:09.956 | INFO | __main__:<module>:1 - Modificar y rellenar valores nulos 'Cabin'
In [8]:
Copied!
logger.info("Cambiar tipo de datos: 'Pclass', 'SibSp'y 'Parch'")
columns_to_convert = ['Pclass', 'SibSp','Parch']
train[columns_to_convert] = train[columns_to_convert].astype(str)
test[columns_to_convert] = test[columns_to_convert].astype(str)
logger.info("Cambiar tipo de datos: 'Pclass', 'SibSp'y 'Parch'")
columns_to_convert = ['Pclass', 'SibSp','Parch']
train[columns_to_convert] = train[columns_to_convert].astype(str)
test[columns_to_convert] = test[columns_to_convert].astype(str)
2024-04-02 22:32:09.972 | INFO | __main__:<module>:1 - Cambiar tipo de datos: 'Pclass', 'SibSp'y 'Parch'
In [9]:
Copied!
logger.info("Guardar Resultados")
train.to_csv(path_procesed+'train.csv',sep=',',index=False)
test.to_csv(path_procesed+'test.csv',sep=',',index=False)
logger.info("Guardar Resultados")
train.to_csv(path_procesed+'train.csv',sep=',',index=False)
test.to_csv(path_procesed+'test.csv',sep=',',index=False)
2024-04-02 22:32:09.987 | INFO | __main__:<module>:1 - Guardar Resultados