Gruppetime: Maskinlæring#

Kjemiske parametre i rødvin#

I denne oppgava skal vi se nærmere på hvordan vi kan bruke maskinlæring til klassifisering og prediksjon. Nærmere bestemt skal vi lage en modell som avgjør hvilke kjemiske parametre som avgjør om en vin er god eller ikke.

Fila vin.csv beskriver ulike kjemiske parametre i 1500 rødviner, i tillegg til en vurdering av vinkvaliteten, på en skala fra 1–8.

a) Les fila med Pandas og beskriv de ulike kategoriene for hverandre.

Et korrelasjonsplott viser hvor stor sammenheng det er mellom ulike faktorer. Dersom korrelasjonen er 1, vil det si at dersom den ene faktoren øker, øker den andre tilsvarende. De er altså proporsjonale størrelser. Dersom korrelasjonen er -1, vil en økning i den ene faktoren medføre en minkning i den andre faktoren. De er derfor omvendt proporsjonale størrelser. Dersom korrelasjonen er 0 eller nært 0, er det ingen eller svak korrelasjon (sammenheng) mellom faktorene.

Vi kan lage et korrelasjonsplott slik (husk å importere relevante biblioteker først):

plt.figure(figsize=(15,10)) # Endrer figurstørrelse slik at det er lettere å se figuren
corr = df.corr()            # Regner ut korrelasjonen med Pandas
sns.heatmap(corr)           # Lager korrelasjonsplott
plt.xticks(rotation=45)     # Roterer x-akseteksten 45 grader for å lettere se faktorene
plt.show()

b) Lag et korrelasjonsplott med utgangspunkt i alle kategoriene i datasettet ved å kjøre koden ovenfor. Hvilke faktorer ser ut til å korrelere med god vinkvalitet? Gi også eksempler på faktorer som ikke korrelerer og faktorer som har negativ korrelasjon. Forklar hva dette betyr. Prøv gjerne å forklare noen av korrelasjonene.

c) Lag et søylediagram med vinkvalitet på førsteaksen og det totale innhold med svoveldioksid på andreaksen. Hva kan årsaken være til denne fordelingen? Sammenlikn med korrelasjonen mellom disse faktorene. Du kan benytte seaborn-funksjonen barplot.

d) Lag en ny kolonne i datasettet som inneholder “kvalitetskategorien” til vinen. Den skal inneholde 0 hvis vinen har under 6 i kvalitet, og 1 hvis den har 6 eller mer. Dette er altså en kategori som bestemmer om vinen er av lav kvalitet (5 eller lavere) eller god kvalitet (6 eller høyere).

e) Lag en modell som skal forutsi kvalitetskategorien til vinen. Bruk en bestemmelsestrealgoritme som grunnlag for modellen. Følg framgangsmåten som er beskrevet her.

f) Test og valider modellen din. Kommenter resultatet. Hvorfor brukte vi en egen kvalitetskategori og ikke vinkvaliteten på en skala fra 1–8 direkte?

g) Konklusjon: Hva er maskinlæring, og hvordan kan vi bruke det som verktøy til å lage modeller i kjemi?