Você está na página 1de 65

Universidade Federal de Ouro Preto

Departamento de Ciências Exatas e Aplicadas


Colegiado de Sistemas de Informação

Aplicação de Mineração de Dados na


Base do Restaurante Universitário da
UFOP no Campus de João Monlevade

Renata Dias Batista

TRABALHO DE
CONCLUSÃO DE CURSO

ORIENTAÇÃO:
Profª. Msc. Janniele Aparecida Soares

Julho, 2015
João Monlevade/MG
Renata Dias Batista

Aplicação de Mineração de Dados na Base do


Restaurante Universitário da UFOP no Campus de
João Monlevade

Orientadora: Profª. Msc. Janniele Aparecida Soares


Co-orientadora: Profª. Msc. Helen de Cássia Souza da Costa Lima

Monografia apresentada ao Curso de Sistemas de


Informação do Departamento de Computação e
Sistemas da Universidade Federal de Ouro Preto
como requisito parcial para obtenção do grau de
Bacharel em Sistemas de Informação.

Universidade Federal de Ouro Preto

João Monlevade

Julho de 2015
Resumo

O presente trabalho apresenta um estudo resultante da aplicação de técnicas


de Mineração de Dados na base do Restaurante Universitário do Campus de João
Monlevade. O Restaurante encontra dificuldades na predição do número de comen-
sais e acaba desperdiçando muitos alimentos, causando também espera na fila para
a reposição de refeições. A ferramenta Weka foi utilizada para aplicar os algoritmos
KNN, Regressão Linear e SVM a fim de realizar as predições. Foram realizados
diversos experimentos com diferentes configurações das variáveis encontradas. Den-
tre os modelos criados, o que representou melhor o ambiente do Restaurante foi o
que continha a maior quantidade de variáveis. O algoritmo SVM obteve melhores
resultados, onde a média de erro na previsão ficou próxima a 10 refeições para o
almoço e para o jantar.

Palavras-chaves: Mineração de dados, Classificação, Regressão, SVM, Res-


taurante Universitário.
AGRADECIMENTOS

Em primeiro lugar agradeço aos meus pais Inês e Geraldo pela confiança, investi-
mento e proteção durante a realização deste sonho.
Agradeço a todos os meus amigos pelo incentivo para seguir em frente mesmo nos
momentos difíceis, especialmente à Gabriela.
Agradeço ao Bruno por toda a motivação, apoio e carinho que foram capazes de
me fazer mais forte e seguir até o fim.
À Janniele e à Helen pela confiança em mim depositada, pela excelente e dedicada
orientação, pelo esforço e ajuda na realização deste trabalho.
E por fim, agradeço a todos os professores, funcionários e técnicos da Universi-
dade Federal de Ouro Preto, especialmente à Viviane Leles e a todos do Restaurante
Universitário do Campus de João Monlevade.
SUMÁRIO

1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Revisão Bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1 Mineração de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Técnicas de Mineração de dados . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 k-Vizinhos mais Próximos . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Regressão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1 Regressão Linear Múltipla . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.2 Máquinas de vetores de suporte - (Support Vector Machines - SVM) 19
2.5 Weka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Métricas de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.7 Ambiente de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1 Identificação do problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Pré-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Extração de Padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.1 Escolha da tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.2 Escolha dos algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Análise dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6 Experimentos e Análises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.1 Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7 Conclusões e trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . 48

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

A Apêndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

A Apêndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
LISTA DE FIGURAS

Figura 1 – Passos do processo KDD - Fonte: (Fayyad et al (1996b)) . . . . . . . . 15

Figura 2 – Histórico das refeições servidas no almoço - Fonte: Desenvolvido pela


autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figura 3 – Histórico das refeições servidas no jantar - Fonte: Desenvolvido pela
autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 4 – Histórico das refeições que sobraram no almoço - Fonte: Desenvolvido
pela autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Figura 5 – Histórico das refeições que sobraram no jantar - Fonte: Desenvolvido
pela autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 6 – Histórico das refeições que faltaram no almoço - Fonte: Desenvolvido
pela autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 7 – Histórico das refeições que sobraram no jantar - Fonte: Desenvolvido
pela autora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
LISTA DE TABELAS

Tabela 1 – Classificação da correlação de acordo com o valor do coeficiente . . . . 23

Tabela 2 – Resultado do Teste 1 na Base 2014. . . . . . . . . . . . . . . . . . . . . 41


Tabela 3 – Resultado do Teste 2 na Base 2014. . . . . . . . . . . . . . . . . . . . . 42
Tabela 4 – Resultado do Teste 3 na Base 2014. . . . . . . . . . . . . . . . . . . . . 42
Tabela 5 – Resultado do Teste 4 na Base 2014. . . . . . . . . . . . . . . . . . . . . 43
Tabela 6 – Resultado do Teste 5 na Base 2014. . . . . . . . . . . . . . . . . . . . . 43
Tabela 7 – Resultado do Teste 6 na Base 2014. . . . . . . . . . . . . . . . . . . . . 43
Tabela 8 – Resultado do Teste 7 na Base 2014. . . . . . . . . . . . . . . . . . . . . 44
Tabela 9 – Resultado do Teste 8 na Base 2014. . . . . . . . . . . . . . . . . . . . . 44
Tabela 10 – Resultado do Teste 9 na Base 2014. . . . . . . . . . . . . . . . . . . . . 44
Tabela 11 – Resultado do Teste 10 na Base 2014. . . . . . . . . . . . . . . . . . . . 46
Tabela 12 – Resultado do Teste 11 na Base 2014. . . . . . . . . . . . . . . . . . . . 46
Tabela 13 – Resultado do Teste 12 na Base 2014. . . . . . . . . . . . . . . . . . . . 47

Tabela 14 – Long Table com controle de quebra . . . . . . . . . . . . . . . . . . 58


LISTA DE ABREVIATURAS E SIGLAS

RU - Restaurante Universitário

MD - Mineração de Dados

KDD - Knowledge Discovery in Databases

KNN - K-Nearest Neighbours

Weka - Waikato Environment for Knowledge Analysis

SVM - Support Vector Machines

SMO - Otimização Mínima Sequencial

R - Coeficiente de Correlação

MEA - Média de Erro Absoluto


12

1 INTRODUÇÃO

O Restaurante Universitário (RU) do Campus de João Monlevade enfrenta dificul-


dade para realizar a previsão correta de quantas refeições devem ser preparadas durante
o dia. Quando o número de comensais ultrapassa o valor estimado, o tempo de espera
na fila torna-se maior que o habitual e algumas vezes é necessário fazer mudanças no
cardápio devido à necessidade de reposição das refeições. Quando o contrário ocorre, há
o desperdício de alimento, causando prejuízo para a empresa terceirizada responsável por
fornecer a alimentação.
O RU recebe em média 198 comensais no almoço e 180 no jantar. Durante os anos
de 2011 a 2014, em 755 dias observados na coleta dos dados, o RU acertou o número de
refeições com exatidão apenas 10 vezes, sendo 6 no almoço e 4 no jantar. Nos 745 dias
restantes, em média 31 refeições foram desperdiçadas por dia no almoço e 53 no jantar. O
número de refeições que faltaram foi em média 16 no almoço e 22 no jantar. Como base
de dados principal, este trabalho usou os dados referentes ao ano de 2014, durante este
período, as médias de erro alcançadas pelo RU foi em média 11 refeições no almoço e 18
no jantar nos 223 dias observados.
Considerando que o método atual de previsão é baseado na observação dos funcio-
nários e que ele apresenta desproporção considerável entre a quantidade de comensais que
são previstos para comparecer em cada refeição e a quantidade que realmente comparece,
o presente trabalho busca aproveitar as possibilidades fornecidas pela Mineração de Dados
(MD) para elaborar um modelo que ao simular a capacidade humana de raciocinar, per-
ceber, tomar decisões e resolver problemas proporcione estimativa mais exata do número
de comensais esperados.
As estimativas são feitas sobre uma base de dados que contém o histórico completo
das variáveis que envolvem o funcionamento do restaurante universitário e influenciam na
ausência e/ou presença de comensais nas refeições. A utilização de algoritmos de classifi-
cação e regressão nessa base de dados permite, através da análise desses dados, encontrar
padrões e oferecer estimativas precisas de quantos comensais utilizarão o serviço durante
cada refeição.
A aplicação da técnica de Descoberta de Conhecimento em Bases de Dados (Kno-
wledge Discovery in Databases(KDD)) tem potencial no âmbito do restaurante do Campus
João Monlevade, por ser capaz de resolver seu principal problema organizacional com a
previsão correta do número de comensais esperados, o serviço pode ser otimizado e reduzir
consideravelmente o desperdício alimentar, gerando lucro, melhor qualidade no serviço e
sustentabilidade.
Capítulo 1. Introdução 13

As próximas seções apresentam detalhadamente os passos do KDD aplicados na


base de dados do RU, a tarefa de classificação foi utilizada primeiro com o algoritmo
KNN, após não demonstrar ser a melhor escolha para a extração do conhecimento foi
substituída pela tarefa de regressão com utilização dos algoritmos de regressão linear e
SMOreg. A Seção 2 mostra detalhes das tarefas e dos algoritmos. A Seção 3 apresenta
algumas pesquisas realizadas utilizando Mineração de Dados. A Seção 4 mostra o passo a
passo do processo de KDD aplicado no RU. As Seções 5 e 6 apresentam o conhecimento
que foi possível extrair dos dados.

1.1 OBJETIVOS
1.1.1 Objetivo Geral
O objetivo do presente trabalho é aplicar algoritmos de classificação e regressão
na base de dados do Restaurante Universitário que sejam capazes de analisar as variáveis
que influenciam a ausência e/ou presença de comensais durante as refeições e oferecer
uma previsão confiável de quantas refeições serão consumidas.
Ao proporcionar maior exatidão que o método utilizado atualmente, esse trabalho
oferecerá recursos que irão auxiliar na previsão de quantas refeições deverão ser prepara-
das diariamente não só no RU do Campus de João Monlevade, mas também em outros
restaurantes dentro e fora da Universidade Federal de Ouro Preto.

1.1.2 Objetivos Específicos

∙ Identificar as variáveis que compõe o problema, selecionar quais exercem maior


influência nos resultados, verificar a possibilidade de coleta e montar uma base de
dados com as variáveis selecionadas;

∙ Pesquisar trabalhos relacionados que possam contribuir com o presente trabalho


indicando algoritmos utilizados, modificações testadas que promovam melhor de-
sempenho e/ou eficácia nos resultados e outros métodos de previsão que podem ser
comparados e reproduzidos parcialmente no problema do restaurante;

∙ Desenvolver um método capaz de processar a base de dados aplicando técnicas de


classificação e regressão capazes de encontrar padrões e indicar o número de refeições
esperado;

∙ Analisar os resultados, a porcentagem de exatidão e identificar quais melhorias pro-


movidas com a resolução do problema de previsão do número de refeições.
14

2 REVISÃO BIBLIOGRÁFICA

2.1 MINERAÇÃO DE DADOS


Com a constante evolução da informática, foram surgindo tecnologias capazes de
automatizar a manipulação dos dados e analisar seu conteúdo. Alguns algoritmos foram
baseados em conhecimentos da área de estatística e reconhecimento de padrões e apre-
sentaram ótimos resultados para a análise dos dados.
Além da área computacional, houve progresso também em outras áreas como ne-
gócios, economia, administração, produção e principalmente no apoio à decisão. Quanto
mais essas e outras áreas foram evoluindo, mais dados elas passaram a gerar. Por trás
desses dados encontram-se grandes possibilidades de superar problemas econômicos, agre-
gação de qualidade, competitividade e sustentabilidade. A forma de olhar os dados mudou
e conforme previsto por Bradley et al (1999), houve uma evolução na geração de métodos
que misturam corretamente estatísticas, bases de dados, otimização, análise automática
de dados e outras áreas afins, produzindo novos algoritmos e metodologias capazes de
trabalhar em bases de dados grandes e escaláveis, conforme as que são produzidas hoje.
O KDD é o processo que visa descobrir conhecimento válido, relevante e novo
contido em bases de dados, suas etapas são: seleção, pré-processamento, transformação,
Mineração de Dados e interpretação. O “KDD coloca uma ênfase especial na busca de
padrões compreensíveis que podem ser interpretados como um conhecimento útil ou in-
teressante” Fayyad et al (1996b). Sendo assim, surgiram maneiras novas de lidar com o
conhecimento gerado, uma delas é a área de apoio a decisão, uma tarefa interdisciplinar
que define caminhos a serem tomados para resolver problemas e atingir metas. De acordo
com Rezende (2005), o conhecimento pode ser descrito como a habilidade de criar um
modelo mental que descreve um objeto, indica as ações que devem ser implementadas e
quais decisões devem ser tomadas. Sendo assim, o ato de tomar uma decisão nada mais é
que usar o conhecimento para criar uma previsão com determinado grau de certeza. Este
conhecimento é gerado através da análise dos dados e das informações tiradas nos padrões
que estão contidos nesses dados.
Os passos básicos do processo de KDD são apresentados na Figura 1, cada passo
é descrito a seguir:

∙ Seleção (Selection): passo de seleção do conjunto de dados onde será aplicado o


KDD;

∙ Pré-processamento (Processing): passo que elimina possíveis ruídos nos dados;


Capítulo 2. Revisão Bibliográfica 15

∙ Transformação (Transformation): passo que reduz ou transforma os dados;

∙ Mineração dos dados (Data Mining): passo que aplica a busca de padrões interes-
santes;

∙ Interpretação e avaliação dos resultados (Interpretation/Evaluation): passo que in-


terpreta os padrões minerados.

Figura 1 – Passos do processo KDD - Fonte: (Fayyad et al (1996b))

A MD como mostrado acima, é uma etapa do processo de descoberta do conhe-


