Академический Документы
Профессиональный Документы
Культура Документы
Utilizando Linguagem R
André L. Floriano1 , Celso A. A. Kaestner1
1
Programa de Pós-Graduação em Computação Aplicada
Universidade Tecnológica Federal do Paraná (UTFPR)
Av. Sete de Setembro, 3165 – Rebouças – 80230-901 – Curitiba – PR – Brasil
floriano andre@hotmail.com, celsokaestner@utfpr.edu.br
1. Objetivo
1.1. Objetivo Geral
Realizar experimentos de Mineração de Dados em um conjunto de dados utilizando
linguagem R[Hothorn and Everitt 2014], afim de analisar e comparar Algoritmos de
Classificação, Regras de Associação e Agrupamento.
Página 2
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Onde, tae é o nome dado ao conjunto de dados, no qual irá receber as informação
do comando read.csv. Para este experimento o conjunto de dados encontra no caminho
especificado como C:/User/Andre/Desktop/tae.csv. O Sep o caractere separador dos
dados, para este experimento é usado o ponto e virgula. O Header nesse exemplo não
aparece no comando, mas o seu valor é padrão como TRUE, o que indica a primeira linha
do arquivo como nomes das colunas.
> names(tae)
[1] ”N ative.English” ”Course.Instructor” ”Course”
[5] ”Semester” ”Class.Size” ”Class.Attribute”
Página 3
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> str(tae)
0
data.frame0 : 151 obs. of 6 variables:
$Native.English : int 1 2 1 1 2 2 2 2 1 2 ...
$Course.Instructor: int 23 15 23 5 7 23 9 10 22 15 ...
$Course : int 3 3 3 2 11 3 5 3 3 3 ...
$Semester : int 1 1 2 2 2 1 2 2 1 1 ...
$Class.Size : int 19 17 49 33 55 20 19 27 58 20 ...
$Class.Attribute : Factor w/ 3 levels ”High”,”Low”,”Medium”: 1 1 1 1 1 1 1 1 1 1 ...
O comando attributes() acessa os atributos do conjunto de dados. Esse comando
retorna uma lista dos atributos. Na sequencia é apresento o resultado do comando attri-
butes() aplicado no conjunto de dados TAE.
> attributes(tae)
$names
[1] ”Native.English” ”Course.Instructor” ”Course” ”Semester”
[5] ”Class.Size” ”Class.Attribute”
$class
[1] ”data.frame”
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
[32] 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
[59] 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
[85] 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 4124 125 126 127
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
[146] 146 147 148 149 150 151
Página 4
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> head(tae)
Native.English Course.Instructor Course Semester Class.Size Class.Attribute
1 1 23 3 1 19 High
2 2 15 3 1 17 High
3 1 23 3 2 49 High
4 1 5 2 2 33 High
5 2 7 11 2 55 High
6 2 23 3 1 20 High
> tail(tae))
Native.English Course.Instructor Course Semester Class.Size Class.Attribute
146 2 23 3 2 24 Low
147 2 3 2 2 26 Low
148 2 10 3 2 12 Low
149 1 18 7 2 48 Low
150 2 22 1 2 51 Low
151 2 2 10 2 27 Low
Página 5
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> quantile(tae$Course.Instructor)
0% 25% 50% 75% 100%
1 8 13 20 25
Página 6
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> table(tae$Class.Attribute)
High Low Medium
52 49 50
A função pie() combinado com a função table(), produz um gráfico de pizza mos-
trando a quantidade de cada valor de a ver calculado. O resultado dessas função no con-
junto de dados TAE é gráfico apresentado na Figura 3.
> pie(table(tae$Class.Attribute))
Página 7
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> cor(tae[, 2 : 3]
Course.Instructor Course
Course.Instructor 1.00000 -0.23601
Course -0.23601 1.00000
Página 8
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 9
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
A função jitter() (Figura 7) apresenta os ruı́dos dos dados antes de gerar o gráfico.
> plot(jitter(tae$Course.Instructor), jitter(tae$Course)
Página 10
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> library(rlg)
> plot3d(tae$N ative.English, tae$Course.Instructor, tae$Course)
> library(lattice))
> levelplot(Course ∼ Course.Instructor ∗ Class.Size, tae, cuts = 9,
col.regions = grey.colors(10)[10 : 1])
Página 11
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> library(lattice)
> parallelplot(∼ tae[2 : 3]|Class.Attribute, data = tae)
> library(ggplot2)
> qplot(N ative.English, Course.Instructor, data = tae,
f acet = Class.Attribute ∼ .)
Página 12
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
5. Classificação
Classificação é uma das subáres que fazem parte da Mineração de Dados. A tarefa de
classificação é considerada a mais importante e popular dentro da Mineração de Dados
[Scoss 2006]. As técnicas de Classificação consistem basicamente, em buscar por uma
função que permita rotular cada registro de um conjunto de dados em uma única classe,
dentre de um conjunto de classes, ou seja, mapear um item de dados em uma das varias
classes de predição de um conjunto de dados [Srivastava et al. 2000].
A ideia da Classificação é colocar um objeto em uma classe ou categoria, baseada
nas caracterı́sticas e critérios de avaliação deste objeto [Romero et al. 2010].
A definição da tarefa de classificação é uma forma de analisar e extrair modelos,
descrevendo e distinguindo classes de dados ou conceitos importantes em um conjunto de
dados. Esses modelos são chamados de classificadores, os quais tem função de predizer
categorias de rótulos de classes, cuja essas classes são desconhecidas [Han et al. 2012].
A classificação de dados pode ser usada para descobrir pedido fraudulentos de
seguros; fazer escala de riscos de linha de credito, identificar classes de paciente ou tipo
de tratamento a pacientes; analisar desempenho de docentes [Scoss 2006]; predizer alunos
com perfil de evasão escolar [Junior et al. 2013]; entre outras áreas.
O processo de classificação pode ser dividido em duas etapas: treinamento, co-
nhecida como aprendizado e teste [Costa et al. 2013].
Na etapa de treinamento é usado um conjunto de dados denominados amostra-
gem, associados a suas classes para criar um modelo que será utilizado na construção do
classificador [Junior et al. 2013]. Na etapa de teste, consiste de um conjunto de amostras
cujas classes são ocultadas e precisam ser preditas a partir do modelo [Costa et al. 2013].
O processo de Classificação é ilustrado na figura, onde a entrada é um conjunto
de dados de treinamento (classes conhecidas), formando o modelo de aprendizagem, que
em seguida é testado pelo conjunto de teste [Costa et al. 2013].
Página 13
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Nesta seção será apresentada a construção de uma árvore de decisão para a base de da-
dos TAE. Para esse experimento foi utilizado o pacote party do R [Hothorn et al. 2014].
O núcleo do pacote é a função ctree() [Hothorn et al. 2015], uma aplicação de arvores
de inferência condicional que incorporam modelos de regressão com estrutura de árvore
em uma teoria bem definida de procedimento de inferência condicional. Esse modelo
pode ser aplicado a todos os tipos de problemas de regressão, incluindo nominal, ordinal,
numérico, censurado, bem como as variáveis de resposta múltiplas e escalas de medição
arbitrarias das co-variaveis[Hothorn et al. 2014].
Para o experimento foi aplicado uma divisão na base de dados formando dois
subconjuntos, um com 70% da base destinado ao treinamento (trainData) e um segundo
subconjunto com 30% esse destinado para o teste(testData). Em seguida para a construção
da árvore é carregado o pacote party [Hothorn et al. 2014].
O próximo passo foi definir uma formula a qual será utilizada na função ctree().
Nesse casso o nome da formula é myFormula, a qual consta as definições das classe
que estão no atributo Class.Attribute da base de dados TAE sendo essa a variável alvo
e seguindo por todas as outras variáveis da base as quais são variáveis independentes
[Zhao 2014].
Página 14
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> # Divisão do conjunto de dados TAE para dois subconjuntos treinamento e teste
> set.seed(1234)
> ind < −sample(2, nrow(tae), replace = T RU E, prob = c(0.7, 0.3))
> trainData < −[ind == 1, ]
> testData < −[ind == 2, ]
> # Carregando o pacote party
> library(party)
> # Definição da formula
> myF ormula < −Class.Attribute ∼ N ative.English + Course.Instructor
+Course + Semester + Class.Size
> # Criação da variável para receber dados da função ctree
> tae ctree < −ctree(myF ormula, data = trainData)
> # Matriz de Confusão
> table(predict(tae ctree), trainData$Class.Attribute)
Com a função plot() é possı́vel desenhar a árvore gerado da função ctree() (Fi-
gura 17).
> plot(tae ctree)
Com a função plot também é possivel desenhar a árvore gerado da função ctree()
com estilo simples (Figura 18).
> plot(tae ctree, type=”simple”)
Página 15
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 16
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 17
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 18
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> summary(j48)
> j48test < −J48(myF ormula, data = testData, control = W ekac ontrol(M = 5))
print(j48test)
Página 19
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> summary(j48test)
Página 20
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
5.4. naı̈ve-Bayes
Página 21
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> # Divisão do conjunto de dados TAE para dois subconjuntos treinamento e teste
> set.seed(1234)
> ind < −sample(2, nrow(tae), replace = T RU E, prob = c(0.7, 0.3))
> trainData < −[ind == 1, ]
> testData < −[ind == 2, ]
> # descrição simbólica do modelo
> myF ormula < −Class.Attribute ∼ N ative.English + Course.Instructor
+Course + Semester + Class.Size
> # Carregando o package e1071
> library(e1071)
> # treinamento da árvore
> modelT rain < −naiveBayes(Class.Attribute ., data = trainData)
===Matriz de Confusão===
pred High Low Medium
High 24 3 8
Low 9 27 20
Medium 7 4 11
Página 22
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 23
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
O próximo passo é criar um novo subconjundo de dado, onde vai armazenar so-
mente os atributos sem as classe. Outra base é criada mas essa com 3 (três), onde os
rótulos são High, Low e Medium, cada um desses atributos recebem valores entre 0 e 1.
A seguir é Divide a base em entras de treinamento e alvos de treino, seguindo da
normalização dos dados de treinamento e teste. Na sequencia é aplicada a função mlp()
[Bergmeir and Benitez 2014]. Essa função cria a MLP e a treina.
> Carregando a biblioteca RSNNS
> library(RSN N S)
>Cria uma nova coluna no conjunto de dados tae
> tae < −tae[sample(1 : nrow(tae), length(1 : nrow(tae))), 1 : ncol(tae)]
> nova base sem as classes
> taeV alue < −tae[, 1 : 5]
>novo registro somente com as classes
> taeT argets < −decodeClassLabels(tae[, 6])
> Divide a base em entras de treinamento e alvos de treino
> tae < −splitF orT rainingAndT est(taeV alue, taeT argets, ratio = 0.15)
> Normalizar treinamento e teste definido como obtido por splitForTrainingAndTest
> tae < −normT rainingAndT estSet(tae)
> Criação da MLP e treinamento
> model < −mlp(tae$inputsT rain, tae$targetsT rain, size = 5,
learnF uncP arams = c(0.1), maxit = 50, inputsT est = tae$inputsT est,
targetsT est = tae$targetsT est)
Página 24
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> summary(model)
Página 25
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> model
Class: mlp->rsnns
Number of inputs: 5
Number of outputs: 3
Maximal iterations: 50
Initialization function: Randomize Weights
Initialization function parameters: -0.3 0.3
Learning function: Std Backpropagation
Learning function parameters: 0.1
Update function: Topological Order
Update function parameters: 0
Patterns are shuffled internally: TRUE
Compute error in every iteration: TRUE
Architecture Parameters:
size
[1]5
Página 26
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 27
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 28
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
O resultado do experimento com SVM acertou 27 e errou 24, esse resultado mostra
um ı́ndice de acerto de 54% (Tabela5), assim considerando um valor muito baixo, pois os
números de acertos e erros estão muito próximos.
Página 29
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> summary(tae.kknn)
> Call:
kknn(f ormula = Class.Attribute ., train = tae.learn,
test = tae.valid, distance = 1, kernel = ”triangular”)
Response: ”nominal”
fit prob.High prob.Low prob.Medium
1 Medium 0.000000e+00 0.018461805 0.98153820
2 High 7.517055e-01 0.190163492 0.05813105
3 High 5.332432e-01 0.129927503 0.33682927
4 High 4.548342e-01 0.209421259 0.33574452
5 Low 3.005398e-01 0.500389262 0.19907094
6 Low 2.317130e-01 0.692590033 0.07569694
7 High 7.173274e-01 0.144719279 0.13795335
8 Medium 0.000000e+00 0.007224163 0.99277584
9 High 7.768995e-01 0.035005505 0.18809504
10 Low 2.938910e-01 0.706109004 0.00000000
11 Low 1.140223e-01 0.719290589 0.16668708
12 Low 1.736404e-01 0.572518169 0.25384147
13 Low 2.711206e-01 0.391325625 0.33755376
14 Medium 0.000000e+00 0.056159584 0.94384042
15 High 6.957354e-01 0.248484390 0.05578023
16 Low 1.469328e-01 0.853067245 0.00000000
17 Medium 0.000000e+00 0.210094672 0.78990533
18 Low 2.851754e-01 0.598614459 0.11621013
19 Low 3.005398e-01 0.500389262 0.19907094
20 High 5.852319e-01 0.336999063 0.07776901
21 Low 4.380928e-02 0.576456546 0.37973418
22 Low 0.000000e+00 0.520206905 0.47979310
23 High 8.779172e-01 0.122082820 0.00000000
24 High 8.873762e-01 0.112623767 0.00000000
25 Medium 0.000000e+00 0.056159584 0.94384042
26 Medium 3.268094e-01 0.220176521 0.45301406
Página 30
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 31
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
O experimento com KNN obteve resultado de 48% de acuracias, sendo que ocor-
rem 24 acertos de 50 registos,ou seja, esse resultado do experimento teve uma taxa de
acerto menor que a taxa de erros. Tabela6.
6. Regras de associação
As regras de associação têm como função encontrar relacionamentos ou padrões frequen-
tes entre conjuntos de dados [Vasconcelos and Carvalho 2004]. Esse tipo de tarefa pode
prever qualquer tipo de atributo, não somente classes, o que lhe dá liberdade de pre-
ver combinações de atributos [Witten et al. 2011]. Para tratar questões relacionadas a
extração de regras de Associação usa-se o modelo proposto por Agrawal et ali (1993), o
qual as regras devem atender a um suporte (corresponde a frequência com que ocorrem
os padrões em toda base) e confiança mı́nimas (fração das transações que satisfaz a união
dos itens) especificados [Gonçalves 2005].
As regras de associação são tipicamente utilizadas em análise de transações
de compras, para indicar as tendências de compras dos clientes [Gonçalves 2005].
Outras aplicações de regras de associação Podem ser aplicadas em super-
mercados, planejamento de inventários, organização e gôndolas e planos de
vendas[Vasconcelos and Carvalho 2004].
6.1. Apriori
Apriori é um dos algoritmos mais conhecidos quando o assunto é mineração de re-
gras de associação. A função desse algoritmo é encontrar todos os conjuntos de itens
frequentes em um conjunto de dados, os quais são chamados de itemsets frenquence
[Romao et al. 2013].
Para o experimento de Regra de Associação Apriori é utilizado o package aru-
les [Hahsler et al. 2014]. Fornece a infra-estrutura para a representação, manipulação e
análise de dados e padrões (conjuntos de itens frequentes e as regras de associação) da
transação.
Os passos que seguem para a execução da Regra de associação Apriori são. Pri-
meiramente como a base de dados TAE tem sua caracterı́stica para Classificação é ne-
cessário remover a o atributo com os registros que presentam as classes. Os dados do
conjunto de dados para regras de associação devem ser logico ou fator. Portanto para esse
experimento é necessário converter os dados. Para esse experimento foi convertido todos
os atributos para fator.
E por fim executar a função apriori do R para gerar as regras de associação. Essa
função busca os conjuntos de itens frequentes, regras de associação ou associação hiper
arestas usando o algoritmo Apriori. O algoritmo Apriori emprega pesquisa sábio de nı́vel
para conjuntos de itens frequentes. A implementação de Apriori usado inclui algumas me-
lhorias (por exemplo, uma árvore de prefixo e item de classificação) [Hahsler et al. 2014].
Página 32
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
> rules < −apriori(tae2, parameter = list(supp = 0.5, conf = 0.9, target = ”rules”))
Parameter specification:
confidence minval smax arem aval originalSupport
0.9 0.1 1 none FALSE TRUE
Algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE 2 TRUE
7. Agrupamento
Agrupamento é uma tarefa que procura segmentar populações heterogêneas em subgru-
pos ou segmentos homogêneos, ou seja, agrupar objetos fı́sicos ou abstratos em clas-
ses de objetos similares de forma a identificar agrupamentos que descrevem os dados
[Vasconcelos and Carvalho 2004] e [Silva 2004].
O principal objetivo das técnicas de agrupamento como, achar dados que se agru-
pam naturalmente, classificando os dados em diferentes grupos e/ou categorias, sendo
essas classes ou grupos não conhecidos inicialmente [de Baker et al. 2011].
Página 33
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Técnicas de agrupamento são aplicadas quando não existem classes para pre-
dizer, mas as instancias são divididas em grupos naturais. Esses grupos presumivel-
mente reflete algum mecanismo que é no domı́nio do qual as instancias são desenhadas
[Witten et al. 2011]. As Técnicas de agrupamento não tem pretensão de classificar, es-
timar ou predizer o valor de uma variável, mas apenas identificar os grupos de dados
similares [Camilo and Silva 2009].
As tarefas de agrupamento podem ser usados nos mais variados casos, como, pes-
quisa de mercado, reconhecimento de padrões, processamento de imagens, análise de
dados, segmentação de mercado, taxonomia de plantas e animais, pesquisas geográficas,
classificação de documentos da Web e detecção de comportamentos atı́picos (fraudes)
[Camilo and Silva 2009].
7.1. K-means
k-means é um método muito usado para particionar automaticamente um conjunto em
grupos de N dados, procedendo selecionar centros de cluster N inicial e em seguida de
forma iterativa refinado-os. O algoritmo converge quando não há mais nenhuma mudança
na atribuição de instancias para grupos [Wagstaff et al. 2001].
Os passos para execução do K means procedem da seguinte forma: Como se trata
de um agrupamento e a base de dados tem caracterı́sticas para classificação é necessário
que o atributo que corresponde as classes seja excluı́do.
Para esse experimento é criado 3 cluster. Depois é executado a função Kmeans()
[Wagstaff et al. 2001]. Essa função retorna um objeto da classe Kmeans, que tem uma
impressão em um método fitted, a qual é uma lista com componentes.
O próximo passo é plotar o resultado, primeiro o gráfico com que apresenta os
cluster separados (Figura 25). e depois o gráfico com os centroides descriminados (Fi-
gura 26).
Página 34
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
7.2. Hierárquico
Para o experimento com Agrupamento Hierárquico foi executado os seguintes passos.
Primeiramente é executado a função dist(). Esta função calcula e retorna a matriz de
distância calculada, usando a medida de distância especificadas para calcular as distâncias
entre as linhas de uma matriz de dados [Team and contributors worldwide 2014]. Para
esse experimento é usada a distancia euclideana. na sequencia gerar o agrupamentos
usando o método ward.D e criar o dendrograma(Figura 27). E por fim realizar a poda
para apresentar o gráfico com 3 cluster (Figura 28).
> distancia da matriz calculada > d < −dist(tae, method = ”euclidean”)
> Gerar agrupamento > f it < −hclust(d, method = ”ward.D”)
> Gerar gráfico dos cluster.
> plot(f it)
Página 35
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
8. Dificuldades Encontradas
No desenvolvimento deste relatório foi encontrado algumas dificuldades. Essas dificulda-
des estão descritas nessa seção deste relatório.
A primeira dificuldade encontrada foi a necessidade de alterar as instancias de
alguns atributos. Foi necessário modificar os valores de das instancias do atributo
Class.Atributo. Os valores para esse atributo era 1, 2 e 3, os quais significavam Low,
Medium e High, sucessivamente. A modificação foi dos valores numéricos para as lite-
rais, das quais respeitando suas caracterı́sticas.
O motivo pelo qual ocorreu as mudanças foi o fato que os resultados não estavam
sendo de fáceis compreensão não tendo clareza se alguns dos resultados não estava sendo
gerados corretamente.
Outra dificuldade encontra foi à necessidade de renomear os atributos do conjunto
de dados. Ao carregar o conjunto de dados para o R os atributos estavam com nomes
sugeridos pelo R, nesse caso foram atribuı́dos sucessivamente os seguintes nomes para os
atributos: V1, V2, V3, V4, V5, V6.
Por meio de pesquisa foi encontrado uma função que possibilitou editar os nomes
dos atributos. A função já escrita para o banco com os novos nomes de atributo está
descrito a seguir.
> names(tae) = c(”N ative.English”, ”Course.Instructor”, ”Course”,
”Semester”, ”Class.size”, Class.Attribute”)
Com a execução dessa função os atributos foram editados ficando da seguinte
forma:
• V1 passou a ser Native.English;
• V2 passou a ser Course.Instructor;
• V3 passou a ser Course;
• V4 passou a ser Semester;
• V5 passou a ser Class.Size;
• V6 passou a ser Class.Attribute.
Esses novos nomes dos atributos, são sugeridos pelosite Machine Learning Repo-
sitory [Bache and Lichman 2013].
Outra dificuldade encontrada foi na pesquisa por pacotes do R. Alguns do pacotes
não possuem mais suporte para a versão atual do R, o que foi necessário pesquisar outras
abordagens e pacotes que se encaixasse no trabalho.
Página 36
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
10. Conclusão
Os resultados dos experimentos de classificação mostrou que o J48 teve o melhor resul-
tado obtendo o maior ı́ndice de acertos, entretanto vale lembrar que esse algoritmo dentre
os algoritmos de classificação é o que gerou a maior árvore e que em virtude disso foi
preciso realizar uma poda para que gerasse uma árvore compreensı́vel.
Entre os algoritmos de classificação pode se perceber que todos com exceção do
KNN obtivera valores acima dos 50 por cento, variando o resultado em uma curta faixa,
não ultrapassando os 7 por cento de diferença do pior caso que ultrapassou os 50 por
cento.
Para este experimento pode se concluir que a base de dados não esta adequada para
aplicar algoritmo de regra de associação apriori, pois não obteve nenhuma regra. Essa
fato pode ter acontecido por o conjunto de dados TAE possuir apenas dados numéricos os
quais não são compatı́veis com o apriori do R, que por sua vez aceita somente valores de
instancias lógicas ou categóricas.
Os algoritmos de agrupamento K-meas e hierárquico, ambos conseguiram identi-
ficar 3 (três) cluster, porem muito difı́cil de compará-los os resultado dos gráficos. Entre-
tanto o R proporcionou um gráfico mais nı́tido e claro com o K-meas.
Página 37
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Referências
[Bache and Lichman 2013] Bache, K. and Lichman, M. (2013). UCI machine learning re-
pository.
[Bergmeir and Benitez 2014] Bergmeir, C. and Benitez, J. M. (2014). Package rsnns.
[Camilo and Silva 2009] Camilo, C. O. and Silva, J. C. (2009). Mineração de dados: Con-
ceitos, tarefas, métodos e ferramentas. Relatorio técnico, Universidade Federal de
Goiás.
[Costa et al. 2013] Costa, E., d. Baker, R. S. J., Amorim, L., aes, J. M., and Marinho,
T. (2013). Mineraç ao de dados educacionais: Conceitos, técnicas, ferramentas e
aplicaç ao. Anais da Jornada de Atualizaç ao em Informática na Educaç ao.
[d. Souza 2012] d. Souza, F. A. A. (2012). Análise de desempenho da rede neural artificial
do tipo multilayer perceptron na era multicore. PhD thesis.
[de Baker et al. 2011] de Baker, R. S. J., Isotani, S., and de Carvalho, A. M. J. B. (2011).
Mineraçao de dados educacionais: Oportunidades para o brasil.
[Dimitriadou et al. 2015] Dimitriadou, E., Hornik, K., Leisch, F., Meyer, D., and Weinges-
sel, A. (2015). Package e1071.
[Gonçalves 2005] Gonçalves, E. C. (2005). Regras de associação e suas medidas de inte-
resse objetivas e subjetivas. INFOCOMP Journal of Computer Science, 4(1):26–35.
[Hahsler et al. 2014] Hahsler, M., Buchta, C., Gruen, B., Hornik, K., and Hahsler, M. M.
(2014). Package arules.
[Han et al. 2012] Han, J., Kamber, M., and Pei, J. (2012). Data Mining Concepts and Te-
chiques. Morgan Kaufamann.
[Hornik et al. 2015] Hornik, K., Buchta, C., Hothorn, T., Karatzoglou, A., Meyer, D., and
Zeileis, A. (2015). Package rweka.
[Hothorn and Everitt 2014] Hothorn, T. and Everitt, B. S. (2014). A handbook of statistical
analyses using R. CRC Press.
[Hothorn et al. 2014] Hothorn, T., Hornik, K., Strobl, C., and Zeileis, A. (2014). Package
party. Package Reference Manual for Party Version 0.9-998, 16:37.
[Hothorn et al. 2015] Hothorn, T., Hornik, K., and Zeileis, A. (2015). ctree: Conditional
inference trees.
[Junior et al. 2013] Junior, R. C., Machado, R. D., and Schreiber, J. N. C. (2013). Uso da
mineração de dados na predição de alunos com perfil de evasão do ensino superior.
[Lorena and d. Carvalho 2003] Lorena, A. C. and d. Carvalho, A. C. P. L. F. (2003).
Introdução às máquinas de vetores suporte. Relatorio técnico do icmc, Universidade
de São Paulo - Instituto de Ciências Matemática e de Computação.
Página 38
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
Página 39
Experimento de aplicação de algoritmos de classificação em uma base de dados
utilizando linguagem R
[Wagstaff et al. 2001] Wagstaff, K., Cardie, C., Rogers, S., Schrödl, S., et al. (2001). Cons-
trained k-means clustering with background knowledge. In ICML, volume 1, pages
577–584.
[Witten et al. 2011] Witten, I. H., Frank, E., and Hall, M. A. (2011). Data Mining Pratical
Machine Learning Tools and Techniques. Morgan Kaufamann.
[Zhao 2014] Zhao, Y. (2014). R and data mining: Examples and case studies.
Página 40