WEKA: Prática 1 Nesta primeira prática vamos usar o Explorer, para treinar o WEKA e depois testarmos a eficiência das respostas de acordo com a base de conhecimento informada. 1. Iniciando o WEKA Explorer 1. Primeiramente, execute o WEKA e acione o Explorer; Figura 1. Tela de inicialização do WEKA 2. Será apresentada a seguinte janela, que iremos utilizar para testar as respostas do WEKA. Figura 2. O WEKA Explorer
2. Regressão Um dos primeiros recursos disponíveis no WEKA é a regressão. Há algumas variáveis independentes que, quando tomadas em conjunto, produzem um resultado uma variável dependente. O modelo de regressão é então usado para prever o resultado de uma variável dependente desconhecida, dados os valores das variáveis independentes. 2.1. Estudo de caso: preço de uma casa Todos provavelmente já usamos ou vimos um modelo de regressão antes, e talvez até tenhamos criado mentalmente um modelo de regressão. O exemplo que imediatamente vem à mente é o de calcular o preço de uma casa. O preço da casa (a variável dependente) é o resultado de muitas variáveis independentes a metragem quadrada da casa, o tamanho do lote, se há granito na cozinha, se os banheiros foram reformados, etc. Assim, se você alguma vez já comprou uma casa ou vendeu uma, é provável que você tenha criado um modelo de regressão para avaliar a casa. O modelo é criado com base em outras casas comparáveis no bairro e no preço pelo qual elas foram vendidas (o modelo), e então colocando os valores de sua própria casa neste modelo para produzir o preço esperado. Vamos continuar com este exemplo de modelo de regressão baseado no preço de uma casa, e criar alguns dados reais para exame. Estes são números reais de casas que estão à venda em um determinado bairro, e vamos tentar achar o valor de uma outra casa no bairro. (Também pode-se usar a saída deste modelo para protestar contra a avaliação da propriedade pela prefeitura para estabelecer o valor do IPTU). Tamanho da casa (pés quadrados) Tamanho do lote Quartos Granito Banheiro reformado? Preço de venda 3529 9191 6 0 0 $205,000 3247 10061 5 1 1 $224,900 4032 10150 5 0 1 $197,900 2397 14156 4 1 0 $189,900 2200 9600 4 0 1 $195,000 3536 19994 6 1 1 $325,000 2983 9365 5 0 1 $230,000 3198 9669 5 1 1???? Tabela 1. Valores da casa para o modelo de regressão Obs.: Os dados acima são dos EUA, portanto, os dados foram medidos em pés em vez de metros. Os valores estão expressos em dólar. Para os atributos granito e banheiro reformado, considerar os valores numéricos como booleanos, sendo que 1 deve ser considerado verdadeiro e 0, falso. 2.2. Construindo o conjunto de dados para o WEKA Para carregar dados no WEKA, precisamos colocá-los em um formato que seja entendido. O método preferido do WEKA para carregar dados é no Formato de Arquivo de Atributo-Relação (ARFF), onde é possível definir o tipo de dados que estão sendo carregados, e então fornecer seus próprios dados. No arquivo, definimos cada coluna e o que cada coluna contém. No caso do modelo de regressão, estamos limitados a uma coluna de NUMERIC ou de DATE. Finalmente, fornecemos cada linha de dados em um formato delimitado por vírgulas. O arquivo ARFF que vamos usar com o WEKA é exibido abaixo. Note que nas linhas de dados nós omitimos a casa cujo o valor deverá ser descoberto. Como estamos criando o modelo, não podemos usar a casa sem valor nele porque seu preço de venda é desconhecido. 1. Abra o Bloco de notas (ou outro editor de textos) e digite os dados abaixo;
Figura 3. Listagem dos dados das casas de um determinado bairro 2. Salve o arquivo, em C:\Temp\ (ou outra pasta de fácil acesso), com o nome de casa.arff (não se esqueça de alterar o tipo de arquivo para Todos os arquivos, para manter a extensão informada): Figura 4. Salvando o arquivo de dados 3. Agora, podemos voltar ao WEKA Explorer e usar a nossa base de dados.
2.3. Carregando os dados no WEKA No WEKA Exporer, use o botão Open File... e abra o arquivo casa.arff que acabamos de salvar. Confira o resultado com a figura abaixo: Figura 5. WEKA com os dados da casa carregados Nesta tela, o WEKA permite revisar os dados com os quais estamos trabalhando. A seção esquerda da janela do Explorer mostra todas das colunas de seus dados (Atributos) e o número de linhas de dados fornecidas (Instâncias). Ao selecionar cada coluna, a seção direita da janela do Explorer também mostra informações sobre os dados daquela coluna de seu conjunto de dados. Por exemplo, ao selecionar a coluna tamanhocasa na seção esquerda (que deveria estar selecionada por padrão), a seção direita deveria mudar para mostrar informações estatísticas adicionais sobre a coluna. Ela mostra que o valor máximo do conjunto de dados para esta coluna é 4.032 pés quadrados, e o mínimo é 2.200 pés quadrados. O tamanho médio é 3.131 pés quadrados, com um desvio padrão de 655 pés quadrados. (O desvio padrão é uma medida estatística da variação.) Finalmente, há um modo visual de examinar os dados, que é possível ver clicando no botão Visualize All. Devido ao nosso número limitado de linhas neste conjunto de dados, a visualização não é tão poderosa quanto seria se houvesse mais pontos de dados (centenas, por exemplo). Agora, vamos criar um modelo e obter um preço para a minha casa. 2.4. Criando o modelo de regressão com o WEKA Para criar o modelo, clique na guia Classify. O primeiro passo é selecionar o modelo que queremos construir, para que o WEKA saiba como trabalhar com os dados, e como criar o modelo apropriado: 1. Clique no botão Choose, e então expanda a ramificação functions. 2. Selecione a folha LinearRegression.
Isto instrui o WEKA que queremos construir um modelo de regressão. Como podemos ver a partir das outras opções, há muitos modelos possíveis que podem ser construídos. Também devemos observar: Há outra opção chamada SimpleLinearRegression na mesma ramificação. Não a selecione porque a regressão simples só olha uma variável, e nós temos seis. Após selecionar o modelo certo, seu WEKA Explorer deve estar parecido com o da Figura 6. Figura 6. Modelo de regressão linear no WEKA Agora que o modelo desejado foi escolhido, temos que dizer ao WEKA onde estão os dados que ele deve usar para construir o modelo. Embora para nós possa ser óbvio querermos usar os dados que fornecemos no arquivo ARFF, na realidade há opções diferentes, algumas mais avançadas do que as que estaremos usando. As outras três opções são Supplied test set, onde é possível fornecer um conjunto diferente de dados para construir o modelo; Crossvalidation, que deixa o WEKA construir um modelo baseado em subconjuntos dos dados fornecidos e então calcular sua média para criar um modelo final; e Percentage split, onde o WEKA toma um subconjunto percentual dos dados fornecidos para construir um modelo final. Com a regressão, podemos simplesmente escolher Use training set. Isto diz ao WEKA que para construir nosso modelo desejado, podemos simplesmente usar o conjunto de dados que fornecemos em nosso arquivo ARFF. Finalmente, o último passo para criar nosso modelo é escolher a variável dependente (a coluna que estamos tentando prever). Sabemos que este deve ser o preço de venda, pois é isso que estamos tentando determinar para minha casa. Logo abaixo das opções de teste, há uma caixa combo que permite selecionar a variável dependente. A coluna precovenda deve estar selecionada por padrão. Se não estiver, selecione-a. Agora estamos prontos para criar nosso modelo. Clique em Start. A Figura 7 mostra o como deve ser a saída.
Figura 7. Modelo de regressão do preço da casa no WEKA 2.5. Interpretando o modelo de regressão O WEKA não brinca em serviço. Ele põe o modelo de regressão bem ali na saída, como mostrado na Listagem 1. -26.6882 * tamanhocasa + 7.0551 * tamanholote + 43166.0767 * quartos + 42292.0901 * banheiro + -21661.1208 Listagem 1. Saída da regressão A Listagem 2 mostra os resultados, relacionando os valores da casa em questão. -26.6882 * 3198 + 7.0551 * 9669 + 43166.0767 * 5 + 42292.0901 * 1 + -21661.1208 = 219328 Listagem 2. Valor da casa usando o modelo de regressão
A mineração de dados não se limita a produzir um único número: Trata-se de identificar padrões e regras. Ela não é usada estritamente para produzir um número absoluto, mas sim para criar um modelo que permite detectar padrões, prever a saída, e tirar conclusões baseadas em dados. Vamos seguir adiante e interpretar os padrões e conclusões que nosso modelo nos fornece, além de um único e estrito valor para a casa: O granito não tem importância: O WEKA só usa as colunas que contribuem estatisticamente para a precisão do modelo (medido em R ao quadrado, mas que está fora do escopo deste artigo). Ele descarta e ignora as colunas que não ajudam a criar um bom modelo. Assim, este modelo de regressão está nos dizendo que o granito da cozinha não afeta o valor da casa. Já os banheiros são importantes: Como usamos um simples valor 0 ou 1 para um banheiro reformado, podemos usar o coeficiente do modelo de regressão para determinar o valor que um banheiro reformado representa para o valor da casa. O modelo nos diz para acrescentarmos $42.292 ao valor da casa. Casas maiores reduzem o valor: O WEKA está nos dizendo que quanto maior for nossa casa, menor será o preço de venda? Isto pode ser visto pelo coeficiente negativo na frente da variável tamanhocasa. O modelo está nos dizendo que cada pé quadrado adicional da casa reduz seu preço em $26? Isso não faz nenhum sentido. Estamos falando da América! Maior é melhor, especialmente no Texas. Como devemos interpretar isto? Este é um bom exemplo de lixo entrando, lixo saindo. O tamanho da casa, infelizmente, não é uma variável independente porque está relacionado à variável dos quartos, o que faz sentido porque casas maiores tendem a ter mais quartos. Assim, nosso modelo não está perfeito. Mas nós podemos consertar isso. Lembre-se: Na guia Preprocess é possível remover colunas do conjunto de dados. Para sua própria prática, remova a coluna tamanhocasa e crie outro modelo (coluna Classify). Como isso afeta o preço da casa? Este novo modelo faz mais sentido? (O valor de minha casa agora é: $217,894). 7.6975 * tamanholote + 25827.5726 * quartos + 35874.5517 * banheiro + -21544.5903 Listagem 3. Nova saída da regressão 7.6975 * 9669 + 25827.5726 * 5 + 35874.5517 * 1 + -21544.5903 = 217894.9519 Listagem 4. Novo valor da casa usando o modelo de regressão atualizado 3. Exercícios 1. O que é mineração de dados? (0,1) 2. O que é regressão? (0,1) 3. O que são variáveis independentes? (0,1) 4. O que são variáveis dependentes? (0,1) 5. Como o WEKA pode ser usado para identificar as variáveis (atributos) relevantes? (0,2) 6. Como podemos eliminar atributos que produzem ruído ou que devem ser desconsiderados? (0,2) 7. Considerando o estudo de caso, qual o valor de uma casa com os seguintes atributo? Detalhe o cálculo com base na fórmula que você utilizar. (0,2) Tamanho da casa (pés quadrados) Tamanho do lote Quartos Granito Banheiro reformado? Preço de venda 2512 11230 4 1 1????