Uma análise feita com Multiple Linear Regression

Fonte: Lefteris Kallergis / Unsplash.com
English version:
https://github.com/williamausenka/ML_estudos_de_caso/blob/main/Quality%20Red_Wine%20-%20MLR/Wine%20Quality%20%20Analysis.pdf
A análise a seguir se refere ao Red Wine Quality dataset, um dataset público que contém dados físico-quimicos de vinhos tintos e a sua qualidade. Os dados foram coletados do norte de Portugal e possui quase 1600 observações. O download do dataset pode ser feito no site https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/ (winequality-red.csv). Utilizou-se a técnica de machine learning – multiple linear regression feito na linguagem de programação python para a análise do dataset.
O objetivo do estudo é montar um modelo de multiple linear regression e avaliar quais das features são as mais relevantes para a produção de vinho tinto.
Tabela 1 – Dados do dataset

Fonte: O Autor
Na tabela 1, vemos as features do dataset e o target – quality. As features são:
· 1 - fixed acidity: quantidade de ácido tartárico no vinho (g/dm³)
· 2 - volatile acidity: quantidade de ácido acético no vinho (g/dm³)
· 3 - citric acid: quantidade de ácido cítrico no vinho (g/dm³)
· 4 - residual sugar: quantidade de açúcar restante depois das etapas de fermentação (g/dm³)
· 5 - chlorides: quantidade de sal no vinho (g/dm³)
· 6 - free sulfur dioxide: quantidade de dióxido de enxofre no vinho (mg/dm³)
· 7 - total sulfur dioxide: quantidade total de dióxido de enxofre no vinho (mg/dm³)
· 8 - density: densidade do vinho (g/cm³)
· 9 - pH: pH do vinho
· 10 - sulphates: aditivo para vinhos (g/dm³)
· 11 - alcohol: percentual alcoólico do vinho (% em volumes)
Quality é classificada de 0 a 10, sendo 0 o vinho de pior qualidade e 10 o de melhor qualidade possível.
Figura 1 - Heatmap do dataset

Fonte: O Autor
Para verificar se há correlações entre as feautures e o target, foi feito um heatmap. Nele, 1 significa que há uma correlação muito positiva e, -1, muito negativa. Podemos observar que alcohol, sulphates, citric acid possuem correlação positiva e, principalmente, volatile acidity correlação negativa. Serão investigadas essas relações.
Figura 2 - Histograma de quality

Fonte: O Autor
Na figura 2, temos o histograma de quality e, logo de cara, vemos que o número de observações de quality 5 ou 6 é muito maior que o restante, portanto, temos um dataset desbalanceado e que poderá prejudicar a accuracy do modelo a ser implementado.
Figura 3 - Boxplot de alcohol e quality

Fonte: O Autor
Investigando o que foi descoberto pela figura 1, temos na figura 3, que quanto maior o percentual alcóolico do vinho, melhor sua qualidade.
Figura 4 - Boxplot de volatile acidity e quality

Fonte: O Autor
Volatile acidity é a quantidade de ácido acético no vinho e, quanto maior sua quantidade, maior o gosto de vinagre, estragando o sabor do vinho. É o que vemos na figura 4, maior quantidade de ácido acético, menor a qualidade do vinho.
Figura 5 - Boxplot de sulphates e quality

Fonte: O Autor
Na fabricação do vinho, os sulfatos são um dos mais importantes aditivos utilizados, porque ele atua como antioxidante e antimicrobiano, além de manter o sabor e a sensação de frescor. Na figura 5, temos que quanto maior a quantidade de sulfatos, maior a qualidade do vinho.
Figura 6 - Boxplot de citric acid e quality

Fonte: O Autor
Na figura 6, temos que quanto maior a quantidade de ácido cítrico no vinho, melhor a sua qualidade. Isso acontece, porque o ácido cítrico proporciona uma sensação de frescor e sabor ao vinho.
Figura 7 - Boxplot de density e quality

Fonte: O Autor
A densidade parece não interferir muito na qualidade do vinho, como visto na figura 7, então podemos esperar sua contribuição para o modelo não seja grande.
Figura 8 - Boxplot de total sulfur dioxide e quality

Fonte: O Autor
A feature total sulfur dioxide representa a quantidade de dióxido de enxofre total. Em menores quantidades, o dióxido de enxofre livre não apresenta gosto no vinho, mas em quantidades maiores que 50 ppm, ele pode alterar o sabor do vinho, diminuindo sua qualidade. É o que foi visto na figura 8.
Figura 9 - Boxplot de chlorides e quality

Fonte: O Autor
Já na figura 9, temos que uma maior quantidade de cloreto no vinho, menor sua qualidade. Isso se deve ao fato de que o cloreto, em maiores quantidades, pode dar ao vinho um gosto salgado, prejudicando seu sabor.
Tabela 2 – Features do modelo

Fonte: O Autor
Com as informações de quais são as features mais importantes, temos elas resumidas na tabela 2, foi feito o modelo de multiple linear regression, visando prever a qualidade do vinho.
Tabela 3 – Accuracy do modelo

Fonte: O Autor
Figura 10 - Weight de cada feature no modelo

Fonte: O Autor
Na tabela 3, temos o resultado para a accuracy do modelo e na figura 10 temos os valores dos weights. Nela, podemos observar que alcohol é a feature que mais impacta a qualidade do vinho, juntamente com sulphates, que age como antioxidante e antimicrobiano. Já volatile acidity impacta negativamente a qualidade, já que uma alta quantidade de ácido acético afeta negativamente o sabor do vinho. Ainda na figura 10, temos que density e citric acid são positivos para a qualidade, mas não são de grande importância quando comparados com sulphates e alcohol. Portanto, um fabricando de vinhos precisar ficar atento, principalmente, a quantidade de ácido acético para não afetar a qualidade do seu produto.
O resultado visto na tabela 3 não é ideal, mas podemos apontar alguns fatores que contribuíram para o baixo desempenho do modelo. Informações como ano da safra, tempo de maturação do vinho, se foi guardado em barril ou tanque, qualidade da matéria prima, local da safra e etc, são fatores fundamentais para compreender a qualidade de um vinho, portanto de posse dessas informações, poderíamos ter um ganho na accuracy do modelo. Porém, o fator mais crítico para o modelo feito, foi o dataset desbalanceado, já que havia muitos vinhos de qualidade 5 e 6, como visto na figura 2, em comparação com os demais. Isso prejudicou o algoritmo na hora de verificar o que, de fato, aumenta ou diminui a qualidade do vinho, então com um dataset mais balanceado, poderíamos ter um modelo melhor.
Todo o código você encontra no meu Github: https://github.com/williamausenka/ML_estudos_de_caso/tree/main/Quality%20Red_Wine%20-%20MLR
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!
Comments