cimento, ela utiliza técnicas estatísticas de descoberta de padrões através da análise do
comportamento histórico dos dados sem fazer distinção entre os tipos de dados, eles po-
dem ser de bases geradas por marketing, finanças, telecomunicações, saúde ou qualquer
outra área. Tratar os dados é essencial pois eles não são significativos. Rezende (2005)
explica que o conjunto de dados é qualquer mídia que pode ser processada pelo compu-
tador, o dado é apenas um elemento puro e quantificável sobre um determinado evento
que por si só não oferece recursos para o entendimento de um evento. A informação é o
dado já analisado e contextualizado, ela envolve a interpretação de um conjunto de dados
gerando padrões, associações e relações que os dados acumulados proporcionam.
A MD é definida como “o processo de descobrir padrões e tendências úteis em
grandes conjuntos de dados” Larose (2005). Enquanto o KDD “refere-se ao processo global
de descoberta de conhecimento útil a partir de dados, a mineração de dados refere-se a
uma determinada etapa neste processo. A mineração de dados é a aplicação de algoritmos
específicos para a extração de padrões de dados” Fayyad et al (1996a).
Bradley et al (1999) dividem as técnicas de mineração de dados em 5 classes:

∙ modelo preditivo, faz a previsão de um atributo específico com base em outros


atributos da base de dados;

∙ agrupamento: agrupa um subconjunto de itens mais similares dentro do conjunto


total da base;
Capítulo 2. Revisão Bibliográfica 16

∙ dependência de modelagem: busca modelar a função de densidade de probabilidade


dentro dos dados da qual se gerou o modelo;

∙ sumarização: busca encontrar características comuns nos dados mostrando um re-


sumo destas informações;

∙ alteração e desvio de detecção: busca contas de informação na base. Outras técnicas


encontradas na literatura buscam encontrar estimativas e descrições, dentre vários
outros objetivos. O objetivo mais considerado na mineração de dados é processar os
dados a fim de obter previsão, identificação, classificação ou otimização através dos
dados.

2.2 TÉCNICAS DE MINERAÇÃO DE DADOS


A quantidade de dados gerados pelas organizações é astronômica, segundo Goebel
and Gruenwald (1999) todos esses dados asseguram informações valiosas entre padrões
e tendências, porém a quantidade de dados inviabiliza a análise manual, em alguns ca-
sos atributos independentes precisam ser considerados simultaneamente para modelar
o comportamento do sistema. Dada esta dificuldade de manipulação dos dados, foram
construídas diversas ferramentas capazes de extrair conhecimento das bases de dados de
forma automatizada. Elas são capazes de analisar dados brutos e apresentar informações
de alto nível, otimizando o trabalho de analistas e tomadores de decisão, uma vez que as
informações contribuem para melhorar as decisões de negócios e otimizar o sucesso das
organizações.
Assim como existem várias ferramentas de apoio à extração de informações, exis-
tem também diversos métodos de mineração de dados. Inicialmente, é importante mostrar
a diferença entre tarefa e técnica de mineração. de Amo (2004) mostra que a tarefa é re-
presentada pela especificação do que queremos buscar nos dados, como regularidades ou
categorias de padrões, já a técnica é a especificação dos métodos que utilizamos para
descobrir o que buscamos nos dados.
Dias (2002) afirma que na hora da escolha de uma técnica de mineração deve-se
estar atento ao tipo de problema a ser solucionado, pois a tarefa de MD deve estar de
acordo com os objetivos da descoberta de conhecimento. A técnica escolhida deve estar de
acordo com as características dos dados, a forma de aplicação da mineração deve provar
que existe uma hipótese sobre a relação dos dados. A disponibilização das ferramentas
escolhidas também deve ser feita durante a escolha da técnica a ser utilizada, pode-se
considerar o uso de mais de uma técnica para a descoberta de conhecimento em uma
única base de dados.
Capítulo 2. Revisão Bibliográfica 17

A base de dados do presente trabalho é um bom exemplo de base que permite


aplicação de mais que uma tarefa de MD, o problema pode ser entendido como estimação,
classificação, regressão, predição ou otimização.

2.3 CLASSIFICAÇÃO
Goebel and Gruenwald (1999) e Bradley et al (1999) explicam que a parte essencial
do processo KDD está em qual método de MD é utilizado para extrair os padrões dos
dados. Cada método possui um objetivo diferente, assim como o resultado pretendido na
utilização do KDD. O objetivo da classificação é prever o estado mais provável que uma
variável categórica pode atingir a partir das características de um conjunto de registros
históricos. Os algoritmos de classificação buscam calcular um modelo que usa os valores
mais marcantes para descrever cada classe e analisar a entrada de acordo com eles, dando
como saída a classe com que a variável mais se assemelha, ou seja, cada registro novo é
classificado em um conjunto discreto de possíveis categorias pré-definidas anteriormente.
Classificar um dado é quando “dado um conjunto de classes categóricas pré-
definidas, pode-se determinar para qual destas classes um item de dados específico per-
tence” Goebel and Gruenwald (1999) . Seguindo este e outros exemplos, os dados reco-
lhidos no RU foram discretizados em classes que variaram de 1 a 40, indo de 10 em 10.
Ou seja, a classe 1 demonstra que o número de comensais do restaurante em determinada
refeição está entre 0 e 9, a classe 2 de 10 a 19 comensais, seguindo assim até chegar na
última classe que considera entre 390 a 399 comensais em uma refeição. Sendo assim, os
novos dados serão classificados conforme uma dessas 40 classes e representa que o número
de comensais estaria entre determinado intervalo.
Por outro lado, pode-se observar que apesar de poder ser representados por clas-
ses, o problema é constituído de valores contínuos e que ao ser modulado com variáveis
discretas, poderia desperdiçar informação, além de realizar uma previsão menos exata do
número de comensais. Segundo Goebel and Gruenwald (1999), o método escolhido para
fazer a análise dos dados deve estar de acordo com seus atributos. Algumas abordagens
geralmente exigem que todos os atributos sejam do tipo numérico, outras não são capazes
de lidar com dados contínuos. Então, o tipo de atributos presentes na fonte de dados de-
vem ser considerados ao selecionar um modelo de análise. Neste caso, a tarefa de regressão
foi escolhida como a mais adequada para a resolução do presente problema.

2.3.1 k-Vizinhos mais Próximos


O método dos k-Vizinhos mais Próximos (KNN) é um método simples e eficaz de
aprendizagem baseado em instância. Conforme Blomberg (2014) explica, este método uti-
liza um grupo de dados como treinamento e em cima deles busca encontrar os k dados de
Capítulo 2. Revisão Bibliográfica 18

treino mais parecidos com os dados de entrada. Cada tupla é classificada de acordo com
atributos existentes. A similaridade é calculada geralmente através da distância Euclidi-
ana, porém existem outras métricas de distância que podem ser mais apropriadas para
circunstâncias específicas permitindo a modificação do algoritmo conforme a necessidade.
Após o cálculo da similaridade, o algoritmo determina quais membros do conjunto
de treinamento são mais próximos da instância de teste, a nova instância é classificada de
acordo com a classe que a maioria das instâncias pertencem. A quantidade de vizinhos
é definida pelo k, ele é o responsável por determinar a quantidade de vizinhos que serão
selecionados dentro do grupo de maior similaridade, a quantidade de vizinhos apropriada
para cada problema é diferente e contribui significativamente para a boa performance do
algoritmo.

Algoritmo 1: KNN
Dados: 𝑘, 𝐷, 𝑇
Saída: 𝑆
𝑆 ← solução vazia
𝑊 ← ( 0, 𝑡𝑎𝑚𝐽𝑎𝑛𝑒𝑙𝑎)
para (𝑧 ∈ 𝑇 ) faça
Calcule 𝑑(𝑧, 𝑥), a distância entre 𝑧 e cada exemplo 𝑥 ∈ 𝐷.
Selecione 𝐷𝑧 ⊂ 𝐷 conjunto dos 𝑘 exemplos de treinamento de 𝑧
classe 𝑧 = classe de maior incidência dentre 𝐾 ∈ 𝐷𝑧
fim
retorna 𝑧

2.4 REGRESSÃO
Na predição de variáveis discretas, pode-se aplicar técnicas de classificação, porém
na predição de variáveis contínuas os métodos de regressão apresentam melhores resulta-
dos. Para implementar tarefas de regressão são utilizados métodos estatísticos. Segundo
Bradley et al (1999), o problema de regressão é diferente do problema de classificação, já
que neste, a 𝑓 𝑢𝑛𝑐𝑎𝑜 𝑔 que tenta estimar tem uma saída contínua, em contraste com uma
saída discreta para o problema de classificação.
De acordo com Rezende (2005), Fayyad et al (1996c) e Goebel and Gruenwald
(1999), a regressão busca aprender uma função, que pode ser linear ou não, através da
análise das dependências entre valores de atributos novos e valores de atributos conhecidos.
Esta função consegue mapear um novo item do dado à uma variável de previsão com valor
real. Dada a descoberta das relações entre as variáveis, um modelo é construído e passa
a prever quais valores de atributos serão atribuídos aos novos registros.
“Dado um conjunto de itens de dados, a regressão é a análise da dependência
de alguns valores de atributos sobre os valores de outros atributos no mesmo item e a
Capítulo 2. Revisão Bibliográfica 19

produção automática de um modelo que pode prever estes itens e atribuírem valores para
novos registros” Goebel and Gruenwald (1999). Ou seja, dado um conjunto de dados este
modelo pode prever a probabilidade de que um novo registro aconteça.
No contexto de nosso trabalho, ao utilizar a tarefa de classificação, o restaurante
deveria fazer o valor máximo de cada classe para que não faltassem refeições, supondo que
o valor contínuo representa o primeiro valor da classe, neste exemplo, 9 refeições seriam
desperdiçadas. O lado positivo de usar o método de classificação se apresenta uma vez
que o desperdício é limitado a um valor máximo de 9 refeições se ele fornecer resultados
com exatidão de 100%. Porém, supondo que o método de regressão ofereça os mesmos
100% de exatidão, basta realizar o cálculo e chegar ao resultado exato de quantas refeições
precisarão ser feitas, neste caso os responsáveis pelo restaurante acertariam a previsão sem
sobrar nem faltar refeições. Por esta razão o método de regressão foi considerado mais
apropriado para resolver este problema.

2.4.1 Regressão Linear Múltipla


O modelo de regressão linear segundo Stevenson and De Farias (1981) é uma
equação matemática linear que descreve o relacionamento das variáveis do problema com
a finalidade de predizer valores futuros de uma variável com base nos valores conhecidos
de outras. Essa equação descreve os relacionamentos de variáveis em termos matemáticos
representados pela forma:
𝑦𝑐 = 𝑎 + 𝑏1 𝑥1 + 𝑏2 𝑥2 + ... + 𝑏𝑘 𝑥𝑘 (2.1)

onde: 𝑎 representa o intercepto y


𝑏𝑖 representa os coeficientes angulares
𝑘 representa o número de variáveis independentes

A variável dependente pode ser predita com base em valores conhecidos das va-
riáveis independentes. Por exemplo, na base de dados criada neste trabalho, as variáveis
consideradas independentes são: ano, mês, dia do mês, dia da semana, sobra do almoço,
sobra do jantar, véspera de feriado, pós-feriado, fim do período, inicio do período, exame
especial, reuniões no jantar, reuniões no almoço, cardápio do almoço e cardápio do jan-
tar. As variáveis dependentes: comensais do almoço e comensais do jantar. O valor que
desejamos estimar é calculado a partir da soma resultante da multiplicação das variáveis
pelos números gerados na equação.

2.4.2 Máquinas de vetores de suporte - (Support Vector Machines - SVM)


Conforme descrito por Martins (2008) e Junior (2010), o Support Vector Machines
(SVM) é um método supervisionado de aprendizado de máquina. Este paradigma utiliza
Capítulo 2. Revisão Bibliográfica 20

um agente externo que monta uma representação do ambiente através de um conjunto de


exemplos usados como entrada. O algoritmo de aprendizagem de máquina utiliza a Teoria
de Aprendizado Estatístico (TAE) estabelecendo condições matemáticas para escolher
um classificador que observa este conjunto de exemplos, também chamado de conjunto de
treinamento, e extrai deles conhecimento para aprender uma função de classificação capaz
de generalizar um conjunto de padrões e aplicá-lo na classificação de novos conjuntos de
entrada.
Considerando que uma SMV recebe duas classes e um conjunto de treinamento
que pertencem a estas classes, o funcionamento da SVM é descrito da seguinte forma:
um hiperplano é determinado e dentro dele o conjunto de dados é separado conforme a
classe a qual pertence. Enquanto os dados são separados, a SVM define a distância entre
essas classes e procura encontrar um limite ótimo entre os dois conjuntos representados
no hiperplano. Para encontrar o limite ótimo, as distâncias são maximizadas através da
utilização da otimização quadrática com restrições.
Para resolver problemas não lineares, pode ser utilizada a inserção do método
kernel, que faz uma transformação do espaço vetorial para localizar limites não lineares,
presentes em vários outros problemas. Após observar o conjunto de treinamento, o SVM
utiliza a função de classificação obtida com as distâncias para classificar novos dados de
entrada não representados no conjunto de treinamento, também chamados de teste.
A maneira encontrada para estender o problema de classificação com apenas duas
classes, é utilizar uma abordagem capaz de reduzir um problema com múltiplas classes em
vários problemas com apenas duas classes. Desta maneira, é possível obter a generalização
do algoritmo de classificação com a ajuda de máquinas de vetor de suporte.
As SVMs foram criadas inicialmente para a resolução de problemas de classificação,
porém métodos similares são utilizados para resolução de problemas de regressão. Neste
contexto, os métodos produzem um modelo linear representado em termos de vetores de
suporte e assim como na explicação anterior pode ser usado para problemas não lineares
com a utilização de uma função kernel. Outra característica importante do SVM para
regressão é o uso da aproximação de uma função alvo que procura minimizar o erro
absoluto das predições.
Outra abordagem utilizada para problemas de regressão é chamado de Otimização
Mínima Sequencial (Sequential minimal optimization (SMO)). O SMO usa a ideia de
que um problema quadrático pode ser reduzido em vários problemas menores. Sendo
assim, ele se torna mais eficiente que o SVM para o mesmo tipo de problema. O SMO
é um método que implementa SVM para a regressão, ele decompõe o problema e os
resolve analiticamente fazendo modificações na função de distância. O objetivo principal
é encontrar uma função que aproxima bem os pontos de treinamento pela minimização
dos erros de predição onde todos os desvios que estiverem acima de um determinado
Capítulo 2. Revisão Bibliográfica 21

