mlearner version: 0.2.0

PipelineClasificators

PipelineClasificators(random_state=99)

Evaluacion de modelosself.

Parameters

Attributes

See Also

Methods


Ablacion_relativa(pipeline, X, y, n_splits=10, mute=False, std=True, scoring='accuracy', display=True, save_image=False, path='/')

None


AdaBoostClassifier(params)

None


CatBoost(name='CBT')

None


ExtraTreesClassifier(params)

None


FineTune(model, X, y, params, refit='Accuracy', cv=3, verbose=0, randomized=True, n_iter=100, mute=False)

Tecnica de Ajuste fino de hiperparametros.

Model: Modelo a Optimizar.

params: diccionario de parametros con el grid.

scoring: Metricas. scoring = {'AUC': 'roc_auc', 'Accuracy': acc_scorer} - Anotador de metricas: acc_score = make_scorer(accuracy_score, mean_squared_error)

refit: Metrica de importancia para optimizar el modelo'Accuracy'


GradientBoostingClassifier(params)

None


GridSearchCV_Evaluating(model, param, max_param, min_score=0.5)

https://scikit-learn.org/stable/auto_examples/model_selection/plot_multi_metric_evaluation.html#sphx-glr-auto-examples-model-selection-plot-multi-metric-evaluation-py


KFold_CrossValidation(model, X, y, n_splits=10, ROC=False, shuffle=True, mute=False, logdir_report='', display=True, save_image=True, verbose=0)

Validacion cruzada respecto a "n_plits" del KFolds.


KNearestNeighbors()


LightBoost(name='LBT')

None


NaiveBayes()

Naive Bayes assumes the data to be normally distributed which can be achieved by scaling using the MaxAbsScaler.


Pipeline_FeatureSelect(X, y, n_splits=10, mute=False, scoring='accuracy', n_features=20, display=True, save_image=False, path='/')

None


Pipeline_GridSearch()

None


Pipeline_SelectEmsembleModel(X, y, n_splits=10, mute=False, scoring='accuracy', display=True, save_image=False, path='/', AB=True)

None


Pipeline_SelectModel(X, y, n_splits=5, select='XGBoost')

None


Pipeline_StackingClassifier(X, y, n_splits=5)

None


RandomForestClassifier()

n_jobs: Parelizacion en la computacion. oob_score: True, muestreo aleatorio. n_estimadores = numero de arboles en el bosque max_features = numero maximo de caracteristicas consideradas para dividir un nodo max_depth = numero maximo de niveles en cada arbol de decision min_samples_split = numero minimo de puntos de datos colocados en un nodo antes de que el nodo se divida min_samples_leaf = numero minimo de puntos de datos permitidos en un nodo hoja bootstrap = metodo para muestrear puntos de datos (con o sin reemplazo)


SupportVectorMachine(params)


XGBoost(name='CBT')

