Escolar Documentos
Profissional Documentos
Cultura Documentos
Exercı́cio Computacional -
Classificação
24 de Abril de 2017
Questão 7
> #Calcula-se essa probabilidade através da Regra de Bayes.
>
> #Priori: Probabilidade que a empresa d^
e dividendo.
> p_k <- 0.8
> p_nk <- 0.2
> #Modelo para empresas que d~
ao dividendo:
> p_x_k <- dnorm(x = 4,mean = 10,sd = sqrt(36))
> #Modelo para empresas que n~
ao d~
ao dividendo:
> p_x_nk <- dnorm(x = 4,mean = 0,sd = sqrt(36))
> #Probabilidade a posteriori de que a empresa pertença ao grupo das que d~
ao dividendo
> p_k_x <- p_k*p_x_k
> #Probabilidade a posteriori de de que a empresa pertença ao grupo das que n~
ao d~
ao dividend
> p_nk_x <- p_nk*p_x_nk
> #Probabilidade da empresa dar dividendo:
> p_k_x/(p_k_x+p_nk_x)
[1] 0.7518525
> #0.7518525
Questão 11
Deseja-se construir um modelo baseado no dataset ”Auto”para dizer se um carro
é ou não é econômico.
a)
Primeiro, carrega-se os dados e criam-se as classes. Haverá duas classes: 1,
para carro econômico (variável ”mpg”maior que a mediana) e 0 para carro não-
econômico (variável ”mpg”menor que a mediana). Obtém-se um rótulo para
cada amostra do conjunto no vetor ”mpg01”e inclui-se no data frame.
b)
Analisando-se graficamente os dados, procura-se procurar relações entre a nova
variável ”mpg01”e as demais variáveis. Essa análise foi feita utilizando boxplots
e buscando as variáveis aparentemente mais significativas.
1
8
7
6
5
4
3
0 1
cylinders:
400
300
200
100
0 1
displacement:
2
weight:
horsepower:
1500 2000 2500 3000 3500 4000 4500 5000
0
0
3
1
1
25
20
15
10
0 1
acceleration:
82
80
78
76
74
72
70
0 1
year:
4
3.0
2.5
2.0
1.5
1.0
0 1
origin:
Alguma correlação foi encontrada para todas as variáveis numéricas, as mais
significativas sendo ”cylinders”, ”displacement”, ”horsepower”e ”weight”. Com
”origin”, nota-se que os carros não econômicos com origem 2 e 3 são outliers,
estando portanto a maioria dos carros não-econômicos na origem 1.
c)
Divide-se os dados em conjuntos de treino e teste. Utilizou-se 275 amostras para
treinamento (por volta de 70%) e o restante para teste.
> #Carregar dados
> itrain <- sample(1:dim(Auto)[1],size = 275)
> xtrain <- Auto[itrain,]
> xtest <- Auto[-itrain,]
d)
Utiliza-se Linear Discriminant Analysis (LDA) para prever ”mpg01”em função
das variáveis mais significantes encontradas, no caso, ”cylinders”, ”displace-
ment”, ”horsepower”, ”weight”e ”origin”. Mostra-se a matriz confusão do teste
e, em seguida, a porcentagem de erro.
> #Carregar dados
> lda_auto <- lda(mpg01 ~ cylinders + displacement + weight + horsepower + origin, data = xt
> y_hat <- as.numeric(predict(lda_auto,xtest)[[1]])-1
> table(y_hat,xtest$mpg01)
y_hat 0 1
0 53 3
1 10 51
5
> mean(y_hat != xtest$mpg01)*100
[1] 11.11111
e)
Utiliza-se Quadratic Discriminant Analysis (QDA) para prever ”mpg01”em fun-
ção das variáveis mais significantes encontradas, no caso, ”cylinders”, ”displace-
ment”, ”horsepower”, ”weight”e ”origin”. Mostra-se a matriz confusão do teste
e, em seguida, a porcentagem de erro.
y_hat 0 1
0 55 5
1 8 49
[1] 0.1111111
f)
Utiliza-se Regressão Logı́stica para prever ”mpg01”em função das variáveis mais
significantes encontradas, no caso, ”cylinders”, ”displacement”, ”horsepower”,
”weight”e ”origin”. Mostra-se a matriz confusão do teste e, em seguida, a por-
centagem de erro.
y_hat 0 1
0 55 5
1 8 49
[1] 0.1111111
6
g)
Utiliza-se K-Nearest Nodes (KNN), com todos os valores ı́mpares de K entre 1 e
99, para prever ”mpg01”em função das variáveis mais significantes encontradas,
no caso, ”cylinders”, ”displacement”, ”horsepower”, ”weight”e ”origin”. Mostra-se
a porcentagem de erro para cada K ı́mpar entre 1 e 29 e, em seguida, o valor do
melhor K encontrado seguido do erro obtido por ele.
> 2*(which.min(errk))-1
[1] 25
> min(errk)
[1] 0.1025641