valor estabelecido pelo usuário serão descartados. Os dados sofrem uma transformação
não linear para um espaço multi-dimensional permitindo a separação linear dos dados e
a criação da margem a partir da qual os dados serão ignorados.

2.5 WEKA
Goebel and Gruenwald (1999) citam que o uso das ferramentas de descobertas
automatizadas tem a capacidade de analisar dados brutos e apresentá-los em forma de
informação de alto nível para que o analista ou tomador de decisões não precise encontrá-
los por si só. Por este motivo a escolha da ferramenta depende da aplicação de requisitos
e considerações específicas, como a forma e o tamanho dos dados, objetivos do processos
de descoberta, necessidades e treinamento do usuário final, dentre outros. De acordo com
essas observações, a ferramenta escolhida foi a Weka.
Weka é uma máquina de aprendizado e Mineração de Dados de código aberto.
Foi desenvolvida em Java pela Universidade Waikato da Nova Zelândia. Seus algoritmos
de classificação permitem a construção de um modelo classificador baseado em dados
de treino e a avaliação do desempenho deste modelo. Além da tarefa de classificação,
possui algoritmos capazes de minerar regras de associação e clusters. Os resultados são
mostrados em várias medidas, algumas delas são estatística kappa, média absoluta de erro
e erro absoluto.
Para utilizá-la basta criar um arquivo no formato padrão .arff. Este documento
precisa conter inicialmente um cabeçalho, conforme mostrado no exemplo abaixo, seguido
do conjunto de dados. No cabeçalho, @relation representa a associação de um nome a um
conjunto de dados, @attribute representa a declaração dos atributos utilizados no pro-
blema. A ordem da declaração vai indicar a posição de cada atributo dentro do conjunto
de dados. Dentro da base os atributos deverão estar na ordem em que aparecem no cabe-
çalho. Por definição, a Weka considera o último atributo especificado no cabeçalho como
o atributo classe e os demais são tratados como atributos preditivos. Dados categóricos
podem ser representados por números ou pelos nomes de cada um, ambos fornecem uma
lista de valores possíveis para o atributo. Da mesma maneira, atributos numéricos po-
dem ser expressos por seus possíveis valores ou usando as palavras real ou numeric para
descrever que serão aceitos apenas números. A base de dados é representada por @data,
abaixo desta informação vem a base de dados onde todos os atributos de um dado são
colocados na mesma linha e separados por vírgula. Quando um atributo não tem valor
conhecido, ele é representado pelo caracter “?”, a Weka entende que este atributo tem um
valor nulo.

%regressao: refeicoes no RU

@RELATION ’TCC’
Capítulo 2. Revisão Bibliográfica 22

@att ribute id_ano {2011,2012,2013,2014}


@attribute id_mes {1,2,3,4,5,6,7,8,9,10,11,12}
@attribute dia_semana {1,2,3,4,5}
@attribute sobra_almoco real
@attribute vespera_feriado {0,1}
@attribute pos_feriado {0,1}
@attribute fim_periodo {0,1}
@attribute inicio_periodo {0,1}
@attribute dia_matricula {0,1}
@attribute aula_extra_manha {0,1}
@attribute exame_especial {0,1}
@attribute cardapioAlmoco {1,3,4,5,11,12,13,14,15,16,18,22,394,95,99,103,106}
@attribute reunioes_almoco {0,1}
@attribute epoca {0,1,3}
@attribute classeAlmoco {2,3,4,5,6,7,8,9,,20,21,22,23,24,25,26,27,33,36}

@data
2014,2,13,4,23,0,0,1,0,0,0,0,12,0,0,16
2014,2,12,3,19,0,0,1,0,0,0,0,45,1,0,29

2.6 MÉTRICAS DE AVALIAÇÃO


O exemplo abaixo apresenta a saída da ferramenta Weka, que mostra quantas
instâncias a base de dados contém, uma lista com seus atributos, informa o modelo de
regressão gerado através da aplicação do algoritmo, o coeficiente de correlação do modelo
gerado, assim como erro médio absoluto, média do erro quadrado, erro absoluto rela-
tivo, erro quadrado relativo, número de instâncias utilizadas e a quantidade de instâncias
ignoradas. Todos estes resultados são explicados abaixo.

=== Run information ===

Scheme:weka.classifiers.functions.LinearRegression -S 0 -R 1.0E-8
Relation: TCC-weka.filters.unsupervised.attribute.Remove-R5,11-12,14,16
Instances: 223
Attributes: 4
id_mes
inicio_periodo
cardapioJantar
comensais_janta
Test mode:evaluate on training data

=== Classifier model (full training set) ===

Linear Regression Model

comensais_janta =

25.0176 * id_mes=3,1,6,7,5,4,8,12,10,11,9 +
20.2969 * inicio_periodo=0 +
-36.0793 * cardapioJantar=5,14,33,88,94,41,52 +
29.4651 * cardapioJantar=14,33,88,94,41,52 +
-19.2237 * cardapioJantar=33,88,94,41,52 +
75.3904
Capítulo 2. Revisão Bibliográfica 23

Tabela 1 – Classificação da correlação de acordo com o valor do coeficiente

VALOR DO COEFICIENTE CLASSIFICAÇÃO DA CORRELAÇÃO


R = 0.00 correlação nula
0.00 < R <= 0.30 correlação fraca
0.30 < R <= 0.60 correlação média
0.60 < R <= 0.90 correlação forte
0.90 < R <= 0.99 correlação fortíssima
R = 1.00 correlação perfeita

Time taken to build model: 0.1 seconds

=== Evaluation on training set ===


=== Summary ===

Correlation coefficient 0.9095


Mean absolute error 15.3579
Root mean squared error 23.0547
Relative absolute error 35.4961 %
Root relative squared error 41.5629 %
Total Number of Instances 191
Ignored Class Unknown Instances 32

O primeiro resultado a ser observado trata-se do modelo de regressão linear con-


forme descrito anteriormente na Seção 2.4.1. O modelo informa diversos pesos e diz para
qual dos atributos este peso vale, esta informação é dada pelo exemplo: 25.0176* 𝑖𝑑𝑚𝑒𝑠
= 3, 1, 6, 7, 5, 4, 8, 12, 10, 11, 9. Neste caso, os pesos são multiplicados por 1 caso o mesmo
atributo da instância pertença ao conjunto informado por ele, e multiplicado por 0 em
caso contrário. Os diversos pesos para os atributos devem ser multiplicados pelo valor de
0 (ausente) ou 1 (presente) e somados entre si. O resultado final é o valor do atributo que
estamos prevendo.
O coeficiente de correlação determina a força do relacionamento entre variáveis
emparelhadas, ou seja, indica até que ponto os valores de uma variável estão relacionados
com os da outra. Seus valores variam de -1 a 1, onde valores negativos indicam correlação
inversamente proporcional e valores positivos indicam correlação diretamente proporcio-
nal. Sua interpretação dentro dos resultados obtidos nesta pesquisa é feita de acordo com
Brito et al (2003) e apresentada na Tabela 1.
Conforme apresentado por Han et al (2011), as métricas abaixo são explicas. O
erro absoluto é representado pela fórmula:

|𝑦𝑖 − 𝑦𝑖′ |, (2.2)

sendo 𝑦𝑖 o valor real conhecido e 𝑦𝑖′ o valor predito. O resultado obtido indica o quão
longe o valor previsto está do valor real conhecido, ou seja, calcula a diferença entre o
valor atual e o valor predito.
Capítulo 2. Revisão Bibliográfica 24

O erro médio absoluto utiliza o erro absoluto ao longo de um conjunto de testes e


os divide por 𝑑, que representa a quantidade de previsões realizadas. O resultado é a taxa
média de erro que a previsão obteve, este valor é calculado a partir da seguinte fórmula:
∑︀𝑑
𝑖=1 |𝑦𝑖 − 𝑦𝑖′ |
(2.3)
𝑑

O erro absoluto relativo se refere ao erro total absoluto, ele sempre existirá quando
a explicação da reta não for completa, ou seja, quando existirem outros fatores que in-
fluenciam o resultado de Y que não foram descritos nas variáveis 𝑋1 , 𝑋2 , ..., 𝑋𝑛 . Quanto
menor este valor for, significa que tem-se uma precisão maior do modelo, uma vez que ele
representa o limite para o desvio padrão da variável dependente. Sua fórmula é dada por:

∑︀𝑑
𝑖=1 |𝑦𝑖 − 𝑦𝑖′ |
∑︀𝑑 (2.4)
𝑖=1 |𝑦𝑖 − 𝑦
¯𝑖 |

O erro quadrado é representado pela fórmula:

(𝑦𝑖 − 𝑦𝑖′ )2 (2.5)

e assim como no erro absoluto 𝑦𝑖 é o valor real conhecido e 𝑦𝑖′ é o valor predito. A
fórmula que representa a média do erro quadrado é:
∑︀𝑑
𝑖=1 (𝑦𝑖 − 𝑦𝑖′ )2
(2.6)
𝑑

e a fórmula do erro quadrado relativo é:


∑︀𝑑
𝑖=1 (𝑦𝑖 − 𝑦𝑖′ )2
∑︀𝑑 (2.7)
𝑖=1 (𝑦𝑖 − 𝑦
¯𝑖 )2

A diferença entre as medidas quadradas e absolutas é a aplicação do método dos


quadrados mínimos nas medidas quadradas, este método é uma forma de otimização
matemática que busca ajustar um conjunto de dados minimizando a soma dos quadrados
das diferenças entre o valor predito e os valores reais conhecidos.

2.7 AMBIENTE DE DESENVOLVIMENTO


Para construção deste trabalho foram utilizados a ferramenta Weka, a linguagem
de programação Java, o ambiente de desenvolvimento NetBeans e o LibreOffice para a
organização inicial dos dados e contrução dos gráficos.
O Java foi utilizado como a linguagem de programação por ser uma linguagem
disponibilizada gratuitamente, oferecer portabilidade e devido a sua grande utilização. É
uma linguagem de alto nível desenvolvida pela Sun Microsystems na década de 90. Suas
Capítulo 2. Revisão Bibliográfica 25

principais características são a portabilidade, orientação a objetos, familiaridade com lin-


guagens anteriores, fácil distribuição e segurança. A Oracle (2015) ao lançar a linguagem
Java, lançou também o pacote JDK (Java Developer’s Kit), que possui alguns recursos
como o compilador de Javac, a Máquina Virtual Java (JVM) e bibliotecas de funções
(API). Sua arquitetura permite criar códigos portáveis que podem ser executados em
qualquer sistema operacional graças a uma camada de software chamada de Máquina
Virtual Java (JVM). A plataforma Java SE (Standard Edition), permite desenvolver e
implementar aplicativos java em desktops e servidores, bem como ambientes exigentes
incorporados de hoje. Java oferece uma interface rica com o usuário, performance, versa-
tilidade, portabilidade e segurança que as aplicações de hoje exigem.
O NetBeans v. 8.0 foi utilizado como plataforma de desenvolvimento por oferecer
suporte ao Java e ser disponibilizada gratuitamente. Segundo informações contidas nos
sites Academy (2015) e Netbeans (2015) NetBeans é um IDE de código aberto, 100%
Java e possui vários módulos de expansão. É um conjunto de bibliotecas, módulos e APIs
formando um ambiente integrado de desenvolvimento visual, possibilita ao desenvolvedor
criar aplicações desktop, web e móveis com Java, bem como com o C / C ++, PHP,
JavaScript e Groovy, dá suporte à XML, HTML,CSS, JSTL, Servelets e outros. Alguns
recursos oferecidos por ele são: compilador, debugador, auto-completar avançado, depura-
dor de erros, ferramentas para desenvolvimento web, indentação automática, refratoração
básica de código Java e suporte a banco de dados.
O LibreOffice é um software livre de código aberto. Informações do site LibreOffice
(2015) dizem que ele é um pacote de programas para escritório que oferece uma interface
limpa e diversos componentes para criar e editar textos, planilhas, apresentações, dese-
nhos, fluxogramas, banco de dados e equações. Possui compatibilidade com os principais
formatos de documentos utilizados hoje em dia. Esta ferramenta foi escolhida devido a sua
disponibilização junto a distribuição Linux utilizada, além de oferecer recursos suficientes
para o armazenamento temporários dos dados entre a coleta e a aplicação da Mineração
de Dados. Possui também a possibilidade de criação de gráficos utilizados para melhorar
a apresentação das informações contidas nos gráficos.
26

3 TRABALHOS RELACIONADOS

A falta de qualidade, de armazenamento correto dos alimentos, a rejeição do car-


