Definindo o problema de negócio

O objetivo é definirmos a qualidade de um vinho branco baseado em suas caracteristicas 'physicochemical'. Os vinhos possuem uma qualidade que varia entre 0 e 10, possuindo valores continuos. Sendo assim a variavel target será convertida para qualitativa.

Qualidade >= 6.5 -> Bom

Qualidade < 6.5 -> Ruim

-- Problema de Negócio
   Com os resultados de qualidade é possível melhorar a distribuição logistica e a precificação dos vinhos. Ainda é possível descartar vinhos de baixa qualidade ou reutilizar em outros processos industriais se possível.
   É esperado que os resultados auxiliem na tomada de decisão sobre o que fazer com um vinho de menor qualidade que o esperado. Uma das abordagens sugeridas é não enviar esse produto para o mercado de trabalho, visto que o cliente leal a empresa espera um nivel de qualidade que se não for atendido pode levar a perda de um cliente.
   Uma segunda abordagem seria identificar o por quê do produto estar possuindo uma qualidade inferior aos outros, pois pode tratar-se de um defeito em maquinas industriais, que minimanente causa impacto na qualidade do vinho.

   É esperado atingir uma acurácia de 85% com precisão de no minimo 70% para qualquer das classes de saida.

Dataset 01: https://www.kaggle.com/uciml/red-wine-quality-cortez-et-al-2009

Dataset 02: https://archive.ics.uci.edu/ml/datasets/wine+quality

Variáveis da base

O que cada uma das varíaveis presente representa:

fixed acidity (apenas ácido tartárico): O ácido tartárico, facilmente encontrado em uvas e na sua fermentação. Aumenta a ácidez e a longevidade do vinho.

volatile acidity (apenas ácido acético): Associado ao gosto e principalmente ao cheiro de vinagre, também relacionado a bactérias e a oxidação. Níveis elevados desse ácido podem não ser desejados.

citric acid (apenas ácido cítrico): Uvas que crescem em ambientes mais quentes normalmente são menos ácidos. O ácido cítrico, normalmente é adicionado no processo de fermentação para aumentar a ácidez do vinho. Elevados nível de ácido cítrico podem contribuir para a geração de bactérias não desejadas no vinho.

residual sugar: Quantidade de açucar que permanece após a fermentação. Diretamente ligado a classificação do vinho, normalmente dividido em: Bone Dry (0-1 G/L), Dry (0-17 G/L), Off-Dry(17-35 G/L, Medium-Sweet (35-120 G/L), Sweet(120 G/L +).

chlorides (Cloreto de sódio): Basicamente a quantidade de sal no vinho. Quantidades elevadas podem gerar um vinho mais salgado.

free sulfur dioxide: Protege o vinho de oxidação e deterioração, porém em grandes quantidades pode gerar um sabor amargo/metálico/queimado. Quanto maior for o pH do vinho menos efetivo vai ser esse reagente. Produzido naturalmente no processo de fermentação.

total sulfur dioxide (free sulfur dioxide + bound sulfur dioxide): Quantidade total de dióxido sulfúrico no vinho, todo o dióxido que estiver atrelado a alguma molécula não serve de proteção ao vinho. Grandes quantidades podem gerar um odor de podre.

density: A densidade do vinho esta relacionada com o seu plantio, quanto maior a densidade menor a sua qualidade, isso se da pois as videiras irão dividir os nutrientes no solo.

pH: Descreve o quão acido é um vinho, possuindo uma escala de 0 a 14, onde 0 é muito acido e 14 se forma uma base. Os vinhos possuem pH entre 3 e 4.

sulphates: Atua como antioxidante no vinho, reduzindo a sua oxidação e criação de bacterias. Os vinhos brancos não possuem antioxidantes naturais sendo assim é necessário doses maiores de SO2 (dioxido de enxofre).

alcohol: Diretamente ligado a qualidade do vinho a tendência é que vinhos de maior qualidade possuam maior teor alcolico, o que nem sempre se comprova.

Imports

Analise Exploratoria

Analise Exploratoria - Sem Processamento

Analisando algumas variaveis, percebemos que o 'residual sugar' médio dessa base é 6.39 g/l e o maximo 65.80 g/l (outlier), indicando que a nossa base não possui vinhos muito doces. Algumas colunas como chlorides, free sulfur dioxide e total sulfur dioxide possuem alguns valores muito altos, possivelmente outliers. O pH médio é de 3.18 com no maximo 3.82, indicando que essa base não possui altos niveis de pH. O nivel de alcool nessa base claramente não é muito alto, visto que a média é de 10.51 indicando vinhos de baixo teor alcolico. Porém observando o Q3 (75%) é perceptivel que alguns vinhos possui um teor alcolico significativo e com o valor maximo possuindo alto valor alcolico, possivelmente um outlier.

Conforme analisado a redução do uso de memoria trouxe consequencias significativas para o modelo, assim será descartada a sua utilização.

É perceptivel que as variaveis com maior correlação são: 'fixed acidity', 'volatile acidity', 'chlorides', 'total sulfur dioxide', 'density' e 'alchohol'. Dessa forma as outras variaveis não possuem grande relevância para a variavel target 'quality'.

Avaliando MultiColinearidade

Procurando pelo menor valor gerado no eigenvalues encontramos na posição 1 o valor 0.02064. Assim precisamos buscar essa posição no auto vetor para descobrir os valores com possivel multicolinearidade.

Avaliando os valores na lista de auto vetores. Percebe-se que os valores que mais se destacam estão nas posições 0, 3, 7, 8 e 10. Esses valores se destacam por estarem muito altos em relação aos outros, principalmente posição 3, 7 e 10.

Primeiramente é exibido as variaveis com os valores que mais se destacaram, após é exibido com os valores que tiveram um destaque menor. Avaliamos que as variaveis 'density', 'residual sugar' e 'alcohol' são muito bem representadas pela variavel 'density', então pode ser recomendado a remoção das outras duas mantendo somente 'density'. Essa relação pode ser bem visualizada no mapa de calor da correção entre as variaveis.

Avaliando a correlação entre as variaveis para ver qual se destaca entre as suas correlações, percebe que 'density' continua sendo a que melhor representa 'residual sugar' e 'alcohol'. Porém a variavel 'fixed acidity'apresentou uma boa representatividade sobre a variavel 'pH'. Pode ser uma boa ideia remover a variavel pH do dataset também.

Assim as variaveis 'fixed acidity', 'residual sugar', 'density', 'pH' e 'alcohol' poderiam ser resumidas para 'density' e 'fixed acidity'.

Para ter uma maior certeza sobre os resultados acima podemos montar um scatter plot para ver a representação dos pontos. Como analisado nos graficos abaixo essa tendência da representatividade das variaives é comprovada. Porém, deve-se ficar atento a variavel 'density' e 'residual sugar', pois diferente das outras variaveis a sua representatividade não parace ser tão forte, podendo ter sido puxada por um outlier identificado. Vale um teste de remoção do outlier para testar a nova correção entre as variaveis.

Pre-Processamento

Detectando e Removendo Outliers

Primeiramente para removermos outliers precisamos entender alguns detalhes sobre o nosso dataset. Entender se as suas variaives seguem uma distribuição normal Gaussiana. Para isso podemos utilizar o calculo de skewness, valores que distuarem muito de -1 e 1 podem ser ditos que não seguem uma distribuição normal Gaussiana. Como analisado abaixo possuimos algumas variaveis que não seguem a distribuição normal, como por exemplo 'volatile acidity', 'citric acid', 'chlorides' e 'free sulfur dioxide'.