X, y = utils.importar_datos() # ### Modelo 1 # - Preprocesamiento con LaberEncoding # - Hiperparametros por defecto preprocessor = pp.PreprocessingLE() model = tree.DecisionTreeClassifier(random_state=pp.RANDOM_STATE) pipeline = Pipeline([("preprocessor", preprocessor), ("model", model)]) # #### Metricas utils.metricas_cross_validation(X, y, pipeline) # ### Modelo 2 # - Preprocesamiento con OneHotEncoding # - Hiperparametros por defecto preprocessor = pp.PreprocessingOHE() model = tree.DecisionTreeClassifier(random_state=pp.RANDOM_STATE) pipeline = Pipeline([("preprocessor", preprocessor), ("model", model)]) # #### Metricas utils.metricas_cross_validation(X, y, pipeline)
random.seed(seed) X, y = utils.importar_datos() # ### Modelo 1 # - Se utilizan únicamente las variables categóricas genero, tipo_sala y nombre_sede para realizar la clasificación # - Se probó agregando las columnas `edad_isna` y `fila_isna` pero el modelo no mejoró sus resultados. pipeline_1 = Pipeline([("preprocessor", pp.PreprocessingCategoricalNB1()), ("model", CategoricalNB()) ]) # #### Metricas utils.metricas_cross_validation(X, y, pipeline_1) # ### Modelo 2 # - Se transforman las variables numéricas (precio_ticket y edad) en bins para poder utilizar solamente CategoricalNB. # - Se realizan las mismas transformaciones que en el modelo anterior sobre las variables categóricas. # - Se eliminaron las variables amigos y parientes debido a que no mejoraban el score del modelo. pipeline_2 = Pipeline([("preprocessor", pp.PreprocessingCategoricalNB2()), ("model", CategoricalNB()) ]) # #### Metricas utils.metricas_cross_validation(X, y, pipeline_2)
estimadores = [('svm', svm()), ('xgboost', xgboost()), ('random_forest', random_forest())] cv = utils.kfold_for_cross_validation() stacking = StackingClassifier( estimators=estimadores, final_estimator=GaussianNB(var_smoothing=var_smoothing), stack_method="predict_proba", cv=cv) return stacking stacking = stacking_gaussian() # #### Metricas utils.metricas_cross_validation(X, y, stacking) # ### Modelo 2 # - Mismo tipo de ensamble # - Mismo estimador final que en el modelo 1, pero se busca un mejor hiperparámetro para el GaussianNB. # stacking = stacking_gaussian() # + #params = { # 'final_estimator__var_smoothing': [1e-9, 1e-7, 1e-6, 1e-3, 5e-3, 1e-2, 0.1, 0.3], # 'xgboost__model__use_label_encoder': [False], # 'xgboost__model__scale_pos_weight': [1], # 'xgboost__model__subsample': [0.8],