Escolar Documentos
Profissional Documentos
Cultura Documentos
Pelo Grfico 3 abaixo temos o ponto de corte ideal que ser utilizado:
Assim , considerando-se um intervalo de 0 a 1 com espaamento de 0.1, sero
calculados todos os valores do MCC associados ao grid especificado. O grfico acima
elucida a situao descrita. Portanto, o ponto de corte que maximiza o coeficiente de
correlao de Mathews , cujo maior valor foi de 0.6459, 0.5.
Bagging
Nesse tpico o intuito era de se gerar 25 reamostras do conjunto de dados de
treinamento por intermdio do mtodo Bootstrap. Assim, para cada umas dessas
reamostras, um modelo de rvore de deciso seria construdo e os escores preditivos das
probabilidades de falncia seriam calculados. Posto isso, uma vez calculada a ltima
quantidade mencionada, ela teria uma combinao dos escores advindos dos 25
modelos combinados por meio da mdia. Aplicado tal procedimento, o prximo passo
residiria na utilizao do mtodo da combinao via voto majoritrio, em que o ponto
de corte utilizado seria aquela descrito na parte 3 supramencionada (ponto de corte =
0.5). Com isso, considerando-se 25 modelos, ento, se 13 deles classificarem a empresa
com determinada caracterstica, admitir-se- que a mesma provida dessa classificao.
O pargrafo acima foi escrito de modo hipottico uma vez que no foi possvel
calcular os escores preditivos de cada reamostra. Porm, a programao foi
desenvolvida para se adequar ao objetivo proposto e segue no presente relatrio.
6. Concluso
Em teoria a metodologia Bagging aparenta ser bastante proveitosa no sentido
classificatrio das observaes visto que elas nos fornece uma ponderao de modelos a
qual nos traz o mais preciso.
7. Referncias Bibliogrficas
Viola, M.L.L. - Notas de Aula de Minerao de Dados.
Help do R.
8. Comandos Utilizados
dados<-read.table(file.choose())
dados
dados<-dados[,-1]
attach(dados)
dados<-
data.frame(V2,V3,V4,V5,V6,V7,V8,V10,V9,
V12,V11)
names(dados)<-
c("X1","X2","X3","X4","X5","X6","X7","X8",
"X9","X10","X11") # X11 a varivel
resposta
attach(dados)
X9<-factor(X9)
X11<-factor(X11)
dados[,9]<-X9
dados[,11]<-X11
dados
n<-length(dados[,1])
n.am<-round(0.7*n) # Tamanho
da amostra de treinamento
# Primeiramente, ser feita uma
aleatorizao a fim de se evitar qualquer
tipo de tendncia presente nos dados.
sort.fun<-sample(1:n,n.am) #
Aleatorizao
am.fun<-dados[sort.fun,] #
Amostra de treinamento
attach(am.fun)
# Parte 1 - Anlise descritiva das
variveis qualitativas
pie(c(0.48,0.52), labels = c("No
Falidas - 48%","Falidas - 52%"), #Falncia
(X11)
col=c("blue","red"),main="Situao das
Empresas")
pie(c(6/678,383/678,1-(389/678)),
labels = c("Pequenas - 0.9%",
"Mdias - 56.5%","Grandes -
42.6%"),col=c("red","blue","green4"), #
Categorias dos funcionrios (X9)
main="Categorias dos
Funcionrios")
am.test<-dados[-sort.fun,] #
Amostra do teste
=============================
==========================
#Parte 2 do trabalho - Construo
da rvore de deciso
=============================
==========================
library(rpart)
arvore<-
rpart(X11~X1+X2+X3+X4+X5+X6+X7+X8+X9
+X10,data=am.fun)
plot(arvore)
text(arvore)
plot(arvore,uniform=T,branch=0)
text(arvore,digits=3,cex=0.65,font=
10,pretty=0,fancy=T,fwidth=0,fheight=0)
predict(arvore,am.fun,type="class"
)
=============================
==========================
#Parte 3 do trabalho - Clculo do
ponto de corte ideal
=============================
==========================
rm(X11)
attach(am.fun)
X11<-as.numeric(X11)
for(i in 1:length(X11)) X11[i]<-
if(X11[i]==2){X11[i]=1} else
if(X11[i]==1){X11[i]=0}
X11
MCC<-function(reais,grid){probss<-
predict(arvore,am.fun)[,2]
pred<-NULL
for(i in
1:length(reais))pred[i]<-
if(probss[i]>=grid){pred[i]=1} else
if(probss[i]<grid){pred[i]=0}
n<-length(reais)
a<-sum(reais==1 &
pred==1)
b<-sum(reais==1 &
pred==0)
c<-sum(reais==0 &
pred==1)
d<-sum(reais==0 &
pred==0)
(a-
(n*((a+b)/n)*((a+c)/n)))/sqrt(((a+b)-
(n*((a+b)/n)^2))*((a+c)-n*((a+c)/n)^2))}
MCC.grid<-NULL
grid<-seq(0,1,by=0.1)
for (i in 1:length(grid))MCC.grid[i]<-
MCC(X11,grid[i])
MCC.grid
for (i in 1:length(grid))MCC.grid[i]<-
if(is.nan(MCC.grid[i])==TRUE){MCC.grid[i]=
0}else
if(is.nan(MCC.grid[i])==FALSE){MCC.grid[i]=
MCC.grid[i]}
MCC.grid
plot(grid,MCC.grid,type="b",xlab="
Pontos de Corte",ylab="Coeficiente de
Correlao de Mathews",main="Definio
do Ponto de Corte")
abline(h=max(MCC.grid),lwd=2,col
="red")
text(0.1,0.630,"MCC")
text(0.1,0.610,"Mximo")
arrows(x0=c(0.4,0.5,0.6),y0=rep(m
ax(MCC.grid),3),x1=rep(0.5,3),y1=rep(0.5,3
),lwd=2,col="green4")
text(0.92,0.630,"0.6459")
text(0.5,0.48,"Mdia = 0.5")
max(MCC.grid)
=============================
=====
# Parte 4 do trabalho - Bagging
# Ponto de corte = 0.5
=============================
=====
X11<-factor(X11,levels=c(0,1))
X11r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X11r[,i]<-
sample(X11,replace=TRUE)
X11r
X1r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X1r[,i]<-
sample(X1,replace=TRUE)
X1r
X2r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X2r[,i]<-
sample(X2,replace=TRUE)
X2r
X3r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X3r[,i]<-
sample(X3,replace=TRUE)
X3r
X4r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X4r[,i]<-
sample(X4,replace=TRUE)
X4r
X5r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X5r[,i]<-
sample(X5,replace=TRUE)
X5r
X6r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X6r[,i]<-
sample(X6,replace=TRUE)
X6r
X7r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X7r[i,]<-
sample(X7,replace=TRUE)
X7r
X8r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X8r[,i]<-
sample(X8,replace=TRUE)
X8r
rm(X9)
attach(X9)
X9r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X9r[,i]<-
sample(X9,replace=TRUE)
X9r
X10r<-
matrix(rep(0,678*25),nrow=678,ncol=25)
for(i in 1:25) X10r[,i]<-
sample(X10,replace=TRUE)
X10r
arvore1<-
rpart(X11r[,1]~X1r[,1]+X2r[,1]+X3r[,1]+X4r[
,1]+X5r[,1]+X6r[,1]+X7r[,1]+X8r[,1]+X9r[,1]
+X10r[,1])
arvore2<-
rpart(X11r[,2]~X1r[,2]+X2r[,2]+X3r[,2]+X4r[
,2]+X5r[,2]+X6r[,2]+X7r[,2]+X8r[,2]+X9r[,2]
+X10r[,2])
arvore3<-
rpart(X11r[,3]~X1r[,3]+X2r[,3]+X3r[,3]+X4r[
,3]+X5r[,3]+X6r[,3]+X7r[,3]+X8r[,3]+X9r[,3]
+X10r[,3])
arvore4<-
rpart(X11r[,4]~X1r[,4]+X2r[,4]+X3r[,4]+X4r[
,4]+X5r[,4]+X6r[,4]+X7r[,4]+X8r[,4]+X9r[,4]
+X10r[,4])
arvore5<-
rpart(X11r[,5]~X1r[,5]+X2r[,5]+X3r[,5]+X4r[
,5]+X5r[,5]+X6r[,5]+X7r[,5]+X8r[,5]+X9r[,5]
+X10r[,5])
arvore6<-
rpart(X11r[,6]~X1r[,6]+X2r[,6]+X3r[,6]+X4r[
,6]+X5r[,6]+X6r[,6]+X7r[,6]+X8r[,6]+X9r[,6]
+X10r[,6])
arvore7<-
rpart(X11r[,7]~X1r[,7]+X2r[,7]+X3r[,7]+X4r[
,7]+X5r[,7]+X6r[,7]+X7r[,7]+X8r[,7]+X9r[,7]
+X10r[,7])
arvore8<-
rpart(X11r[,8]~X1r[,8]+X2r[,8]+X3r[,8]+X4r[
,8]+X5r[,8]+X6r[,8]+X7r[,8]+X8r[,8]+X9r[,8]
+X10r[,8])
arvore9<-
rpart(X11r[,9]~X1r[,9]+X2r[,9]+X3r[,9]+X4r[
,9]+X5r[,9]+X6r[,9]+X7r[,9]+X8r[,9]+X9r[,9]
+X10r[,9])
arvore10<-
rpart(X11r[,10]~X1r[,10]+X2r[,10]+X3r[,10]
+X4r[,10]+X5r[,10]+X6r[,10]+X7r[,10]+X8r[,
10]+X9r[,10]+X10r[,10])
arvore11<-
rpart(X11r[,11]~X1r[,11]+X2r[,11]+X3r[,11]
+X4r[,11]+X5r[,11]+X6r[,11]+X7r[,11]+X8r[,
11]+X9r[,11]+X10r[,11])
arvore12<-
rpart(X11r[,12]~X1r[,12]+X2r[,12]+X3r[,12]
+X4r[,12]+X5r[,12]+X6r[,12]+X7r[,12]+X8r[,
12]+X9r[,12]+X10r[,12])
arvore13<-
rpart(X11r[,13]~X1r[,13]+X2r[,13]+X3r[,13]
+X4r[,13]+X5r[,13]+X6r[,13]+X7r[,13]+X8r[,
13]+X9r[,13]+X10r[,13])
arvore14<-
rpart(X11r[,14]~X1r[,14]+X2r[,14]+X3r[,14]
+X4r[,14]+X5r[,14]+X6r[,14]+X7r[,14]+X8r[,
14]+X9r[,14]+X10r[,14])
arvore15<-
rpart(X11r[,15]~X1r[,15]+X2r[,15]+X3r[,15]
+X4r[,15]+X5r[,15]+X6r[,15]+X7r[,15]+X8r[,
15]+X9r[,15]+X10r[,15])
arvore16<-
rpart(X11r[,16]~X1r[,16]+X2r[,16]+X3r[,16]
+X4r[,16]+X5r[,16]+X6r[,16]+X7r[,16]+X8r[,
16]+X9r[,16]+X10r[,16])
arvore17<-
rpart(X11r[,17]~X1r[,17]+X2r[,17]+X3r[,17]
+X4r[,17]+X5r[,17]+X6r[,17]+X7r[,17]+X8r[,
17]+X9r[,17]+X10r[,17])
arvore18<-
rpart(X11r[,18]~X1r[,18]+X2r[,18]+X3r[,18]
+X4r[,18]+X5r[,18]+X6r[,18]+X7r[,18]+X8r[,
18]+X9r[,18]+X10r[,18])
arvore19<-
rpart(X11r[,19]~X1r[,19]+X2r[,19]+X3r[,19]
+X4r[,19]+X5r[,19]+X6r[,19]+X7r[,19]+X8r[,
19]+X9r[,19]+X10r[,19])
arvore20<-
rpart(X11r[,20]~X1r[,20]+X2r[,20]+X3r[,20]
+X4r[,20]+X5r[,20]+X6r[,20]+X7r[,20]+X8r[,
20]+X9r[,20]+X10r[,20])
arvore21<-
rpart(X11r[,21]~X1r[,21]+X2r[,21]+X3r[,21]
+X4r[,21]+X5r[,21]+X6r[,21]+X7r[,21]+X8r[,
21]+X9r[,21]+X10r[,21])
arvore22<-
rpart(X11r[,22]~X1r[,22]+X2r[,22]+X3r[,22]
+X4r[,22]+X5r[,22]+X6r[,22]+X7r[,22]+X8r[,
22]+X9r[,22]+X10r[,22])
arvore23<-
rpart(X11r[,23]~X1r[,23]+X2r[,23]+X3r[,23]
+X4r[,23]+X5r[,23]+X6r[,23]+X7r[,23]+X8r[,
23]+X9r[,23]+X10r[,23])
arvore24<-
rpart(X11r[,24]~X1r[,24]+X2r[,24]+X3r[,24]
+X4r[,24]+X5r[,24]+X6r[,24]+X7r[,24]+X8r[,
24]+X9r[,24]+X10r[,24])
arvore25<-
rpart(X11r[,25]~X1r[,25]+X2r[,25]+X3r[,25]
+X4r[,25]+X5r[,25]+X6r[,25]+X7r[,25]+X8r[,
25]+X9r[,25]+X10r[,25])
#Amostras teste
rm(X11)
attach(am.test)
X11e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X11e[,i]<-
sample(X11,replace=TRUE)
X11e
X1e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X1e[,i]<-
sample(X1,replace=TRUE)
X1e
X2e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X2e[,i]<-
sample(X2,replace=TRUE)
X2e
X3e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X3e[,i]<-
sample(X3,replace=TRUE)
X3e
X4e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X4e[,i]<-
sample(X4,replace=TRUE)
X4e
X5e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X5e[,i]<-
sample(X5,replace=TRUE)
X5e
X6e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X6e[,i]<-
sample(X6,replace=TRUE)
X6e
X7e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X7e[,i]<-
sample(X7,replace=TRUE)
X7e
X8e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X8e[,i]<-
sample(X8,replace=TRUE)
X8e
X9e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X9e[,i]<-
sample(X9,replace=TRUE)
X9e
X10e<-
matrix(rep(0,291*25),nrow=291,ncol=25)
for(i in 1:25) X10e[,i]<-
sample(X10,replace=TRUE)
X10e
rm1t<-
data.frame(X11r[,1],X1r[,1],X2r[,1],X3r[,1],
X4r[,1],X5r[,1],X6r[,1],X7r[,1],X8r[,1],X9r[,1]
,X10r[,1])
am1t<-
data.frame(X11e[,1],X1e[,1],X2e[,1],X3e[,1]
,X4e[,1],X5e[,1],X6e[,1],X7e[,1],X8e[,1],X9e
[,1],X10e[,1])
names(rm1t)<-
c("X11","X1","X2","X3","X4","X5","X6","X7"
,"X8","X9","X10")
names(am1t)<-
c("X11","X1","X2","X3","X4","X5","X6","X7"
,"X8","X9","X10")
#Escores
esc1<-predict(arvore1,am1t)
##### Problema