dápio e a falta do planejamento do número de adequados de refeições causam desperdício
de alimentos não utilizados e alimentos já preparados nas Unidades de Alimentação e
Nutrição. Ricarte et al (2008) avaliaram o desperdício observando condição de armazena-
mento, conservação e pré-preparo de hortaliças e frutas, reutilização de sobras limpas e
resto de ingestão das refeições. Foram avaliados os índices de sobras limpas (ISL) - peso
das sobras / peso alimentação preparada, em percentual; índice de resto ingestão (IR) –
peso da refeição rejeitada / peso refeição distribuída, em percentual, foram pesadas 10%
das bandejas e multiplicado o peso médio por bandeja pelo número de clientes para saber
a quantidade distribuída. O peso das refeições distribuídas e não consumidas foi calculado
pesando o rejeito das bandejas excluindo o material não comestível (cascas, ossos e etc).
Os resultados foram apresentados em tabelas, o alto índice de desperdício foi considerado
observando a baixa aceitação da preparação, cardápio repetitivo, falha no planejamento
da quantidade de refeições e falta de integração com os clientes. O presente trabalho por
sua vez, pretende oferecer uma maneira de lidar com o índice de desperdício através da
predição, alguns fatores como aceitação do cardápio e falta de planejamento da quanti-
dade de refeições são fatores que foram observados dentro da base de dados através de
atributos como cardápio e sobra do jantar e sobra do almoço.
O serviço de alimentação foi avaliado por Lippi1 et al (2004) com relação a existên-
cia de um sistema de qualidade, condições de infra-estrutura, higiênico-sanitárias, sócio-
econômicas e demográficas dos funcionários e comportamento dos manipuladores de ali-
mentos. A avaliação foi feita através de observações com fichas de observação previamente
elaboradas e aplicação de questionário e entrevistas com os funcionários. A UAN (unidade
de alimentação e nutrição) possuía como sistema de qualidade os 5s e Boas Práticas de
Fabricação de Alimentos, não possuía Análise de Perigo e Pontos Críticos de Controle, o
local possuía estrutura adequada com separações entre entrega/saída de alimentos, arma-
zenamento, preparação, distribuição e limpeza, quantidade suficiente de equipamentos,
porém a infra-estrutura assim como os equipamentos não estavam em boas condições, os
funcionários não respeitavam técnicas de segurança dos alimentos se opondo a agirem de
acordo com treinamentos recebidos. Diferentemente dessas abordagens, que só avaliam os
fatores que levam ao desperdício, é proposto no presente trabalho uma maneira de predi-
zer o número de comensais e desta maneira melhorar a qualidade dos serviços prestados
pelo RU.
Rocha et al (2011) criaram um sistema de previsão de refeições baseado em redes
neurais artificiais multicamadas e backpropagation como método de treinamento. Eles
Capítulo 3. Trabalhos Relacionados 27

selecionaram como variáveis do problema: nível de aceitação das refeições (foi feita uma
pesquisa com os comensais sobre o cardápio e normalizadas entre 0 e 1), média dos últimos
30 dias, dia da semana, número de refeições do dia anterior, mês, existência de feriado no
dia anterior ou posterior e média dos últimos 5 dias. O treinamento da base de dados foi
feita no Matlab. O percentual de erro geral da RNA foi de 9,5%, para diminuir este número
uma opção é a utilização de outras variáveis relevantes, porém algumas delas são difíceis
de se obter por serem atípicas, como “eventos”. A variação do resultado foi de 35 refeições
para mais ou para menos, apesar da variação entre os dias este método se mostrou mais
eficaz que o utilizado anteriormente de média simples. Esta pesquisa também procura
criar um modelo de previsão da quantidade de refeições, porém, foi abordado o uso da
regressão linear para atingir este objetivo. Conforme as conclusões obtidas, a utilização
da regressão linear se mostrou mais eficiente uma vez que obteve resultados melhores que
a utilização de Redes Neurais.
Vianna et al (2010) buscaram utilizar a Mineração de Dados para interpretar pa-
drões e gerar conhecimento com relação às características materno-fetais utilizadas na
predição da mortalidade infantil. Foram utilizadas as bases de 3 sistemas de informação
da saúde utilizados no Paraná, o SINASC, SIM e SIMI. Os processos feitos foram: a
integração das bases e normalização dos dados; categorização e definição dos atributos;
limpeza dos dados; durante o processo de Mineração de Dados foram extraídas regras uti-
lizando a ferramenta Weka e o algoritmo de classificação C4.5, que utiliza o conceito de
árvore de decisão, diversos especialistas integrantes dos Comitês de Prevenção da Morta-
lidade Infantil acompanharam o processo para avaliarem se regras geradas pelo algoritmo
condiziam com o conhecimento que a área já possui. Os resultados obtidos demonstraram
que há viabilidade e possibilidade do uso de técnicas de Mineração de Dados no setor da
saúde pública pois permite conhecer o cenário e a eficácia das ações de melhoria. Ao veri-
ficar quais fatores são casuais e como eles influenciam os atributos, pode-se observar novas
características relacionadas a mortalidade infantil, elas podem ser utilizadas na constru-
ção de novas estratégias de ação para a redução de óbitos por favorecer informações que
permitem direcionar a atenção aos menores de idade em situação de risco e diminuir a
porcentagem de mortalidade no Paraná e futuramente em outras localidades. Conforme
o trabalho descrito, a presente pesquisa procura utilizar a Mineração de Dados em outro
setor público, ao gerar conhecimento e encontrar formas de predição, é possível melhorar
os serviços públicos oferecidos para a população e realocar os recursos economizados em
outras áreas.
Por ser um tipo de câncer muito frequente e por ter altas chances de cura quando
diagnosticado precocemente, Holsbach et al (2014) buscaram apresentar um método para
classificar os casos de câncer como malignos ou benignos afim de ajudar os profissionais no
processamento de informações geradas nos exames dos pacientes. Os dados foram obtidos
no Wisconsin Breast Cancer Database, inicialmente os dados foram divididos em porções
Capítulo 3. Trabalhos Relacionados 28

de treinamento e teste, os parâmetros que foram gerados mostravam como as variáveis e


os componentes principais explicavam a variação dos dados, assim cada variável recebeu
um peso e uma taxa de variância, um índice foi criado combinando os pesos e a análise de
componentes principais. A tarefa de classificação era aplicada com a ferramenta k-vizinhos
mais próximos (KVP) e análise discriminante (AD), depois as variáveis com menor índice
de importância eram retiradas até que sobrasse apenas uma, depois de diversos testes um
subconjunto de variáveis se mostrou mais eficiente no cálculo da acurácia e foi utilizado
para classificar as observações da porção de testes. O método proposto foi satisfatório ao
atingir uma acurácia de 97.77% com 5.87 variáveis, utilizando o KVP e 97.07% de acurácia
com o AD usando 5.95 variáveis. Este trabalho serviu de exemplo para encontrar formas
de melhorar a acurácia obtida na classificação, porém, a regressão linear foi utilizada para
a resolução do presente problema.
Com o objetivo de desenvolver uma metodologia para mapeamento digital de solos,
os autores Garin et al (2006) aplicaram técnicas de mineração de dados a descritores de
relevo e a dados de mapas geológico e pedológico preexistentes. Foi criada uma base de da-
dos digitais a partir de cartas topográficas e temáticas. Após a etapa de pré-processamento
dos dados, foi feita a análise onde foram retirados 10% dos dados da matriz, eles foram
submetidos a testes para validação do modelo com base na acurácia geral, de cada unidade
de mapeamento e no índice kappa. O modelo de predição dos solos e a ordenação dos atri-
butos de acordo com o ganho de informação que proporcionavam, foram feitos utilizando
a ferramenta Weka. Podas foram realizadas na árvore a fim de eliminar regras que não
contribuiriam com o modelo gerado, as regras restantes foram transcritas para o SIG Ilwis
através de ferramentas de modelagem cartográfica, possibilitando obter o mapa digital de
solos da folha Dois Córregos. Foi observado que houve um acerto maior quando as regiões
do mapa ocupavam espaços maiores, e também variação nos resultados de acordo com
o balanceamento e as podas, sendo assim o balanceamento de classes pode se adequar à
finalidade do mapa. Após comparação entre o mapa real e o digitalizado, pode-se observar
que o mapeamento digital produz fragmentação elevada dos polígonos de classes de solo
que não existem nos mapas originais, sendo assim motivo de atenção em sua utilização. O
conhecimento extraído neste trabalho foi importante para gerar conhecimentos e formas
de análise quanto à efetividade das predições realizadas.
Com a intenção de ajudar aos usuários na busca pelo conhecimento, o sistema Sis-
RecCol, criado por Garin et al (2006), busca dar apoio à aprendizagem coletiva. Enquanto
os usuários interagem entre si através de um chat, o sistema considera suas características
individuais e oferece através de recomendações vários materiais complementares para au-
xiliarem no aprendizado de acordo com o interesse de cada usuário. O sistema conta com
um módulo de text mining que identifica os assuntos tratados a partir de consultas feitas à
ontologia e os repassa para o módulo de recomendação que analisa a base de perfis e gera
as recomendações para cada usuário da sessão. As recomendações podem ser acessadas
Capítulo 3. Trabalhos Relacionados 29

dentro ou fora do chat. Os assuntos no módulo de text mining são identificados a partir
do método de classificação de textos baseado em técnicas probabilísticas, o algoritmo é
baseado nos algoritmos Rocchio e Bayes. Sendo assim ele avalia a similaridade entre um
texto e um conceito utilizando uma função de similaridade que calcula a distância entre os
itens relacionados às mensagens do site e aos conceitos da ontologia, estes dados possuem
um peso que são multiplicados e somados, este valor é o grau de similaridade existente
entre a mensagem e o assunto. Apenas materiais de assuntos com graus mais elevados são
recomendados aos usuários. Os documentos são agrupados de acordo com algumas carac-
terísticas, como por exemplo, itens de maior acesso durante o último mês, mais acessado
por determinados usuários ou apenas documentos que possuem o assunto discutido no
site. O método produz uma classificação graduada, onde mais de um assunto pode ser
identificado em uma mensagem, porém com graus diferentes. O sistema oferece resultados
melhores quanto à relevância de assuntos mais gerais do que para aqueles específicos. Este
trabalho apresenta outras formas de adquirir conhecimento em bases de dados através da
utilização de métodos de classificação baseadas em técnicas probabilísticas.
30

4 DESENVOLVIMENTO

Existem diversos conceitos sobre quais são as etapas do processo de Mineração de


Dados, porém a utilizada no presente trabalho é descrita como “o processo de Extração
do Conhecimento inicia-se com o entendimento do domínio da aplicação, considerando
aspectos como os objetivos dessa aplicação e as fontes de dados (Base de Dados da qual
se pretende extrair conhecimento). Em seguida, é realizada uma seleção de dados a partir
dessas fontes, de acordo com os objetivos do processo. Os conjuntos de dados resultantes
dessa seleção são então pré-processados, ou seja, recebem um tratamento para poderem
ser submetidos aos métodos e ferramentas na etapa de extração de padrões” Rezende
(2005).
Seguindo esta metodologia, os passos de desenvolvimento foram: identificação do
problema, pré-processamento e pós-processamento.

4.1 IDENTIFICAÇÃO DO PROBLEMA


Como dito anteriormente, o problema consiste em criar e verificar a base de dados
do Restaurante Universitário do Campus de João Monlevade. Através da MD pretende-
se entrar com dados novos, referentes ao almoço e/ou jantar, para identificar o número
correto de usuários que serão esperados para cada refeição. É importante atingir uma
porcentagem aceitável de acerto para conseguir resolver os problemas de desperdício e
falta de alimentos.
Inicialmente, foram analisadas, juntamente com a Administradora do Restaurante,
as variáveis que influenciavam separadamente no aumento e diminuição de comensais
presentes para as refeições, foi informado que a falta de refeições ocorre principalmente
no almoço e que a sobra de refeições ocorre principalmente no jantar. Como fator de
diminuição do consumo foram consideradas as seguintes variáveis:

∙ alunos com aulas somente nos segundos horários;

∙ disciplinas sem professores;

∙ dias frios ou chuvosos;

∙ alunos com aulas em turnos seguidos.

Algumas variáveis necessitavam de aviso prévio para a Administração do Restau-


rante e por não ser sempre possível realizar estes avisos foram descartadas, são elas:
Capítulo 4. Desenvolvimento 31

∙ cancelamento de aulas;

∙ reuniões no espaço da cantina;

∙ eventos para a comunidade acadêmica dentro e fora do Campus;

∙ festas em repúblicas ou na cidade de João Monlevade;

∙ visita de funcionários de Ouro Preto;

∙ funcionamento normal dos ônibus que levam os alunos até o Campus.

Após análises junto à administração do restaurante, foram definidas para compor


a base de dados as seguintes variáveis e suas descrições:

∙ ano, indica o ano em que o dado foi coletado;

∙ mês, indica o mês em que o dado foi coletado;

∙ dia do mês, indica o dia do mês em que o dado foi coletado;

∙ dia da semana, indica o dia da semana em que o dado foi coletado;

∙ sobrou almoço/jantar, indica a quantidade de alimento que sobrou no dia em que o


dado foi coletado;

∙ véspera de feriado, indica se o dia em que o dado foi coletado é véspera de algum
feriado;

∙ pós feriado, indica se o dia em que o dado foi coletado é depois de algum feriado;

∙ fim de período, indica se o dia em que o dado foi coletado corresponde aos 15 últimos
dias do período;

∙ inicio de período, indica se o dia em que o dado foi coletado corresponde aos 15
primeiros dias do período;

∙ dia de matricula, indica se no dia em que o dado foi coletado houve matricula de
calouros no Campus de João Monlevade;

∙ aulas extras no período da manhã, indica se existe alguma turma fazendo aula no
período da manhã;

∙ semana de exame especial, indica se o dia em que o dado foi coletado pertence a
semana do exame especial;

∙ cardápio do almoço e do jantar, indica qual é o cardápio no dia em que o dado foi
coletado.
Capítulo 4. Desenvolvimento 32

A coleta dos dados teve inicio no mês de junho de 2014. Inicialmente foram co-
letados os dados anteriores a este período, depois, no inicio de cada mês os dados do
mês anterior foram repassados pela administração do restaurante e adicionados aos ou-
tros dados coletados de diversas outras fontes, como site da UFOP e nas secretarias dos
departamentos e colegiados.

