Escolar Documentos
Profissional Documentos
Cultura Documentos
Lista de Exerccios
Ateno: Todos os scripts utilizados a partir do exerccio 3 devem ser enviados juntamente
com os grficos gerados e as respostas s perguntas discursivas.
Exerccio 1
Instale o MySQL em sua mquina virtual Windows Server R2 2012 e configure a porta 3306
para acesso externo. No esquea de modificar as regras do firewall. Rode o script dump.sql,
que se encontra na pasta Nuvem do Dropbox do curso. Este script cria uma base chamada
data_mining que possui trs tabelas: wine, cells e votes.
Exerccio 2
Crie um usurio para a sua base, com o nome e a senha que desejar. Este usurio deve ter a
permisso para rodar consultas do tipo SELECT na base data_mining.
Voc pode criar novos usurios selecionando Users and Privileges no Navigator. Clique no
boto Add Accounts e defina o nome de usurio e a senha na tab Login. Mantenha a opo
Limits to Host Matching com o valor padro. Para restringir as permisses do usurio, acesse a
tab Schema Privileges e, ento, clique em Add Entry. No painel que aparece, selecione a base
data_mining e clique em OK. Finalmente, selecione SELECT na lista de comandos a serem
permitidos e clique em Apply.
Exerccio 3
Lembre-se de que, antes, voc precisa instalar o pacote RMySQL (consulte o material de
Gerenciamento de Dados com o SQL). O parmetro hostname da funo dbConnect deve
ser o nome DNS fornecido pelo Azure para os servidores de sua mquina virtual. Voc pode
encontr-lo na seo Viso Geral do painel de sua mquina no portal Azure.
Ateno: Durante os exerccios talvez seja necessrio reconectar-se base, pois a mquina
virtual corta as conexes de tempos em tempos, por razes de segurana.
Exerccio 4
Carregue as tabelas wine, cells e votes para o R, no seu computador. Por exemplo, para obter
a tabela wine, voc deve fazer:
votes[votes == ""] = NA
A tabela votes precisar de um processamento adicional: cada coluna deve ser convertida
para o tipo factor,para que voc possa montar uma rvore de deciso com ela. Podemos
fazer isso usando o comando lapply, que aplica uma determinada funo (no caso, a de
converso) a cada coluna de um data.frame ou de uma matriz e devolve uma lista na qual
cada elemento o resultado da aplicao desta funo. Como queremos um data.frame,
convertemos a lista no final. Para isso, rode os seguintes comandos aninhados:
Exerccio 5
Exerccio 6
a) Crie e exiba uma rvore de deciso da tabela wine (completa). Voc no precisar
dividir esta tabela em amostras, porque usaremos a rvore apenas para fazer extrao
de caractersticas.
b) Baseando-se na rvore de deciso, quais so os dois componentes qumicos que voc
acredita que podem definir, sozinhos, a classe dos vinhos?
c) Crie um grfico de disperso de um destes componentes contra o outro, colorindo os
pontos de acordo com suas classes. O grfico confirma sua resposta do item b? Se
achar que no, visualize todas as possveis combinaes de grficos de disperso entre
os componentes e escolha uma nova combinao que parea definir melhor as classes.
Exerccio 7
Imagine que o nome do objeto retornado pela funo kmeans tenha o nome de
wine.kmeans. Ento, suponha que o vetor wine.kmeans$cluster seja
[1] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 3 3 3 2 2 2 2 3 2 3
[30] 3 3 3 2 3 2 3 3 2 2 3 3 3 3 3 3 3 3 3 3 1 3 3 3 3 3 3 3 3
[59] 3 2 2 3 2 3 2 3 3 3 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 3 2 2 2
[88] 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[117] 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 3 3 3 3 1 2 3 3 3 2 3 2 2 1
[146] 2 3 1 1 1 1 1 3 1 1 1 1 1 1 1 1 3 3 3 1 3 1 1 1 1 3 1 1 1
[175] 1 1 1 1
Suponha que o subconjunto da tabela wine com o qual voc est trabalhando esteja
armazenado na varivel subwine. Ento, faa
wine.kmeans$cluster = factor(wine.kmeans$cluster)
levels(wine.kmeans$cluster) = c(3,2,1)
wine.kmeans$cluster = as.vector(wine.kmeans$cluster)
[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 2 2 2 2 1 2 1
[30] 1 1 1 2 1 2 1 1 2 2 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1
[59] 1 2 2 1 2 1 2 1 1 1 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 1 2 2 2
[88] 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
[117] 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 1 1 1 1 3 2 1 1 1 2 1 2 2 3
[146] 2 1 3 3 3 3 3 1 3 3 3 3 3 3 3 3 1 1 1 3 1 3 3 3 3 1 3 3 3
[175] 3 3 3 3
Exerccio 8
Antes de comear este exerccio, instale o pacote fpc no R. Voc pode fazer isso rodando
comando install.packages("fpc").
a) Defina um novo subconjunto da tabela wine, formado apenas pelas colunas alcohol
e od280. Normalize cada uma dessas colunas, isto , faa com que o valor mximo
da coluna seja 1, o valor mnimo seja 0 e os outros valores variem de acordo com esta
nova escala.
Para calcular as distncias entre todas as linhas de uma matriz ou data.frame, voc pode
empregar a funo dists, disponvel no pacote stats, padro do R.
dists = c(dist(subwine))
A funo de concatenao, c(), serve apenas para extrair o campo de interesse do objeto
retornado por dist, que contm mais informao do que as que precisamos.
d) Faa dois grficos de disperso de uma coluna contra a outra, exibindo-os no mesmo
painel. Em um dos grficos, os pontos devem ser coloridos de acordo com as classes
verdadeiras. No outro, as cores devem ser definidas de acordo com o resultado do
algoritmo. Voc consegue identificar os pontos noise facilmente? Voc acredita que o
algoritmo descobriu novas classes de vinho ou deixou de identificar alguma classe j
estabelecida?
Exerccio 9
Antes de comear este exerccio, instale o pacote e1071 no R. Voc pode fazer isso rodando
comando install.packages("e1071").
b) A partir do custo encontrado no item anterior, use a funo svm do mesmo pacote
para encontrar os vetores suporte da amostra de treinamento (mais uma vez, use um
kernel linear e faa scale = F). Quantos vetores suporte foram encontrados? Voc
considera esse nmero alto ou baixo? Por qu?
c) Utilizando o objeto retornado pela funo svm, crie um grfico que mostre como o
espao de dados ficou dividido pelos vetores suporte. Qual elemento grfico
representa os vetores suporte? Voc percebe algo de especial na localizao destes
vetores?
Embaralhe as linhas da tabela cell e separe-as em duas amostras, de modo que a amostra de
treinamento contenha 75% dos valores originais e a amostra de teste, 25%. Armazene a coluna
class de cada uma em vetores separados e remova-as das tabelas de teste e treinamento.
Utilizando um loop (for ou while), busque o melhor valor de k para classificar os valores
do conjunto de teste atravs do algoritmo K-Nearest Neighbors (implementado pela funo
knn, padro do R) aplicado ao conjunto de treinamento. O critrio para a escolha de k dever
ser a porcentagem de acerto e k dever ser variado de 1 a 20.
Responda: