Se hizo el split 80% / 20% balanceado, por lo tanto tenemos 5 splits disjuntos, cada uno entrenado con ~14373 SI debito y ~14373 NO debito. Por lo tanto cada modelo, tiene 14373 NAs.
El valor que presenta cada modelo es el porcentaje de votos (sobre 500) de que un objeto pertenezca a la clase SI debito.
Las métricas que tome fueron media, min, max, simes, y simes invertido (1-simes(1-pvals)), de los resultados de los 5 modelos (para cada objeto).
# leemos la base de datos
autos_res <- read.csv("~/mytmp/RentasIA/en_server/autos_salida.csv")
# vemos cuantos NA hay para cada uno de los modelos
colSums(is.na(autos_res[, grep("modelo_", colnames(autos_res))]))
modelo_1 modelo_2 modelo_3 modelo_4 modelo_5
14373 14372 14372 14372 14373
# summary de los modelos
summary(autos_res[, grep("modelo_", colnames(autos_res))])
modelo_1 modelo_2 modelo_3 modelo_4 modelo_5
Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000 Min. :0.000
1st Qu.:0.014 1st Qu.:0.014 1st Qu.:0.014 1st Qu.:0.014 1st Qu.:0.014
Median :0.044 Median :0.044 Median :0.044 Median :0.044 Median :0.044
Mean :0.136 Mean :0.134 Mean :0.133 Mean :0.134 Mean :0.133
3rd Qu.:0.148 3rd Qu.:0.144 3rd Qu.:0.142 3rd Qu.:0.148 3rd Qu.:0.140
Max. :1.000 Max. :0.998 Max. :1.000 Max. :1.000 Max. :1.000
NA's :14373 NA's :14372 NA's :14372 NA's :14372 NA's :14373
# summary de las metricas resumen
metricas_res <- autos_res[, -grep("ID|modelo_", colnames(autos_res))]
summary(metricas_res)
media min max simes inv_simes
Min. :0.0000 Min. :0.0000 Min. :0.000 Min. :0.00000 Min. :0.0000
1st Qu.:0.0184 1st Qu.:0.0060 1st Qu.:0.034 1st Qu.:0.02000 1st Qu.:0.0060
Median :0.0460 Median :0.0220 Median :0.076 Median :0.05667 Median :0.0220
Mean :0.1339 Mean :0.1034 Mean :0.170 Mean :0.15540 Mean :0.1038
3rd Qu.:0.1352 3rd Qu.:0.0900 3rd Qu.:0.200 3rd Qu.:0.17400 3rd Qu.:0.0900
Max. :0.9976 Max. :0.9920 Max. :1.000 Max. :1.00000 Max. :1.0000
# gráficos de densidad de las métricas
library("ggplot2")
Registered S3 method overwritten by 'dplyr':
method from
print.rowwise_df
library("reshape2")
res_metricas_melt <- melt(metricas_res)
No id variables; using all as measure variables
ggplot(res_metricas_melt) +
geom_density(aes(x = value, color = variable))
# boxplot de las métricas
ggplot(res_metricas_melt) +
geom_boxplot(aes(x = variable, y = value, color = variable))
# vemos en cuanto se agrupan dependiendo de los decimales de corte
do.call(rbind, lapply(2:5, function(dec) {
en_dec <- round(metricas_res, dec)
apply(en_dec, 2, function(x) length(unique(x)))
}))
media min max simes inv_simes
[1,] 101 100 101 101 101
[2,] 995 496 501 782 762
[3,] 3834 496 501 1014 987
[4,] 3834 496 501 1014 987
# vemos intersecciones de objetos dados distintos cortes
cuarts <- rev(seq(0, 1, 0.1))
inters <- do.call(rbind, lapply(cuarts, function(cuartil) {
cuartiles <- apply(metricas_res, 2, function(x) quantile(x, cuartil))
act_res <- t(t(metricas_res) >= cuartiles)
res <- rep(0, ncol(metricas_res) + 1)
names(res) <- 0:ncol(metricas_res)
prop_tb <- prop.table(table(rowSums(act_res)))
res[names(prop_tb)] <- prop_tb
round(res, 3)
}))
rownames(inters) <- cuarts
inters
0 1 2 3 4 5
1 1.000 0.000 0.000 0.000 0.000 0.000
0.9 0.888 0.002 0.010 0.009 0.002 0.089
0.8 0.789 0.004 0.007 0.007 0.002 0.191
0.7 0.660 0.020 0.022 0.014 0.014 0.270
0.6 0.531 0.033 0.038 0.025 0.024 0.349
0.5 0.417 0.037 0.049 0.031 0.028 0.438
0.4 0.315 0.032 0.049 0.036 0.033 0.535
0.3 0.224 0.025 0.045 0.033 0.030 0.643
0.2 0.131 0.027 0.019 0.043 0.019 0.761
0.1 0.000 0.000 0.000 0.087 0.018 0.896
0 0.000 0.000 0.000 0.000 0.000 1.000
# aplicando cada cuartil, vemos cuantos objetos son clasificados como SI debito
cuarts <- rev(seq(0, 1, 0.1))
medias_col <- do.call(rbind, lapply(cuarts, function(cuartil) {
cuartiles <- apply(metricas_res, 2, function(x) quantile(x, cuartil))
act_res <- t(t(metricas_res) >= cuartiles)
round(colMeans(act_res), 3)
}))
rownames(medias_col) <- cuarts
medias_col
media min max simes inv_simes
1 0.000 0.000 0.000 0.000 0.000
0.9 0.100 0.100 0.101 0.101 0.100
0.8 0.200 0.201 0.201 0.200 0.201
0.7 0.301 0.305 0.300 0.300 0.305
0.6 0.400 0.408 0.402 0.406 0.408
0.5 0.500 0.511 0.509 0.501 0.511
0.4 0.603 0.616 0.602 0.608 0.616
0.3 0.700 0.722 0.702 0.705 0.722
0.2 0.801 0.812 0.810 0.840 0.812
0.1 0.904 1.000 0.905 1.000 1.000
0 1.000 1.000 1.000 1.000 1.000