4.2 PRÉ-PROCESSAMENTO
Após a coleta, todos os dados foram armazenados em uma planilha do LibreOffice,
lá eles foram transformados em dados numéricos.
Variáveis com valores sim e não receberam 1 em caso positivo e 0 em caso negativo.
O cardápio foi descrito em um arquivo separado e depois enumerado, dessa forma foi
repassado para a planilha apenas o número referente ao cardápio descrito no arquivo de
texto. A quantidade de comensais no almoço e no jantar foi discretizada substituindo
os valores inteiros por atributos discretos, o intervalo considerado foi de 10 números, os
limites inferior e superior foram definidos de acordo com a menor e maior quantidade de
comensais em uma refeição, sendo eles 0 e 400.
Porém, após a decisão de utilizar a tarefa de regressão, os dados relativos à quan-
tidade de comensais no almoço e no jantar foi novamente inserida na tabela, desta vez
com os valores reais que possuíam. A normalização dos dados se manteve em valores
pertencentes ao grupo 0 e 1 (verdadeiro ou falso) e enumerados no caso dos cardápios.
O Campus de João Monlevade contou com um aumento considerável do número
de alunos durante o período em que os dados foram coletados, os cursos de Engenharia
Elétrica e de Engenharia de Computação foram inaugurados no segundo semestre de 2009,
com isso o Campus passou a receber 80 novos alunos a cada semestre até o primeiro período
de 2014, quando completaram os 10 períodos completos dos cursos. Com o crescimento da
comunidade acadêmica o número de comensais também foi crescendo, por este motivo, a
base de dados foi sub-dividida em anos a fim de encontrar padrões no cenário de acréscimo
de 160 alunos por ano. A base de dados poderia ser dividida também por períodos,
utilizando o cenário de acréscimo de alunos semestral. Porém a quantidade de dados seria
ainda menor e poderia comprometer os resultados.
A base de dados também foi sub-dividida de acordo com a mudança no cardápio.
Houveram diversas mudanças desde a inauguração até o fim de 2014 para se adequar as
preferências e exigências dos comensais, principalmente nos dois primeiros anos de funci-
onamento em 2010 e 2011, porém, como os dados coletados são a partir de 2011, podemos
observar que as bases do primeiro, segundo e terceiro cardápio foram criadas com da-
dos deste ano, mostrando a constante necessidade de trocas até chegar a um cardápio
satisfatório. As refeições a serem substituídas foram definidas pela queda do número de
Capítulo 4. Desenvolvimento 33

comensais no dia em que elas eram servidas e através de pesquisas de satisfação que foram
feitas a fim de melhorar a qualidade do atendimento. É preciso salientar também que hou-
veram duas empresas responsáveis pelo fornecimento da alimentação para o Restaurante,
o que contribui significativamente na aceitação da comunidade acadêmica pelas refeições
oferecidas. De acordo com estas informações, a cada mudança de cardápio uma nova base
de dados foi gerada, resultando em 4 bases diferentes.
Desta forma além da base de dados Principal, que contém todos os registros do
restaurante, foram criadas as bases 2011, 2012, 2013 e 2014, referentes aos registros sepa-
rados por ano, e as bases Um, Dois, Três e Quatro referentes às mudanças do cardápio,
totalizando 9 bases diferentes.

4.3 EXTRAÇÃO DE PADRÕES


Esta etapa contém uma série de passos a serem seguidos, nela é definida qual
tarefa de mineração de dados deve ser empregada dentro do domínio do problema atual.
Conforme já foi dito, pode-se empregar diversas tarefas em um mesmo conjunto de dados,
podendo escolher mais de uma tarefa. Cada tarefa possui vários algoritmos capazes de
realizá-la, desta forma, deve-se escolher também qual o algoritmo será utilizado. Por fim,
a extração propriamente dita é feita em cima dos dados conforme apresentado nas seções
a seguir.

4.3.1 Escolha da tarefa


Rezende (2005) agrupa as tarefas entre atividades descritivas e preditivas. As ati-
vidades descritivas procuram identificar comportamentos similares no conjunto de dados
sem que essa similaridade esteja descrita de forma clara, algumas tarefas que realizam
estas atividades são agrupamento, regras de associação e sumarização. Atividades predi-
tivas procuram identificar novos resultados através de exemplos já conhecidos, algumas
tarefas que realizam estas atividades são a classificação e a regressão.
Como a análise do banco de dados referente ao restaurante tem como objetivo
prever a quantidade de comensais que comparecerão a uma refeição, ficou definido inici-
almente que a extração se daria por meio da classificação. Posteriormente, analisando a
configuração dos dados, percebeu-se a possibilidade de aplicar a regressão, já que os da-
dos poderiam ser representados tanto na forma discreta quanto na forma contínua. Sendo
assim, ficou definido a tentativa de utilizar as duas tarefas em cima da base de dados.
Capítulo 4. Desenvolvimento 34

4.3.2 Escolha dos algoritmos


O algoritmo escolhido para a realizar a classificação foi o KNN. Ele se encontra
entre os principais algoritmos deste tipo de tarefa. A função de classificação é feita através
da verificação da distância entre o exemplo novo e seus vizinhos. Dois fatores que inter-
ferem diretamente na qualidade da classificação deste algoritmo é o tamanho da base de
dados, que deve ser o maior possível, e a atribuição correta para o valor de 𝑘, que diz
respeito à quantidade de vizinhos mais próximos. O teste será comparado com os vizinhos
escolhidos pelo algoritmo e classificado de acordo a classe que mais aparece dentre seus
vizinhos.
O algoritmo utilizado inicialmente para a tarefa de regressão foi o de Regressão
Linear. Este modelo verifica a relação entre as variáveis e retorna um modelo matemático
que representa o valor de uma variável a ser predita de acordo com as variáveis com as
quais está relacionada.
Em um segundo momento, foi utilizado o algoritmo SMOreg que faz uma regressão
com apoio de kernels polinomiais e vetor. O algoritmo transforma os atributos de cada
instância em atributos binários e depois normaliza os dados, sua saída utiliza estes valores
normalizados e atribui um peso a cada atributo, fazendo então o somatório para prever
seu valor.
O intuito dos testes foi encontrar quais variáveis, dentre as descritas pela admi-
nistração do RU, influenciam a presença e/ou ausência dos comensais durante o período
do almoço e do jantar e quais dessas variáveis compõem o modelo de Regressão Linear
responsável por predizer com maior nível de precisão a quantidade de comensais previstas
para comparecerem em cada refeição.
Para aprofundar o conhecimento sobre o problema, foi desenvolvido o algoritmo
KNN. O código implementado conta com as seguintes classes: BaseDeTreinamento, nela
são implementados os métodos responsáveis pela leitura do arquivo que contém a base
de dados, método para transformar a base de dados em uma estrutura de ArrayList,
utilizada durante todo processamento dos dados e os métodos responsáveis por fazer a
normalização dos dados, fase descrita como pré-processamento dos dados.
Foram implementados os métodos responsáveis pela tarefa de classificação dos
dados, os métodos que implementam partes do algoritmo original foram duplicados no
código por causa da separação de testes entre almoço e jantar, onde cada um possui suas
variáveis próprias, os métodos principais a serem citados são o que calcula a distância
euclediana entre o teste e todos os dados da base e o que seleciona os k-vizinhos mais
próximos, sendo eles, calculaDistancia() e verificaVizinhos(), respectivamente.
A interface gráfica conta com uma tela para a inserção dos dados, onde o usuário
deverá informar o valor do 𝑘, os valores dos atributos e por fim, escolher se o teste
Capítulo 4. Desenvolvimento 35

pertence ao almoço ou ao jantar. O código implementado foi pensado para a utilização da


Administração do RU e por isso possui entrada para um teste de cada vez. Para agilizar os
testes a ferramenta Weka foi utilizada na tarefa de classificação, já que permite verificar
um conjunto grande de dados como teste de uma vez só. A ferramenta foi utilizada também
para aplicação dos algoritmos de regressão.
36

5 ANÁLISE DOS DADOS

Durante o pré-processamento dos dados, após a base de dados ser concluída, foi
possível fazer uma análise estatística dos dados através de representações gráficas. Foi
utilizada para tais representações a Base Completa, sendo possível ver a disposição de
alguns atributos com relação à frequência com que aparecem entre os dados. A Base
Completa conta com 755 registros coletados entre os anos de 2011 a 2014.
No diagrama da Figura 2, pode-se verificar que em aproximadamente 65% dos dias
o número de refeições servidas diariamente no almoço esteve dentro do intervalo de 165 a
315. Pode-se ressaltar que as maiores ocorrências de refeições servidas encontra-se entre
215 a 240.

Figura 2 – Histórico das refeições servidas no almoço - Fonte: Desenvolvido pela autora

No diagrama da Figura 3, pode-se verificar que em aproximadamente 65% dos dias


o número de refeições servidas diariamente no jantar esteve dentro do intervalo de 88 a
263. Podemos ressaltar que as maiores ocorrências de refeições servidas encontra-se entre
213 a 238.
Capítulo 5. Análise dos dados 37

Figura 3 – Histórico das refeições servidas no jantar - Fonte: Desenvolvido pela autora

Ao analisar os dois diagramas, pode-se observar que o restaurante recebe números


próximos de comensais no almoço e no jantar no intervalo de maior ocorrência, sendo o de
215 a 240 no almoço e 213 a 238 no jantar. Porém, a variação da quantidade de comensais
recebida no restaurante durante o almoço é significativamente maior que a recebida no
jantar.
No diagrama da Figura 4, pode-se verificar que em aproximadamente 70% dos dias
sobram entre 0 e 40 refeições no almoço.

Figura 4 – Histórico das refeições que sobraram no almoço - Fonte: Desenvolvido pela autora

No diagrama da Figura 5, pode-se verificar que em aproximadamente 70% dos dias


sobram entre 0 e 80 refeições no jantar.
Capítulo 5. Análise dos dados 38

Figura 5 – Histórico das refeições que sobraram no jantar - Fonte: Desenvolvido pela autora

Ao analisar os dois diagramas, pode-se observar que na maioria das vezes o número
de refeições que sobra no jantar é o dobro do que sobra no almoço. Considerando que o
restaurante recebe no jantar menos comensais que no almoço, podemos verificar que há
uma aceitação menor das refeições servidas jantar, onde ocorre o maior desperdício de
alimentos.
No diagrama da Figura 6, pode-se verificar que em aproximadamente 55% dos dias
o número de refeições que faltam no almoço varia entre 5 a 20 refeições, não é um número
tão alto e o restaurante consegue na maioria das vezes mandar a quantidade de refeições
que faltam, o único problema é o tempo de espera e em algumas vezes a mudança do
cardápio.

Figura 6 – Histórico das refeições que faltaram no almoço - Fonte: Desenvolvido pela autora

No diagrama da Figura 7, pode-se verificar que em aproximadamente 50% dos dias


o número de refeições que faltam no jantar varia entre 0 e 20 refeições. O maior problema
neste caso, além dos mesmos citados no almoço, é que o horário de funcionamento do
restaurante no jantar é próximo ao horário das aulas, limitando algumas vezes que os
comensais possam esperar a reposição das refeições.
Capítulo 5. Análise dos dados 39

Figura 7 – Histórico das refeições que sobraram no jantar - Fonte: Desenvolvido pela autora
40

6 EXPERIMENTOS E ANÁLISES

A escolha do método de previsão foi feita mediante a análise de uma medida de


erro para definir qual dos modelos encontrados representa melhor os resultados esperados.
Na realização de previsões, vários modelos podem ser aplicados, o mais apropriado é
aquele cujo as medidas de erro são menores com relação aos demais. Sendo assim, foram
realizados diversos experimentos cujos resultados serão mostrados nesta seção. O modelo
com melhor resultado será apresentado e analisado posteriormente.
Os resultados de classificação apresentados utilizando o software construído para
o presente trabalho ofereceram apenas 12% de acerto. Inicialmente, alguns dados foram
inseridos no programa, a saída foi comparada com o resultado real de comensais e calcu-
lado a margem de acertos. Utilizando a ferramenta Weka, a porcentagem de acertos subiu
apenas para 15%. Devido a pouca eficiência na classificação e a determinação de que a
tarefa de regressão estava mais adequada ao problema, estes resultados foram descartados,
assim como a utilização da tarefa de classificação.
A tarefa utilizada para a extração de padrões, como dito anteriormente, foi a
função de Regressão Linear. Ela foi escolhida com base na observação da base de dados que
continha atributos contínuos e também por sua eficácia em predições. Buscou-se através
da sua utilização, verificar se havia a possibilidade de prever o número de comensais dada
a entrada de atributos que caracterizavam o dia e a refeição, após a análise de acordo com
o histórico presente na base de dados.
A saída na aplicação da regressão linear é representada pelo modelo de regressão
linear, coeficiente de correlação, erro médio absoluto, raiz do erro médio quadrático, erro
absoluto relativo, raiz do erro relativo ao quadrado, conforme mostrado na Seção 2.5.
Dentre as saídas do Weka citadas, apenas o coeficiente de correlação (R) e a média
de erro absoluto (MEA) serão consideradas como medidas de análise para este trabalho.
O coeficiente de correlação foi escolhido por ser o parâmtro mais utilizado na maioria
dos trabalhos relacionados. Ele avalia o grau de relação entre os atributos escolhidos
para descrever o modelo real. O erro médio absoluto define a qualidade das equações
matemáticas geradas nos testes.
Utilizamos também o algoritmo SVM para regressão na base de dados que obteve
melhores resultados usando o algoritmo de Regressão Linear. Ele foi escolhido por se
adaptar à base de dados de acordo com o formato dos atributos. Outra vantagem do
uso do SVM é que ao implementar uma máquina de vetor de suporte para regressão, ele
realiza otimização através da programação quadrática e normaliza os dados, o resultado
é um modelo de regressão de vetor de suporte com valores que minimizam a quantidade
Capítulo 6. Experimentos e Análises 41

de erros.

6.1 EXPERIMENTOS
Inicialmente os testes foram feitos utilizando apenas os atributos descritos na Seção
4 e separados entre as 9 bases de dados descritas anteriormente. O cardápio servido pelo
restaurante se manteve estável durante o ano de 2014, por isso a Base de 2014 sofreu
menos variação em seus dados. Outro motivo para que a Base de 2014 fosse a escolhida
para a aplicação da MD, é o fato de que a quantidade de alunos que frequentam o Campus,
vinha aumentando desde 2009 e se normalizou no segundo semestre de 2014. Deste modo,
esta base é a que melhor representa o Campus no cenário atual e foi utilizada para a
realização dos testes.
Todos os testes feitos foram divididos de acordo com o horário de funcionamento
do restaurante separadamente, ou seja, almoço e jantar. A divisão da base de dados
realizada pela Weka foi a Use training set. Ela utiliza o próprio conjunto de treinamento
para realizar os testes. Os parâmetros utilizados nos testes foram os default da própria
Weka. Nesta Seção os testes são explicados em tabelas separadamente, porém, na Tabela
14 que encontra-se no Apêndice A é possível ter uma visão geral dos testes.
De todos os atributos mencionados como possíveis influências sobre a presença ou
ausência de comensais no restaurante, foi possível realizar a coleta dos seguintes: ano,
mês, dia da semana, sobra do almoço, sobra do jantar, pré feriado, pós feriado, fim de
período, inicio de período, dia de matricula, exame especial, cardápio do almoço e car-
dápio do jantar. O teste que continha essas variáveis separadas entre almoço e jantar foi
denominado Teste 1. A correlação do almoço na Tabela 2 foi classificada como forte e a
correlação do jantar é classificada como fortíssima, este resultado indica que os atributos
iniciais escolhidos para descrever o problema do RU apresentam grande relação entre si
e entre o atributo que pretende-se prever. Apesar de sozinhos não serem capazes de mo-
delar o problema como um todo, estes atributos indicam que as observações feitas pela
administração do RU estão corretas. Porém, ainda há necessidade de encontrar outros
atributos capazes de caracterizar a rotina dos comensais.

