Tarefa 5 - Procurando o melhor vinho.
A tarefa tem como objetivo determinar de quais testes físico-químicos determinam um bom vinho, analisando a relação entre os testes e a qualidades e detecção de outliers entre os vinho de melhor qualidade.
Utilizamos os mesmos dados de qualidade de vinho da Tarefa 2, que são disponíveis tanto no site UCI, como no OpenML. Os dados podem ser lidos usando o pacote Pandas:
import pandas as pd
dados = pd.read_csv('winequality-red.csv', sep=';')
1) Usando a matriz de correlação (dados.corr()), determine a correlação entre a coluna 'quality' que determina classificação de qualidade de vinho, e selecione três atributos que possuem melhores correlações com a qualidade. Imprime os nomes dos atributos escolhidos.
2) Para cada atributo selecionado prepare um barplot, com média do atributo para cada rótulo de qualidade para visualizar como o atributo depende da qualidade. Utilize, por exemplo, a rotina barplot do pacote de visualização estatística seaborn. Veja a descrição e exemplos aqui ou o exemplo abaixo.
import seaborn as sns
quality_alcohol = dados[['quality', 'alcohol']]
sns.barplot(x = 'quality', y = 'alcohol', data = quality_alcohol)
plt.savefig('quality_vs_alcohol_bar.pdf')
3) Separa os vinhos de melhor qualidade (classe 8). Use MinMaxScaler do pacote scikit-learn para normalizar os atributos. Realize detecção de outlier usando LocalOutlierFactor com parâmetro n_neighbors = 10. Veja o exemplo: Outlier detection with Local Outlier Factor (LOF).
4) Gere dois gráficos mostrando dependências entre atributos selecionados no ponto 1 (por exemplo, 1 vs 3, e 2 vs 3) com outliers marcados.
Veja o tutorial "How to Use Data Science to Understand What Makes Wine Taste Good" para algumas dicas.