Oppgaver: Logistisk Regresjon#
I denne oppgaven skal vi se på modeller (i hovedsak ved bruk av logistisk regresjon) som, ved hjelp av størrelsene til beger- og kronbladene til ulike typer iris, kan forutsi om irisen er av type setosa, versicolor eller virginica.
Tips: bruk den allerede eksisterende target kolonnen (som er 0 hvis setosa, 1 dersom versicolor og 2 dersom virginica)
Last inn iris-datasettet som en panda datafram i python (dette bør være kjent fra oppgaven i lineær regresjon)
Se på dataene som boxplot og som scatterplot. Hva tror du om mulighetene for å kunne si noe om iris-typene basert på lengden/bredden til beger- og kronbladene? Hvilke obervasjoner/målinger ser isåfall mest lovende ut når det gjelder å forutsi typen iris?
Tips: Du kan gruppere en dataframe basert på verdier i en gitt kolonne (her: species) ved å bruke groupby:
df.groupby("species").
Hvis du vil lage et scatterplot med ulike farger for de ulike typene iris kan du først definere en figur og så loope over alle typene iris (df['species'].unique()
) og plotte hver enkelt for seg selv, f.eks:
fig, ax = plt.subplots()
for t in df['species'].unique():
df[df["species"] == t].plot.scatter(<...>)
Se dokumentasjon om hvilke argumenter som må spesifiseres i scatter-funksjonen.
Lag først en lineær regresjonsmodell som gir sannsynligheten for setosa eller versicolor gitt en av de tilgjengelige målingene (baser gjerne valget ditt fra plottene i oppgaven over). Plot modellen sammen med datapunktene? Hva kan du si om modellen?
Lag en logistisk regresjonsmodell som gir sannsynligheten for setosa eller versicolor med de samme input-dataene som over. Plot modellen sammen med datapunktene. Hvordan ser denne modellen ut i forhold til den fra forrige oppgave?
Dersom jeg måler lengde/bredde til beger/kronblad (avhengig av hva du valgte å bruke i modellen) til 3 forskjellige blomster til å være hhv. 2, 6 og 9 cm - og jeg i utgangspunktet ikke har noen anelse om hvilke type iris jeg ser på - kan du si, ved å bruke modellen, si noe om hvilke type iriser jeg har funnet?
Kan du tenke deg måter å forbedre modellen på som kunne gitt bedre resultater?
Lag en fler-variabel (multiple) logistisk regresjonsmodell ved å inkludere flere predikatorer som du vurderer kan bidra til en bedre modell for iris-klassifikasjon.
Tips: for å trekke ut flere kolonner fra en dataframe til en numpy-array kan man bruke følgende kode (hvor A, B og C er navn på kolonnene du vil ha tak i):
df[["A","B","C"]].values
Lag en multinomisk (multinominal) logistisk regresjonsmodell ved å inkludere også muligheten for at iris-typen kan være virginica