"min_child_weight": [ Minimum sum of instance weight (hessian) needed in a child. "objective": learning task. "eval_metric": Evaluation metrics for validation dat. "max_depth": Maximum depth of a tree. Increasing this value will make the model more complex and more likely to overfit "max_delta_step": /Maximum delta step we allow each leaf output to be. If the value is set to 0, it means there is no constraint. "sampling_method": The method to use to sample the training instances. "subsample": Subsample ratio of the training instances. Setting it to 0.5 means that XGBoost would randomly sample half of the training data prior to growing trees. and this will prevent overfitting. "eta": tep size shrinkage used in update to prevents overfitting. "gamma": Minimum loss reduction required to make a further partition on a leaf node of the tree. "lambda": L2 regularization term on weights. Increasing this value will make model more conservative. "alpha": L1 regularization term on weights. Increasing this value will make model more conservative. "tree_method": he tree construction algorithm used in XGBoost. "predictor": The type of predictor algorithm to use. "num_parallel_tree": umber of parallel trees constructed during each iteration.

https://www.analyticsvidhya.com/blog/2016/03/complete-guide-parameter-tuning-xgboost-with-codes-python/


add_model(model)

Incorporar modelo en la clase


append_summary(model, X_train, X_test, y_train, y_test, name)

None


class_report(y_true, predictions, clases, save=False, logdir_report='')

Un informe de clasificacion se utiliza para medir la calidad de las predicciones de un algoritmo de clasificacion. Cuantas predicciones son verdaderas y cuantas son falsas. Mas especificamente, los Positivos verdaderos, los Positivos falsos, los negativos verdaderos y los negativos falsos se utilizan para predecir las metricas de un informe de clasificacion.

El informe muestra las principales metricas de clasificacion de precision, recuperacion y puntaje f1 por clase. Las metricas se calculan utilizando verdaderos y falsos positivos, verdaderos y falsos negativos. Positivo y negativo en este caso son nombres genericos para las clases predichas. Hay cuatro formas de verificar si las predicciones son correctas o incorrectas:

TN / Verdadero negativo: cuando un caso fue negativo y se pronostico negativo TP / Verdadero Positivo: cuando un caso fue positivo y predicho positivo FN / Falso negativo: cuando un caso fue positivo pero predicho negativo FP / Falso Positivo: cuando un caso fue negativo pero predicho positivo

La precision es la capacidad de un clasificador de no etiquetar una instancia positiva que en realidad es negativa. Para cada clase se define como la relacion de positivos verdaderos a la suma de positivos verdaderos y falsos.

TP - Positivos verdaderos FP - Positivos falsos

Precision: precision de las predicciones positivas. Precision = TP / (TP + FP)

Recordar es la capacidad de un clasificador para encontrar todas las instancias positivas. Para cada clase se define como la relacion entre los verdaderos positivos y la suma de los verdaderos positivos y los falsos negativos.

FN - Falsos negativos

Recordar: fraccion de positivos identificados correctamente. Recuperacion = TP / (TP + FN)

El puntaje F 1 es una media armonica ponderada de precision y recuperacion de modo que el mejor puntaje es 1.0 y el peor es 0.0. En terminos generales, los puntajes de F 1 son mas bajos que las medidas de precision, ya que incorporan precision y recuerdo en su calculo. Como regla general, el promedio ponderado de F 1 debe usarse para comparar modelos clasificadores, no la precision global.

Puntuacion F1 = 2 * (recuperacion * precision) / (recuperacion + precision)


compute_roc_auc(model, index, X, y)

Computo para todas las pruebas de KFold


confusion_matrix(y_true, y_pred)

None


create_ROC(lm, X_test, Y_test, targets=[0, 1], logdir_report='', display=True, save_image=True)

Se crea la curva ROC de las predicciones de conjunto de test.

Outputs: - df: Dataframe de los datos de metricas ROC. - auc: Area por debajo de la curfa ROC (efectividad de las predicciones).


create_ROC_pro(fprs, tprs, X, y, targets=[0, 1], logdir_report='', display=True, save_image=True)

Plot the Receiver Operating Characteristic from a list of true positive rates and false positive rates.


eval_FineTune(X, y)

https://towardsdatascience.com/hyperparameter-tuning-the-random-forest-in-python-using-scikit-learn-28d2aa77dd74 https://github.com/WillKoehrsen/Machine-Learning-Projects/blob/master/random_forest_explained/Improving%20Random%20Forest%20Part%202.ipynb


eval_Kfold_CV(model, X, X_test, y, y_test, n_splits=3, shuffle=True, mute=True)

None


eval_train(model, X, y, name='Performance')

None


evaluacion_rf_2features(clf, data_eval, data_eval_target, targets=[0, 1], save=False, logdir_report='', display=True)

Funcion que nos selecciona el thresholder mas optimo:

Inputs:

Outputs:


evaluate(model, X, y)

Evalucion del modelo Fine-Tune


features_importances(clf, X, y, display=True, save_image=False, path='/')

None


features_important(X, y, logdir='', display=True, save_image=False)

Explorar las features mas significativas


func_acc(prob_pred, y_target)

None


get_model()

None


heatmap_params(parameters, results_df, metric='mean_test_Accuracy')

parametres a relacionar: parameters = ["n_estimators", "min_samples_split"]


plot_Histograma(predict, correct, incorrect, logdir_report, categorias=[0, 1], display=True, save_image=True)

None


plot_confusion_matrix(y_true, y_pred, classes, num_clases, logdir_report, normalize=False, title=None, cmap=, name='cm_normalizada')

Una matriz de confusion es un resumen de los resultados de prediccion sobre un problema de clasificacion.

El numero de predicciones correctas e incorrectas se resume con valores de conteo y se desglosa por clase. Esta es la clave de la matriz de confusion.

La matriz de confusion muestra las formas en que su modelo de clasificacion se confunde cuando hace predicciones.

Le da una idea no solo de los errores que esta cometiendo su clasificador, sino mas importante aun, de los tipos de errores que se estan cometiendo.

Es este desglose el que supera la limitacion del uso de la precision de clasificacion solo.


pred_binary(prob_pred, y_target, th=0.5)

None


replace_multiclass(targets)

None


restore_model(filename)

Load the model from disk


save_model(filename)

Save the model to disk


validacion_cruzada(X, Y, n_splits, shuffle=True, scoring='accuracy')

Validacion cruzada del dataset introducido como input.

Inputs: - cv = Numero de iteraciones.

Outputs: - score: Media de los acc de todas las iteraciones.

TrainingUtilities

TrainingUtilities(random_state=99)

None

Methods


Seleccion_rasgos(model, X, Y, n, display=True)

Funcion que nos retorna las categorias que mas influyen en el modelo.

Inputs: - X, Y: dataset. - n: numero de categorias que queremos que formen parte de variables del modelo de RL. - display: Mostrar los resultados por pantalla

Outputs: - z: Resumen de la inferencia de cada categoria en el modelo de RL. - valid: Categorias seleccionadas para formar parte del modelo de RL.


opt_RandomForest_Classifier(X, Y, nmin=1, nmax=10000, num=4, display=True)

Seleccion del numero de categorias a tener en cuenta para RF


optimizacion_seleccion_rasgos(model, X, Y, n_splits, display=True)

Seleccion del numero de categorias a tener en cuenta


validacion_cruzada(model, X, Y, n_splits, shuffle=True, scoring='accuracy')

Validacion cruzada del dataset introducido como input.

Inputs: - cv = Numero de iteraciones.

Outputs: - score: Media de los acc de todas las iteraciones.

wrapper_model

wrapper_model(clf, pipeline_preprocess, random_state=99, name='model', select=False)

Wrapper for Estimator.

Methods


Evaluation_model(X, y, clases=[0, 1], save=True, ROC=True, n_splits=10, path='checkpoints/')

None


Grid_model(X, y, n_splits=10, scoring='accuracy', Randomized=False, n_iter=20)

None


Pipeline_train(X, y, n_splits=10, Randomized=False, n_iter=20, threshold='median', clases=[0, 1], ROC=True, path='checkpoints/', eval=True, report=False)

None


Restore_Pipeline(filename='checkpoints/Pipeline_model.pkl')

None


Restore_model(filename='checkpoints/model.pkl')

None


buid_Pipeline(pipeline_preprocess, threshold='median', select=True)

None


build_param_grid(param_grid)

None


cuarentena(X, y)

None


fit(X, y)

None


fit_cv(X, y, n_splits=10, scoring='accuracy', shuffle=False)

None


fit_transform(X, y=None, fit_params)

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters

Returns


get_params(deep=True)

Get parameters for this estimator.

Parameters

Returns


line()

None


predict(X)

None


predict_proba(X)

None


restore_pipeline_v1(filename, random_state=99, name='Pipeline_model')

None


save_general(path, X_train, y_train)

None


score(X, y)

None


set_params(params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter> so that it's possible to update each component of a nested object.

Parameters

Returns


train_test(X, y, test_size=0.1)

None

wrapper_pipeline

wrapper_pipeline(filename, name='model', random_state=99)

Wrapper for Estimator.

Methods


Evaluation_model(X, y, clases=[0, 1], save=True, ROC=True, n_splits=10, path='checkpoints/')

None


Grid_model(X, y, n_splits=10, scoring='accuracy', Randomized=False, n_iter=20)

None


Pipeline_train(X, y, n_splits=10, Randomized=False, n_iter=20, threshold='median', clases=[0, 1], ROC=True, path='checkpoints/', eval=True)

None


Restore_Pipeline(filename='checkpoints/Pipeline_model.pkl')

None


Restore_model(filename='checkpoints/model.pkl')

None


build_param_grid(param_grid)

None


cuarentena(X, y)

None


fit(X, y)

None


fit_cv(X, y, n_splits=10, scoring='accuracy', shuffle=False)

None


fit_transform(X, y=None, fit_params)

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters

Returns


get_params(deep=True)

Get parameters for this estimator.

Parameters

Returns


line()

None


predict(X)

None


predict_proba(X)

None


save_general(path, X_train, y_train)

None


score(X, y)

None


set_params(params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter> so that it's possible to update each component of a nested object.

Parameters

Returns


train_test(X, y, test_size=0.1)

None