Tabela 2 – Resultado do Teste 1 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0,8254 31.1194 0.9095 15.3579

Posteriormente foi acrescentado nas bases os atributos referentes às reuniões de


todos os colegiados, departamentos e os Núcleos Docentes Estruturantes. As reuniões
feitas durante a manhã até às 14:00 horas foram classificadas como reuniões do almoço,
as que aconteceram após às 14:00 horas foram consideradas como reuniões do jantar. O
Capítulo 6. Experimentos e Análises 42

teste com o acréscimo das reuniões na Base 2014 foi denominado Teste 2 e seus resultados
podem ser vistos na Tabela 3. Podemos observar que os resultados são iguais aos do Teste
1, pois pelo fato de que cada um dos 4 departamentos do ICEA possui em média 20
funcionários entre professores e secretários presentes em cada reunião. Este número não
traz grandes alterações no número de comensais visto que nem todos fazem suas refeições
no restaurante. Outra explicação está na quantidade de reuniões, geralmente são duas por
mês e em dias diferentes para cada departamento.

Tabela 3 – Resultado do Teste 2 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.8254 31.1194 0.9095 15.3579

Após uma análise no artigo Rocha et al (2011) e sabendo que a administração do


RU observa a semana anterior para prever a quantidade de comensais, foram coletados os
mesmos atributos que o autor utilizou em sua pesquisa para realizar o teste denominado
Teste 3, sendo eles: média dos últimos 30 dias, dia da semana, número de refeições servidas
no dia anterior, mês, pós feriado, média dos últimos 5 dias e pré feriado. Todos os atributos
foram coletados a partir dos dados contidos na base de dados, o único atributo que não
era possível obter através da base de dados e que foi utilizada no artigo foi o nível de
aceitação de cada cardápio, sendo assim, este atributo não foi utilizado.
Os resultados deste teste estão apresentados na Tabela 4. Podemos perceber que
os coeficientes de correlação diminuíram, porém, ambos são classificadas como fortes,
mostrando que há forte relação entre as variáveis utilizadas. Já o valor médio de erros
do almoço diminuiu, mostrando que quando a base possui dados estatísticos anteriores,
é possível tirar deles informações que ajudam na previsão do almoço. Outro fato a ser
observado na base é que o almoço segue padrões maiores de frequência que o jantar, visto
que o resultado de erros médios do jantar foram piores que os alcançados anteriormente,
sendo assim, os dados estatísticos se mostraram eficientes para o almoço, mas não para o
jantar.

Tabela 4 – Resultado do Teste 3 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.7682 25.7995 0.82 31.4826

Os atributos escolhidos inicialmente não se mostraram eficientes, por isso primei-


ramente as variáveis ano, mês e dia do mês foram excluídas da base utilizada no Teste 4
já que não influenciam na escolha do comensal entre ir ou não no restaurante. A Tabela
5 apresenta que as correlações do almoço e do jantar aumentam. Assim os valores de erro
médio ficaram melhores que anteriormente, provando que variáveis independentes entre
si podem estar relacionadas à variável que se deseja prever.
Capítulo 6. Experimentos e Análises 43

Tabela 5 – Resultado do Teste 4 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.8107 24.9581 0.9317 15.4262

Apesar da Weka apresentar uma mensagem junto aos resultados sobre a quantidade
de instâncias ignoradas devido às classes desconhecidas, foi realizada uma limpeza manual
dos dados, onde diversos dados incompletos foram retirados da base a fim de verificar se
a melhoria na qualidade dos dados acarretaria em resultados melhores, este teste foi
denominado Teste 5. Na Tabela 6 os resultados se mostraram melhores para o almoço.
Os coeficientes de correlação apresentaram queda nos valores, porém, apenas no jantar
mudou a sua classificação de correlação fortíssima para forte. A classificação do almoço se
manteve como forte. Em contra partida a constante melhoria dos resultados para o almoço,
observa-se que o teste apresentado na Tabela 3 é o que apresenta melhor resultado para
o jantar.

Tabela 6 – Resultado do Teste 5 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.7978 24.1478 0.8945 17.3161

Para a realização do Teste 6 foi feito um pré-processamento dos dados em relação


aos cardápios, refeições semelhantes com o mesmo alimento e mesmo tipo de preparação
foram agrupados seguindo a ideia de que quem rejeita um cardápio irá rejeitar cardápios
semelhantes. Os resultados da Tabela 7 apresentaram coeficiente de correlação fortes no
almoço e no jantar. A média de erro também sofreu melhorias no jantar ao utilizar o novo
agrupamento do cardápio, onde refeições similares foram unificadas. Porém, o mesmo não
pode ser observado para o almoço já que a média aumentou um pouco com relação ao
teste anterior.

Tabela 7 – Resultado do Teste 6 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.8973 24.2401 0.8983 16.2653

No teste 7, apresentado na Tabela 8, as variáveis de sobras foram retiradas para


o almoço e para o jantar, já que se referem aos erros de previsão da administração do
restaurante e dentro do modelo de previsão escolhido terá sempre os valores de 0 a fim de
representar a quantidade exata de comensais sem sobras ou faltas, já que estes atributos
recebem valores positivos em caso de sobras e negativo em caso de faltas. Nos resultados a
correlação continua alta e os valores da media do erro sofreram reduções em seus valores.
Este modelo apresentou ser o mais viável para se trabalhar, uma vez que oferece bons
Capítulo 6. Experimentos e Análises 44

resultados para o almoço e jantar. Apesar do acréscimo na média de erros do almoço, ele
oferece bons resultados utilizando uma única base de dados com atributos diferentes.

Tabela 8 – Resultado do Teste 7 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.8172 23.5495 0.9277 15.5625

A base da Tabela 9 recebeu um atributo chamado época, que procura caracterizar


os períodos atípicos que ocorreram na UFOP após a implantação do RU, como a copa
do mundo de futebol, em que frequentemente não era servido o jantar ou as aulas eram
canceladas. Além disso, é possível verificar os padrões quando não há eventos atípicos e
o padrão nas férias, onde apenas os funcionários frequentam o restaurante. A correlação
apresentada nos resultados foram fortíssimas, indicando que este atributo contribui para
a caracterização do modelo real. Porém, os resultados da média de erro aumentaram,
mostrando que em alguns casos este atributo não contribui como deveria para a criação
do modelo a ser utilizado nas previsões, uma vez que estes períodos atípicos ocorrem com
pouca frequência.

Tabela 9 – Resultado do Teste 8 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.9035 23.8602 0.9068 16.0528

O atributo festas foi acrescentado na base de dados da Tabela 10 e se mostrou


muito eficiente na previsão do almoço e pouco eficiente na previsão do jantar, conforme
era esperado. Algumas possíveis explicações são que as festas geralmente acontecem aos
sábados, quintas e sextas, o horário de inicio é cada vez mais tarde, não apresentando a
necessidade dos alunos faltarem às aulas para frequentá-las, porém podem influenciar no
almoço do dia seguinte devido a alguns hábitos dos alunos como beber e dormir tarde
após as festas.

Tabela 10 – Resultado do Teste 9 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.9179 21.1982 0.9068 16.0528

Como os resultados apresentados pela inserção de mais um atributo não apre-


sentaram grandes melhorias, principalmente no jantar, houve a necessidade de rever a
base de dados afim de encontrar atributos que estariam comprometendo os resultados da
regressão linear.
Para tentar resolver esta questão foi aplicada a Seleção de Atributos da Weka,
que encontra subconjuntos de atributos que são mais relevantes entre todos da base de
Capítulo 6. Experimentos e Análises 45

forma automática. O avaliador de atributos utilizado foi o CfsSubsetEval, que avalia os


atributos encontrando subconjuntos que se correlacionam altamente com o valor da classe,
mas que possuem baixa correlação entre si. O método de busca escolhido para ser usado
juntamente com o avaliador de atributos foi o BestFirst. Ele percorre os subconjuntos
de atributos e escolhe a primeira melhor estratégia de busca para selecionar os atributos
mais relevantes.
Os atributos identificados como mais relevantes foram para o almoço foram:

∙ mês;

∙ dia do mês;

∙ dia da semana;

∙ sobra do jantar

∙ véspera de feriado;

∙ fim de período;

∙ aula extra de manhã;

∙ cardápio do almoço;

∙ cardápio do jantar;

∙ reuniões do almoço;

∙ reuniões do jantar;

∙ época;

∙ comensais do almoço;

Para o jantar, os atributos relevantes foram:

∙ mês;

∙ sobra do jantar;

∙ véspera de feriado;

∙ fim de período;

∙ aula extra de manhã;

∙ cardápio do almoço;
Capítulo 6. Experimentos e Análises 46

∙ cardápio do jantar;

∙ reuniões do almoço;

∙ reuniões do jantar;

∙ época;

∙ comensais do almoço;

∙ comensais do jantar.

Os atributos apresentados foram utilizados na aplicação do Teste 10. A Tabela 11


mostra que a quantidade de erros médios caiu consideravelmente e a correlação foi ainda
maior que as obtidas nos testes anteriores.

Tabela 11 – Resultado do Teste 10 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.9232 15.2352 0.9431 12.9997

A partir do pressuposto de que os atributos do almoço e do jantar fazem parte de


um mesmo dia, o Teste 11 foi realizado utilizando todos os atributos da base de dados
para o jantar, para o teste do almoço foram retirados apenas o número de comensais e
o cardápio do jantar por serem informações que não estão disponíveis para os comensais
e administradores do restaurante antes do jantar. O resultado apresentado na Tabela 12
para o almoço apresentou pequena piora, porém o resultado do jantar mostrou que os
atributos do almoço também influenciam o jantar.

Tabela 12 – Resultado do Teste 11 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.9178 15.8903 0.9617 11.5681

O algoritmo de regressão linear múltipla se mostrou eficiente para estimar o número


de comensais esperados em cada refeição do RU, porém modelar perfeitamente um sistema
completo é complexo e exige que a quantidade de atributos usados no modelo seja o mais
próximo possível do sistema real. Normalmente, os problemas apresentam estruturas não-
lineares e exigem a utilização de algoritmos que são focados em estimar coeficientes em
sistemas não-lineares por apresentar maior poder computacional de estimativas.
Neste momento, a Base 2014 é composta por atributos que possuem correlação
fortíssima entre eles e com um erro bem pequeno ao se comparar com os primeiros testes
efetuados. Sendo assim, percebe-se que o modelo de Regressão Linear chegou ao seu ponto
Capítulo 6. Experimentos e Análises 47

“máximo” de melhorias possíveis. Por isso, para a realização do Teste 12 foi utilizado o
algoritmo SMO descrito em 2.4.2, que utiliza outra abordagem para a construção de
modelos.
O algoritmo possui os seguintes parâmetros: 𝑐 que define a complexidade, debug
que mostra ou não informações adicionais na saída, filterType que determina a forma
como os dados serão transformados, kernel informa qual função kernel será utilizada e
regOptimizer que indica qual o algoritmo de aprendizado é utilizado. Para a utilização
do SMO foram utilizados os valores padrão da ferramenta, sendo eles: 𝑐 0, debug false,
filterType Normalize training data, kernel PolyKernel -C 250007 -E 1.0 e regOptimizer
RegSMOImproved -L 0.001 -W1 -P1.0E-12-T0.001-V
Os resultados apresentados na Tabela 13 indicam correlação forte no almoço e
fortíssima no jantar, a média de erro encontrada foi 11 refeições para o almoço e 7 refeições
para o jantar. O modelo gerado pelo algoritmo pode ser observado no Apêndice.

Tabela 13 – Resultado do Teste 12 na Base 2014.

R Almoço MEA Almoço R Jantar MEA Jantar


0.888 11.685 0.9552 7.0406

É importante ressaltar a melhoria obtida na média de erros através da aplicação


dos algoritmos e dos valores obtidos durante o ano de 2014. O valor MEA no almoço
obtida pelo RU em 2014 foi 11 refeições, o resultado obtido através do algoritmo SMO
manteve a MEA de 11 refeições. Durante o jantar, conforme dito anteriormente, o número
de comensais apresentava maior variação e consequentemente maior erro de predição. O
valor MEA obtido pelo RU em 2014 foi 18 refeições, o resultado da aplicação do SMO
baixou para apenas 7 refeições.
48

7 CONCLUSÕES E TRABALHOS FUTU-


ROS

As melhorias na previsão do número de comensais com a utilização do algoritmo em


