Modelado

Matriz de confusión

KNN

mc_knn = confusion_matrix(y, pred_knn)
mc_knn
array([[882, 425],
       [427, 856]])

Árbol

mc_arbol = confusion_matrix(y, pred_arbol)
mc_arbol
array([[993, 314],
       [312, 971]])

Bosques

mc_bosques = confusion_matrix(y, pred_bosques)
mc_bosques
array([[1097,  210],
       [ 224, 1059]])

Potenciación

mc_ada = confusion_matrix(y, pred_ada)
mc_ada
array([[1097,  210],
       [ 230, 1053]])

SVM

mc_svm = confusion_matrix(y, pred_svm)
mc_svm
array([[1098,  209],
       [ 205, 1078]])

Precisiones

def Errores(y_true, y_predicted):
  MC = confusion_matrix(y_true, y_predicted)
  PG = np.round(np.sum(MC.diagonal()) / np.sum(MC) * 100, 2)
  PC = np.round(MC.diagonal()/np.sum(MC, axis = 1) * 100, 2)
  df = pd.DataFrame({'PG' : [PG], 'PLOCAL' : [PC[0]], 'PVISITA' : [PC[1]]})
  return df
error_knn     = Errores(y, pred_knn)
error_svm     = Errores(y, pred_svm)
error_arbol   = Errores(y, pred_arbol)
error_bosques = Errores(y, pred_bosques)
error_ada     = Errores(y, pred_ada)

errores = pd.concat([
  error_knn, error_svm, error_arbol, error_bosques, error_ada], ignore_index = True)

errores.index = ['KNN', 'SVM', 'Árbol', 'Bosques', 'Potenciación']
errores
PG PLOCAL PVISITA
KNN 67.10 67.48 66.72
SVM 84.02 84.01 84.02
Árbol 75.83 75.98 75.68
Bosques 83.24 83.93 82.54
Potenciación 83.01 83.93 82.07
fig = go.Figure()
no_plot = fig.add_trace(go.Bar(x = errores.index, y = errores.PG, name = "Global"))
no_plot = fig.add_trace(go.Bar(x = errores.index, y = errores.PLOCAL, name = "Local"))
no_plot = fig.add_trace(go.Bar(x = errores.index, y = errores.PVISITA, name = "Visita"))
fig.update_layout(title = "Precisiones")
fig.show()