Beta
Table of Contents
The outline of your notebook will show up here. You can include headings in any text cell by starting a line with #
, ##
, ###
, etc., depending on the desired title hierarchy.
########## LABORATORIO 8 - H0738 ##########
######### MARKO TALLEDO - 20162271
# Leemos las librerias necesarias para el estudio
library(tidyverse)
library(dplyr)
library(ggplot2)
library(stats)
library(e1071)
# Importamos el dataset de este laboratorio
admision_data = read.csv('Admission_Predict_Ver1.1.csv')
head(admision_data)
# Vemos si existen nulos dentro del dataset
colSums(is.na(admision_data))
# No existen datos nulos en la base de datos
# Seteamos un seed aleatorio
set.seed(20162271)
# Separamos la variable que no es atribuible a las caracteristicas que determinan si un estudiante es apto o no para ser admitido en la UCLA
admision_data = admision_data[,-1]
# Creamos las variables para el arbol de clasificación
admision_data['Cat_admit'] = cut(admision_data$Chance.of.Admit, breaks = c(0,0.7,0.8,0.9,1),labels = c(4,3,2,1))
# Separamos el dataframe en train (70%) y test (30%)
ind <- sample(2, nrow(admision_data), replace = TRUE, prob=c(0.7,0.3))
# Si el ind==1 entonces pertenece a train
train_ad <- admision_data[ind==1,]
# Si el ind==2 entonces pertenece a test
test_ad <- admision_data[ind==2,]
head(admision_data)
########################################
######### ÁRBOL DE REGRESIÓN #########
########################################
train_ad_reg = train_ad[,-9]
test_ad_reg = test_ad[,-9]
# Libreria para llamar al arbol de regression
library(rpart)
myFormula <- Chance.of.Admit ~ .
admin_rpart <- rpart(myFormula, data = train_ad_reg ,control = rpart.control(minsplit=10))
# Mostramos el arbol
print(admin_rpart)
# ploteamos el arbol
plot(admin_rpart)
text(admin_rpart, use.n = T)
# Optimizamos los valores del modelo de arbol donde se minimiza el error
opt <- which.min(admin_rpart$cptable[,"xerror"])
cp<- admin_rpart$cptable[opt,"CP"]
admin_rpart_prune <- prune(admin_rpart, cp=cp)
# Se muestran las caracteristicas del arbol
print(admin_rpart_prune)
# Ploteamos el arbol optimizado
plot(admin_rpart_prune)
text(admin_rpart_prune, use.n = T)
# Predecimos con data nueva
admin_pred <- predict(admin_rpart_prune, newdata= test_ad_reg)
xlim <- range(admision_data$Chance.of.Admit)
plot(admin_pred ~ Chance.of.Admit, data=test_ad_reg, xlab="Observed", ylab="Predicted",
ylim=xlim, xlim=xlim)
abline(a=0, b=1)
# Tasa de error
mean((admin_pred - test_ad_reg$Chance.of.Admit)*2)*(1/2)
########################################
######### ÁRBOL DE CLASIFICACION #######
########################################
# Paquete para llamar al árbol de clasificación
#install.packages("party")
library(party)
# sEPARAMOS LA DATA PARA EL ARBOL DE CLASIFICACION
train_ad_cla = train_ad[,-8]
test_ad_cla = test_ad[,-8]