comparação as médias apresentadas pelo RU, representam um ganho muito importante
para contribuição da Universidade com questões importantes como sustentabilidade e
conscientização para hábitos responsáveis.
O almoço apresenta mais obstáculos para a predição, já que possui padrões sub-
jetivos e por isso difíceis de serem observados. Alguns fatores observáveis são: os alunos
podem marcar grupos de estudo após o almoço, alguns eventos das empresas júniores
podem fazer com que os alunos possam ir mais cedo para a faculdade, dentre diversos
outros fatores. Apesar destes obstáculos, o uso do SVM para regressão conseguiu alcançar
os mesmos valores médios de erro que a observação da Administração do RU na predição
do número de comensais.
Algumas destas dificuldades também são observadas no jantar, porém o uso do
SVM para regressão se mostrou bem mais eficiente na identificação de padrões e con-
sequentemente na predição do número de comensais. A predição para o jantar contou
com média de erro de apenas 7 refeições enquanto a Administração do RU possui média
de erro de 18 refeições, ambos observados nos dados do ano de 2014. Nota-se a partir
dos dados fornecidos pela Administração do RU, que a maior dificuldade na predição
encontra-se justamente no jantar, onde a própria Administração falha muitas vezes na
hora de encontrar padrões que possam dar indícios da quantidade de comensais esperada.
O método da observação empírica dos funcionários melhorou conforme o tempo de
funcionamento, mas ainda possui brechas das quais os métodos de Mineração de Dados
devem fazer uso para aprimorar seu funcionamento. O tamanho da base de dados e o am-
biente inconstante também contribuem para aumentar o desafio e a melhoria de métodos
de aprendizagem dos algoritmos.
Algumas limitações presentes neste trabalho podem ser resolvidas em trabalhos
futuros. Algumas sugestões são: encontrar atributos que descrevam melhor o comporta-
mento de professores, técnicos e funcionários; pesquisa de satisfação com os comensais
com relação a opiniões sobre questões subjetivas como sabor da refeição, qualidade de
atendimento e tempo livre para fazer as refeições; criar um software que implemente o
algoritmo que apresentou melhores resultados e que tenha uma interface amigável para
os funcionários do RU.
49

REFERÊNCIAS

Academy O (2015) Oracle academy. URL https://academy.oracle.com/


oa-web-introcs-technology.html, [Online; accessed Abril-2015] 25

de Amo S (2004) Técnicas de mineração de dados. Jornada de Atualização em Informática


16

Blomberg LC (2014) Um algoritmo evolutivo para indução de árvores de regressão robusto


a valores ausentes. PhD thesis, Pontifícia Universidade Católica do Rio Grande do Sul
17

Bradley PS, Fayyad UM, Mangasarian OL (1999) Mathematical programming for data
mining: formulations and challenges. INFORMS Journal on Computing 14, 15, 17, 18

Brito NM, JUNIOR OPdA, Polese L, Ribeiro ML (2003) Validação de métodos analíticos:
estratégia e discussão. Pesticidas: Revista de Ecotoxicologia e Meio Ambiente 23

Dias MM (2002) Parâmetros na escolha de técnicas e ferramentas de mineração de dados.


Acta Scientiarum 16

Fayyad U, Piatetsky-Shapiro G, Smyth P (1996a) The kdd process for extracting useful
knowledge from volumes of data. Communications of the ACM 15

Fayyad U, Shapiro GP, Padhraic S (1996b) From data mining to knowledge discovery in
databases. AI Magazine 9, 14, 15

Fayyad U, Shapiro GP, Padhraic S (1996c) Knowledge discovery and data mining: Towards
a unifying framework. KDD 18

Garin RS, Lichtnow D, Palazzo LAM, Loh S, Kampff AJC, Primo TT, Oliveira JPMd,
Lima JVd (2006) O uso de técnicas de recomendação em um sistema de apoio à apren-
dizagem colaborativa. Revista brasileira de informática na educação 28

Goebel M, Gruenwald L (1999) A survey of data mining and knowledge discovery software
tools. SIGKDD Explorations 16, 17, 18, 19, 21

Han J, Kamber M, Pei J (2011) Data mining: concepts and techniques. Elsevier 23

Holsbach N, Fogliatto FS, Anzanello MJ (2014) Método de mineração de dados para


identificação de câncer de mama baseado na seleção de variáveis. Ciência & saúde
coletiva 27
Referências 50

Junior GMdO (2010) Máquina de vetores suporte: estudo e análise de parâmetros para
otimização de resultado. PhD thesis, Universidade Federal de Pernambuco 19

Larose DT (2005) Discovering knowledge in data-an introduction to data mining. encon-


trar 15

LibreOffice (2015) Libreoffice the document fundation. URL https://pt-br.


libreoffice.org/descubra/libreoffice/, [Online; accessed Abril-2015] 25

Lippi1 TAP, do Amaral TG, Tabai KC, Nascimento MRF (2004) Restaurante univer-
sitário: avaliação do serviço de alimentação da universidade federal rural do rio de
janeiro–ufrrj. Rev Univ Rural, Sér Ciências Humanas 26

Martins AIM (2008) Implementação do frex svm: Máquinas de vetor suporte para clas-
sificação de múltiplas classes. PhD thesis, Pontifícia Universidade Católica do Rio de
Janeiro 19

Netbeans (2015) Netbeans.org. URL https://netbeans.org/community/


releases/80/, [Online; accessed Abril-2015] 25

Oracle (2015) Oracle.com. URL http://www.oracle.com/technetwork/java/


javase/overview/index.html, [Online; accessed Abril-2015] 25

Rezende SO (2005) Mineração de dados. XXV Congresso da Sociedade Brasileira de Com-


putação 14, 15, 18, 30, 33

Ricarte MPR, Fé MABM, Santos IHVdS, Lopes AKM (2008) Avaliação do desperdício
de alimentos em uma unidade de alimentação e nutrição institucional em fortaleza-ce.
Saber Científico 26

Rocha JC, Matos FD, Frei F (2011) Utilização de redes neurais artificiais para a deter-
minação do número de refeições diárias de um restaurante universitário. Revista de
Nutrição 26, 42

Stevenson WJ, De Farias AA (1981) Estatística aplicada à administração. Sistema Uni-


versidade Aberta do Brasil 19

Vianna RCXF, de Barra CMCM, Moysés SJ, Carvalho D, Nievola JC (2010) Mineração
de dados e características da mortalidade infantil. Cad Saúde Pública 27
51

A APÊNDICE

Saída Weka para o Almoço:

=== Run information ===

Relation: TCC-weka.filters.unsupervised.attribute.Remove-R15,19
Instances: 223
Attributes: 18
id_ano
id_mes
dia_mes
dia_semana
sobra_almoco
sobra_janta
vespera_feriado
pos_feriado
fim_periodo
inicio_periodo
dia_matricula
aula_extra_manha
exame_especial
cardapioAlmoco
reunioes_almoco
reunioes_jantar
epoca
comensais_almoco
Test mode:evaluate on training data

=== Classifier model (full training set) ===

SMOreg

weights (not support vectors):


+ 0 * (normalized) id_ano
- 0.1324 * (normalized) id_mes=1
- 0.1708 * (normalized) id_mes=2
- 0.1445 * (normalized) id_mes=3
- 0.0207 * (normalized) id_mes=4
- 0.0084 * (normalized) id_mes=5
+ 0.0197 * (normalized) id_mes=6
+ 0.0226 * (normalized) id_mes=7
+ 0.1013 * (normalized) id_mes=8
+ 0.1543 * (normalized) id_mes=9
+ 0.0714 * (normalized) id_mes=10
+ 0.0487 * (normalized) id_mes=11
+ 0.0587 * (normalized) id_mes=12
+ 0.0007 * (normalized) dia_mes=1
+ 0.0189 * (normalized) dia_mes=2
- 0.0315 * (normalized) dia_mes=3
+ 0.0054 * (normalized) dia_mes=4
+ 0.0238 * (normalized) dia_mes=5
- 0.0168 * (normalized) dia_mes=6
+ 0.0012 * (normalized) dia_mes=7
- 0.0217 * (normalized) dia_mes=8
- 0.0171 * (normalized) dia_mes=9
Apêndice A. Apêndice 52

- 0.0225 * (normalized) dia_mes=10


- 0.0137 * (normalized) dia_mes=11
+ 0.0035 * (normalized) dia_mes=12
- 0.0188 * (normalized) dia_mes=13
+ 0.0422 * (normalized) dia_mes=14
- 0.0572 * (normalized) dia_mes=15
+ 0.0425 * (normalized) dia_mes=16
+ 0.0062 * (normalized) dia_mes=17
- 0.0569 * (normalized) dia_mes=18
- 0.0226 * (normalized) dia_mes=19
- 0.0177 * (normalized) dia_mes=20
+ 0.0016 * (normalized) dia_mes=21
- 0.0525 * (normalized) dia_mes=22
+ 0.0016 * (normalized) dia_mes=23
+ 0.0044 * (normalized) dia_mes=24
+ 0.0124 * (normalized) dia_mes=25
+ 0.059 * (normalized) dia_mes=26
+ 0.0852 * (normalized) dia_mes=27
+ 0.0539 * (normalized) dia_mes=28
- 0.0076 * (normalized) dia_mes=29
- 0.0299 * (normalized) dia_mes=30
+ 0.0239 * (normalized) dia_mes=31
- 0.023 * (normalized) dia_semana=1
+ 0.0693 * (normalized) dia_semana=2
+ 0.0101 * (normalized) dia_semana=3
+ 0.0241 * (normalized) dia_semana=4
- 0.0805 * (normalized) dia_semana=5
- 0.0241 * (normalized) sobra_almoco
- 0.5915 * (normalized) sobra_janta
- 0.3674 * (normalized) vespera_feriado
+ 0.0075 * (normalized) pos_feriado
- 0.0697 * (normalized) fim_periodo
- 0.1376 * (normalized) inicio_periodo
+ 0.0032 * (normalized) dia_matricula
+ 0.0233 * (normalized) aula_extra_manha
+ 0 * (normalized) exame_especial
+ 0.0385 * (normalized) cardapioAlmoco=1
+ 0.1596 * (normalized) cardapioAlmoco=3
- 0.1996 * (normalized) cardapioAlmoco=4
+ 0.0386 * (normalized) cardapioAlmoco=5
- 0.0023 * (normalized) cardapioAlmoco=6
+ 0.0061 * (normalized) cardapioAlmoco=8
+ 0 * (normalized) cardapioAlmoco=9
- 0.0187 * (normalized) cardapioAlmoco=10
+ 0.0222 * (normalized) cardapioAlmoco=11
+ 0.019 * (normalized) cardapioAlmoco=12
+ 0.0293 * (normalized) cardapioAlmoco=13
+ 0.062 * (normalized) cardapioAlmoco=14
- 0.0767 * (normalized) cardapioAlmoco=15
+ 0.1021 * (normalized) cardapioAlmoco=16
+ 0.0202 * (normalized) cardapioAlmoco=18
+ 0.047 * (normalized) cardapioAlmoco=22
+ 0.0153 * (normalized) cardapioAlmoco=32
+ 0 * (normalized) cardapioAlmoco=38
+ 0.0288 * (normalized) cardapioAlmoco=40
+ 0.0006 * (normalized) cardapioAlmoco=41
+ 0.0089 * (normalized) cardapioAlmoco=44
- 0.0366 * (normalized) cardapioAlmoco=45
- 0.0417 * (normalized) cardapioAlmoco=46
- 0.017 * (normalized) cardapioAlmoco=48
Apêndice A. Apêndice 53

- 0.028 * (normalized) cardapioAlmoco=52


+ 0 * (normalized) cardapioAlmoco=59
- 0.1139 * (normalized) cardapioAlmoco=60
+ 0.1155 * (normalized) cardapioAlmoco=63
- 0.0624 * (normalized) cardapioAlmoco=64
- 0.0593 * (normalized) cardapioAlmoco=65
+ 0.015 * (normalized) cardapioAlmoco=67
- 0.1405 * (normalized) cardapioAlmoco=72
+ 0.0106 * (normalized) cardapioAlmoco=80
+ 0.0329 * (normalized) cardapioAlmoco=82
+ 0.0255 * (normalized) cardapioAlmoco=94
- 0.0085 * (normalized) cardapioAlmoco=95
+ 0 * (normalized) cardapioAlmoco=99
+ 0.0143 * (normalized) cardapioAlmoco=103
- 0.0068 * (normalized) cardapioAlmoco=106
+ 0.012 * (normalized) reunioes_almoco
- 0.0639 * (normalized) reunioes_jantar
+ 0.0288 * (normalized) epoca=0
+ 0 * (normalized) epoca=1
- 0.0288 * (normalized) epoca=3
+ 0.7526

Number of kernel evaluations: 18336 (99.784% cached)

Time taken to build model: 0.49 seconds

=== Evaluation on training set ===


=== Summary ===

Correlation coefficient 0.888


Mean absolute error 11.685
Root mean squared error 25.7385
Relative absolute error 27.007 %
Root relative squared error 46.4011 %
Total Number of Instances 191
Ignored Class Unknown Instances 32
54

A APÊNDICE

Saída Weka para o Jantar:

=== Run information ===

Relation: TCC
Instances: 222
Attributes: 20
id_ano
id_mes
dia_mes
dia_semana
sobra_almoco
sobra_janta
vespera_feriado
pos_feriado
fim_periodo
inicio_periodo
dia_matricula
aula_extra_manha
exame_especial
cardapioAlmoco
cardapioJantar
reunioes_almoco
reunioes_jantar
epoca
comensais_almoco
comensais_janta
Test mode:evaluate on training data

=== Classifier model (full training set) ===

SMOreg

weights (not support vectors):


+ 0 * (normalized) id_ano
- 0.1166 * (normalized) id_mes=1
- 0.1527 * (normalized) id_mes=2
- 0.0848 * (normalized) id_mes=3
- 0.0094 * (normalized) id_mes=4
+ 0.0397 * (normalized) id_mes=5
+ 0.0037 * (normalized) id_mes=6
- 0.0293 * (normalized) id_mes=7
+ 0.1055 * (normalized) id_mes=8
+ 0.1035 * (normalized) id_mes=9
+ 0.0415 * (normalized) id_mes=10
+ 0.0668 * (normalized) id_mes=11
+ 0.0318 * (normalized) id_mes=12
+ 0.028 * (normalized) dia_mes=1
+ 0.0343 * (normalized) dia_mes=2
- 0.0286 * (normalized) dia_mes=3
- 0.0019 * (normalized) dia_mes=4
- 0.0068 * (normalized) dia_mes=5
+ 0.0509 * (normalized) dia_mes=6
+ 0.0386 * (normalized) dia_mes=7
Apêndice A. Apêndice 55

+ 0.0256 * (normalized) dia_mes=8


