Академический Документы
Профессиональный Документы
Культура Документы
Tarea N° 2
Específicamente, se requiere:
2. Particionar los datos en 70% para entrenamiento del modelo y 30% para
prueba. Hacerlo aleatoriamente, utilizando la función sample. (10
puntos)
ix<-sample(nrow(datos),size=round(.7*nrow(datos)),replace = FALSE)
TRAIN<-datos[ix,]
TEST<-datos[-ix,]
names(datos)
nombres<-names(datos)[-20]
3. Identifique las 10 variables que producen el modelo de regresión
logística con menor error de predicción. Incluya para cada modelo una
búsqueda del umbral que produce el menor error de predicción. Utilice
los datos de entrenamiento para ajustar el modelo y datos de prueba
para evaluar su desempeño. (50 puntos)
selected<-character()
resultados<-data.frame()
remaining=names(datos)[-20]
current_score<-0.0
best_new_score<-0.0
while (length(selected)<=10 & best_new_score==current_score){
scores_with_candidates<-data.frame()
for (candidate in remaining){
formula.definida<-as.formula(paste0("Churn ~", paste(c(selected, candidate),
collapse=" + ")))
#MOSTRAR CON FORMULA DEFINIDA
tempo<-glm(formula.definida,data=TRAIN,family="binomial")
prediccion<-predict(tempo, newdata=TEST)
prediccion<-1/(1+exp(-prediccion))
temp.theta<-seq(0.1, 0.9, 0.01)
y<-NULL
for (t in 1:length(temp.theta)){
temp.confusion<-table(TEST$Churn, ifelse(prediccion>temp.theta[t],1,0))
y[t] <-sum(diag(temp.confusion))/sum(temp.confusion)
}
#DATOS CONFUSION
precision<-max(y)
#DATOS PRECISION
scores_with_candidates<-rbind(scores_with_candidates,
data.frame("candidate"=candidate, "precision"=precision))
}
best_new_score<-max(scores_with_candidates$precision)
best_candidate<-
scores_with_candidates[which(scores_with_candidates$precision==best_new_score),1]
if (current_score<best_new_score){
selected<-c(selected,as.character(best_candidate))
remaining<-remaining[-which(remaining==best_candidate)]
current_score<-best_new_score
resultados<-rbind(resultados, data.frame("precicion"=best_new_score,
"variables"=paste(selected, collapse=" + ")))
print(paste(selected, collapse=" + "))
}
}
resultados
4. Presente el modelo encontrado en el literal anterior, junto con su matriz
de confusión (utilizando datos de prueba). (10 puntos)
confusion
De los resultados mostrados se obtuvo que 305clientes cayeron en error tipo 1, esto
quiere decir que: los clientes desertaron y el modelo mostró no. Los que cayeron en
error tipo 2 fueron 120 clientes, lo cual muestra que no desertaron aunque el modelo
mostró que sí.