Uma análise feita com Multiple Linear Regression
Fonte: Breno Assis / Unsplash.com
English version:
https://github.com/williamausenka/ML_estudos_de_caso/blob/main/Boston_House_Dataset_Multiple_Linear_Regression/Boston%20Housing%20Dataset%20Analysis.pdf
A análise a seguir se refere ao Boston Housing Dataset, um dataset público que contém informações coletadas pelo US Census sobre preços das casas na área de Boston. Download feito no site https://www.kaggle.com/vikrishnan/boston-house-prices. Utilizou-se o método de machine learning - multiple linear regression feito na linguagem de programação python para a análise do dataset.
O objetivo do estudo é fazer um modelo de multiple linear regression para tentar prever o preço de uma casa em Boston e verificar qual(is) features são as mais relevantes para o modelo.
Primeiramente, carregou-se os dados no jupyter notebook.
Tabela 1 – Dados Iniciais
Fonte: O Autor
Pela tabela 1, os dados precisam de pré-processamento antes do aplicar o modelo. O dataset possui 14 atributos. São eles:
CRIM - per capita crime rate by town
ZN - proportion of residential land zoned for lots over 25,000 sq.ft.
INDUS - proportion of non-retail business acres per town.
CHAS - Charles River dummy variable (1 if tract bounds river; 0 otherwise)
NOX - nitric oxides concentration (parts per 10 million)
RM - average number of rooms per dwelling
AGE - proportion of owner-occupied units built prior to 1940
DIS - weighted distances to five Boston employment centres
RAD - index of accessibility to radial highways
TAX - full-value property-tax rate per $10,000
PTRATIO - pupil-teacher ratio by town
B - 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town
LSTAT - % lower status of the population
MEDV - Median value of owner-occupied homes in $1000's
A tarefa é prever o valor do imóvel (14) utilizando o restante das features. O atributo 5 será excluído, pois também é um valor a ser previsto, mas não será abordado nessa análise.
Tabela 2 – Dados organizados
Fonte: O Autor
Primeiro, foi feito um rearranjo na tabela, para termos os nomes corretos de cada feature no dataframe, como visto na tabela 2. Como a variável a ser prevista é MEDV e não foi utilizado NOX na análise, elas foram removidas da dataframe. Por meio do pacote de machine learning sklearn, normalizou-se os dados, exceto o feature CHAS, pois ela é uma dummy variable. Após a normalização, dividiu-se os dados em 2 sets, um para treinar o modelo (x_train, y_train) e outro para teste do modelo (x_test, y_test). Foi feito um split de 80% para teste e 20% para treino.
Tabela 3 – Valores do R² e Weights
Fonte: O Autor
Figura 1 – Weights
Fonte: O Autor
Com os resultados obtidos, temos um modelo com, aproximadamente, 72,1 % de precisão. Na avaliação dos valores dos weights, quanto mais positivo, maior a contribuição para o aumento do preço da casa e, quanto mais negativo, maior a contribuição para a diminuição do preço da casa. Pela tabela 3, temos que a feature “AGE” está próximo de 0, ou seja, quase não contribui para o preço final da casa e, portanto, pode ser retirada da análise. Sobre os weights, quanto mais positivos, mais eles contribuem para um aumento no valor do imóvel e, quanto menor, para uma diminuição do preço da casa.
Pela figura 1, foi observado que as features que mais contribuem para o aumento do valor do imóvel são, por exemplo, CHAS, RM e RAD. Esses resultados são esperados, porque, no caso de RM, quanto mais quartos no imóvel, mais caro ele será. Já RAD, melhor infraestrutura rodoviária reflete num preço maior de imóvel. Assim como quanto mais perto da faixa de areia uma casa fica, maior será seu valor, o mesmo raciocínio pode ser aplicado no caso de CHAS, se a propriedade está perto do rio, ela será mais valorizada. Para as features com valores mais negativos, temos LSTAT que mostra a porcentagem da população de classes sociais mais baixas na área de Boston, mostrando que isso influi para um valor menor do imóvel. Geralmente, quanto menor o nível de educação da pessoa, menor seu salário e menos condições para comprar um imóvel maior e bem localizado, sendo assim o impacto do LSTAT no modelo é grande. A feature DIS mostra que quanto mais longe dos centros de emprego, menor o valor do imóvel, o que é esperado, pois quanto mais perto do centro comercial da cidade, maior o valor do imóvel. Já, TAX indica que o quanto se paga de tributo pela propriedade, portanto quanto menor o valor pago em tributo, mais barata a casa. Por fim, PTRADIO é a relação entre professores e alunos na cidade, significando quantos alunos por professor, então seu valor negativo mostra que, provavelmente, há muitos alunos para cada professor. Pode também indicar que a área não é muito valorizada e concentrada de pessoas de baixa renda, onde não há muitas escolas, principalmente públicas, contribuindo para que o weight seja negativo e indicando moradias de menor valor.
Tabela 4 – R² para set de teste
Fonte: O Autor
Foi feito um novo teste do modelo para determinar o R² com o set de e o seu valor obtido, visto na tabela 4, é maior que o obtido no set de treino, o que não é usual, mas mostra que o modelo se comportou bem para novos dados.
Todo o código você encontra no meu Github: https://github.com/williamausenka/ML_estudos_de_caso/tree/main/Boston_House_Dataset_Multiple_Linear_Regression
Espero que vocês tenham gostado.
Não deixe de comentar o que você achou da análise
Obrigado e até o próximo post!
Comentários