+ 0.043 * (normalized) dia_mes=9
- 0.01 * (normalized) dia_mes=10
- 0.0271 * (normalized) dia_mes=11
- 0.1098 * (normalized) dia_mes=12
+ 0.0382 * (normalized) dia_mes=13
+ 0.0251 * (normalized) dia_mes=14
- 0.0182 * (normalized) dia_mes=15
+ 0.0301 * (normalized) dia_mes=16
- 0.0598 * (normalized) dia_mes=17
- 0.0507 * (normalized) dia_mes=18
- 0.1073 * (normalized) dia_mes=19
+ 0.0173 * (normalized) dia_mes=20
+ 0.0242 * (normalized) dia_mes=21
- 0.0375 * (normalized) dia_mes=22
+ 0.0835 * (normalized) dia_mes=23
- 0.0363 * (normalized) dia_mes=24
- 0.0154 * (normalized) dia_mes=25
+ 0.0576 * (normalized) dia_mes=26
+ 0.0161 * (normalized) dia_mes=27
- 0.0181 * (normalized) dia_mes=28
- 0.0449 * (normalized) dia_mes=29
+ 0.0491 * (normalized) dia_mes=30
+ 0.0106 * (normalized) dia_mes=31
+ 0.0371 * (normalized) dia_semana=1
+ 0.0037 * (normalized) dia_semana=2
- 0.0449 * (normalized) dia_semana=3
+ 0.0207 * (normalized) dia_semana=4
- 0.0166 * (normalized) dia_semana=5
+ 0.282 * (normalized) sobra_almoco
- 0.5155 * (normalized) sobra_janta
- 0.1542 * (normalized) vespera_feriado
+ 0.0113 * (normalized) pos_feriado
- 0.0232 * (normalized) fim_periodo
- 0.0273 * (normalized) inicio_periodo
- 0.0059 * (normalized) dia_matricula
+ 0.0778 * (normalized) aula_extra_manha
+ 0 * (normalized) exame_especial
+ 0.0994 * (normalized) cardapioAlmoco=1
+ 0.1792 * (normalized) cardapioAlmoco=3
- 0.1376 * (normalized) cardapioAlmoco=4
+ 0.0626 * (normalized) cardapioAlmoco=5
- 0.0182 * (normalized) cardapioAlmoco=6
- 0.0239 * (normalized) cardapioAlmoco=8
+ 0 * (normalized) cardapioAlmoco=9
- 0.0462 * (normalized) cardapioAlmoco=10
+ 0.0313 * (normalized) cardapioAlmoco=11
- 0.0092 * (normalized) cardapioAlmoco=12
- 0.0391 * (normalized) cardapioAlmoco=13
+ 0.1258 * (normalized) cardapioAlmoco=14
- 0.0685 * (normalized) cardapioAlmoco=15
+ 0.031 * (normalized) cardapioAlmoco=16
- 0.0531 * (normalized) cardapioAlmoco=18
+ 0.0817 * (normalized) cardapioAlmoco=22
+ 0.0457 * (normalized) cardapioAlmoco=32
+ 0 * (normalized) cardapioAlmoco=38
+ 0.1012 * (normalized) cardapioAlmoco=40
- 0.0677 * (normalized) cardapioAlmoco=41
- 0.0282 * (normalized) cardapioAlmoco=44
- 0.0571 * (normalized) cardapioAlmoco=45
Apêndice A. Apêndice 56

- 0.04 * (normalized) cardapioAlmoco=46


+ 0.0194 * (normalized) cardapioAlmoco=48
+ 0.0038 * (normalized) cardapioAlmoco=52
+ 0 * (normalized) cardapioAlmoco=59
- 0.0787 * (normalized) cardapioAlmoco=60
- 0.0503 * (normalized) cardapioAlmoco=63
+ 0.0034 * (normalized) cardapioAlmoco=64
+ 0.0474 * (normalized) cardapioAlmoco=65
+ 0.0426 * (normalized) cardapioAlmoco=67
- 0.0829 * (normalized) cardapioAlmoco=72
- 0.049 * (normalized) cardapioAlmoco=80
- 0.0518 * (normalized) cardapioAlmoco=82
- 0.0194 * (normalized) cardapioAlmoco=94
+ 0.0394 * (normalized) cardapioAlmoco=95
+ 0 * (normalized) cardapioAlmoco=99
+ 0.1001 * (normalized) cardapioAlmoco=103
- 0.0929 * (normalized) cardapioAlmoco=106
+ 0.1326 * (normalized) cardapioJantar=1
+ 0.069 * (normalized) cardapioJantar=5
- 0.0285 * (normalized) cardapioJantar=10
- 0.0092 * (normalized) cardapioJantar=12
- 0.0068 * (normalized) cardapioJantar=13
- 0.0956 * (normalized) cardapioJantar=14
- 0.0241 * (normalized) cardapioJantar=15
+ 0.031 * (normalized) cardapioJantar=16
+ 0.0294 * (normalized) cardapioJantar=18
- 0.0208 * (normalized) cardapioJantar=24
- 0.0696 * (normalized) cardapioJantar=25
+ 0.0026 * (normalized) cardapioJantar=26
+ 0.0064 * (normalized) cardapioJantar=28
- 0.0319 * (normalized) cardapioJantar=30
+ 0.0139 * (normalized) cardapioJantar=33
- 0.1476 * (normalized) cardapioJantar=34
+ 0.0464 * (normalized) cardapioJantar=35
+ 0.1666 * (normalized) cardapioJantar=41
- 0.0082 * (normalized) cardapioJantar=44
- 0.0897 * (normalized) cardapioJantar=45
- 0.0638 * (normalized) cardapioJantar=47
+ 0.1574 * (normalized) cardapioJantar=48
- 0.0737 * (normalized) cardapioJantar=52
- 0.1248 * (normalized) cardapioJantar=53
- 0.0213 * (normalized) cardapioJantar=55
+ 0.0381 * (normalized) cardapioJantar=56
+ 0.0045 * (normalized) cardapioJantar=57
- 0.112 * (normalized) cardapioJantar=59
+ 0.0954 * (normalized) cardapioJantar=64
+ 0.1286 * (normalized) cardapioJantar=67
+ 0.0945 * (normalized) cardapioJantar=71
- 0.1108 * (normalized) cardapioJantar=73
- 0.0449 * (normalized) cardapioJantar=74
+ 0.0042 * (normalized) cardapioJantar=75
+ 0.0753 * (normalized) cardapioJantar=78
- 0.0027 * (normalized) cardapioJantar=82
+ 0.0051 * (normalized) cardapioJantar=86
+ 0.0527 * (normalized) cardapioJantar=88
- 0.0076 * (normalized) cardapioJantar=93
+ 0.0395 * (normalized) cardapioJantar=94
+ 0.0012 * (normalized) cardapioJantar=96
- 0.032 * (normalized) cardapioJantar=97
+ 0.0344 * (normalized) cardapioJantar=98
Apêndice A. Apêndice 57

+ 0.0056 * (normalized) cardapioJantar=100


- 0.0599 * (normalized) cardapioJantar=102
- 0.049 * (normalized) cardapioJantar=106
+ 0.0153 * (normalized) reunioes_almoco
+ 0.0819 * (normalized) reunioes_jantar
- 0.0136 * (normalized) epoca=0
+ 0 * (normalized) epoca=1
+ 0.0136 * (normalized) epoca=3
+ 0.5393 * (normalized) comensais_almoco
+ 0.2893

Number of kernel evaluations: 18336 (99.893% cached)

Time taken to build model: 0.55 seconds

=== Evaluation on training set ===


=== Summary ===

Correlation coefficient 0.9552


Mean absolute error 7.0406
Root mean squared error 16.5361
Relative absolute error 16.2726 %
Root relative squared error 29.8112 %
Total Number of Instances 191
Ignored Class Unknown Instances 31
Apêndice A. Apêndice
Tabela 14 – Long Table com controle de quebra

Teste Variáveis Almoço R Alm. MEA Alm. Variáveis Jantar R Jan. MEA Jan.
1 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_janta
vespera_feriado vespera_feriado
pos_feriado pos_feriado
fim_periodo 0.8254 31.1194 fim_periodo 0.9095 15.3579
inicio_periodo inicio_periodo
dia_matricula exame_especial
aula_extra_manha cardapioJantar
exame_especial comensais_janta.
cardapioAlmoco
comensais_almoco.
2 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_janta
vespera_feriado vespera_feriado
pos_feriado 0.8254 31.1194 pos_feriado 0.9095 15.3579
fim_periodo fim_periodo
inicio_periodo inicio_periodo
continua para próxima página

58
Apêndice A. Apêndice
continuação da página anterior
dia_matricula exame_especial
aula_extra_manha cardapioJantar
exame_especial reunioes_jantar
cardapioAlmoco comensais_janta
reunioes_almoco
comensais_almoco
3 id_mes id_mes
dia_semana dia_semana
vespera_feriado vespera_feriado
pos_feriado 0.7682 25.7995 pos_feriado 0.82 31.4826
dia_anterior_almoco dia_anterior_jantar
media_mes_almoco media_mes_jantar
media_ultima_semana media_ultima_semana
comensais_almoco comensais_janta
4 dia_semana dia_semana
sobra_almoco sobra_almoco
sobra_janta sobra_janta
vespera_feriado vespera_feriado
pos_feriado pos_feriado
fim_periodo fim_periodo
inicio_periodo 0.8107 24.9581 inicio_periodo 0.9317 15.4262
dia_matricula dia_matricula
aula_extra_manha aula_extra_manha
continua para próxima página

59
Apêndice A. Apêndice
continuação da página anterior
exame_especial exame_especial
cardapioAlmoco cardapioAlmoco
reunioes_almoco cardapioJantar
reunioes_jantar reunioes_almoco
epoca reunioes_jantar
comensais_almoco epoca
comensais_almoco
comensais_janta
5 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_janta
vespera_feriado vespera_feriado
pos_feriado pos_feriado
fim_periodo 0.7978 24.1478 fim_periodo 0.8945 17.3161
inicio_periodo inicio_periodo
dia_matricula exame_especial
aula_extra_manha cardapioJantar
exame_especial reunioes_jantar
cardapioAlmoco epoca
reunioes_almoco comensais_janta
epoca
comensais_almoco
continua para próxima página

60
Apêndice A. Apêndice
continuação da página anterior
6 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_janta
vespera_feriado vespera_feriado
pos_feriado 0.8973 24.2401 pos_feriado 0.8983 16.2653
fim_periodo fim_periodo
inicio_periodo inicio_periodo
dia_matricula exame_especial
aula_extra_manha cardapioJantar
exame_especial reunioes_jantar
cardapioAlmoco epoca
reunioes_almoco comensais_janta
epoca
comensais_almoco
7 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
vespera_feriado vespera_feriado
pos_feriado pos_feriado
fim_periodo fim_periodo
inicio_periodo 0.8172 23.5495 inicio_periodo 0.9277 15.5625
dia_matricula dia_matricula
continua para próxima página

61
Apêndice A. Apêndice
continuação da página anterior
aula_extra_manha aula_extra_manha
exame_especial exame_especial
cardapioAlmoco cardapioAlmoco
reunioes_almoco cardapioJantar
reunioes_jantar reunioes_almoco
epoca reunioes_jantar
comensais_almoco epoca
comensais_almoco
comensais_janta
8 id_ano, id_mes id_ano
dia_mes id_mes
dia_semana dia_mes
sobra_almoco dia_semana
vespera_feriado sobra_janta
pos_feriado vespera_feriado
fim_periodo 0.9035 23.8602 pos_feriado 0.9068 16.0528
inicio_periodo fim_periodo
dia_matricula inicio_periodo
aula_extra_manha exame_especial
exame_especial cardapioJantar
cardapioAlmoco reunioes_jantar
reunioes_almoco epoca
epoca comensais_janta
continua para próxima página

62
Apêndice A. Apêndice
continuação da página anterior
comensais_almoco
9 id_mes id_ano
dia_mes id_mes
dia_semana dia_mes
sobra_almoco 0.9179 21.1982 dia_semana 0.9068 16.0528
vespera_feriado sobra_janta
pos_feriado vespera_feriado
fim_periodo pos_feriado
inicio_periodo fim_periodo
dia_matricula inicio_periodo
aula_extra_manha exame_especial
exame_especial cardapioJantar
cardapioAlmoco reunioes_jantar
reunioes_almoco epoca
epoca festa
festa comensais_janta
comensais_almoco
10 id_mes id_mes
dia_mes sobra_janta
dia_semana vespera_feriado
sobra_janta fim_periodo
vespera_feriado 0.9232 15.2352 aula_extra_manha 0.9431 12.9997
fim_periodo cardapioAlmoco
continua para próxima página

63
Apêndice A. Apêndice
continuação da página anterior
inicio_periodo cardapioJantar
aula_extra_manha reunioes_almoco
cardapioAlmoco reunioes_jantar
cardapioJantar epoca
reunioes_almoco comensais_almoco
reunioes_jantar comensais_janta
epoca
comensais_almoco
11 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_almoco
sobra_janta sobra_janta
vespera_feriado vespera_feriado
pos_feriado 0.9178 15.8903 pos_feriado 0.9617 11.5681
fim_periodo fim_periodo
inicio_periodo inicio_periodo
dia_matricula dia_matricula
aula_extra_manha aula_extra_manha
exame_especial exame_especial
cardapioAlmoco cardapioAlmoco
cardapioJantar cardapioJantar
reunioes_almoco reunioes_almoco
continua para próxima página

64
Apêndice A. Apêndice
continuação da página anterior
reunioes_jantar reunioes_jantar
epoca epoca
comensais_almoco comensais_almoco
comensais_janta
12 id_ano, id_mes id_ano, id_mes
dia_mes dia_mes
dia_semana dia_semana
sobra_almoco sobra_almoco
sobra_janta sobra_janta
vespera_feriado vespera_feriado
pos_feriado 0,888 11,685 pos_feriado 0.9552 7.0406
fim_periodo fim_periodo
inicio_periodo inicio_periodo
dia_matricula dia_matricula
aula_extra_manha aula_extra_manha
exame_especial exame_especial
cardapioAlmoco cardapioAlmoco
reunioes_almoco cardapioJantar
reunioes_jantar reunioes_almoco
epoca reunioes_jantar
comensais_almoco epoca
comensais_almoco
comensais_janta

65

Você também pode gostar