def random_forest(): preprocessor = pp.PreprocessingLE() model = RandomForestClassifier(random_state=pp.RANDOM_STATE, n_jobs=-1, max_depth=8, min_samples_leaf=1, min_samples_split=14, max_features=7) pipeline = Pipeline([("preprocessor", preprocessor), ("model", model)]) return pipeline
def xgboost(): pipeline = Pipeline([("preprocessor", pp.PreprocessingLE()), ("model", XGBClassifier(use_label_encoder=False, scale_pos_weight=1, subsample=0.8, colsample_bytree=0.8, objective="binary:logistic", n_estimators=1000, learning_rate=0.01, n_jobs=-1, eval_metric="logloss", min_child_weight=6, max_depth=6, reg_alpha=0.05))]) return pipeline
from sklearn.pipeline import Pipeline from sklearn.base import BaseEstimator, TransformerMixin import random seed = 100 np.random.seed(seed) random.seed(seed) 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)
import random seed = 100 np.random.seed(seed) random.seed(seed) X, y = utils.importar_datos() # ### Modelo 1 # - Label encoder para las categóricas # - Hiperparámetros por defecto (se setean dos para que no tire warnings) # Como primera aproximación, se utiliza el preprocesador utilizado en Random Forest (que usa Label Encoding para las variables categóricas) dado que este modelo también se encuentra basado en árboles. Se utilizan los parámetros por deafault. pipeline = Pipeline([ ("preprocessor", pp.PreprocessingLE()), ("model", XGBClassifier(use_label_encoder=False, eval_metric='logloss')) ]) # #### Metricas utils.metricas_cross_validation(X, y, pipeline) # ### Modelo 2 # - Se utiliza OHE para las categoricas # - Se imputan los missings con la mediana en la edad # - Se separa en dos bins la edad y el precio de ticket (se probó y da mejores resultados que no haciendolo). pipeline = Pipeline([ ("preprocessor", pp.PreprocessingXGBoost()),