Oppgaver: Logistisk Regresjon

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)

  1. Last inn iris-datasettet som en panda datafram i python (dette bør være kjent fra oppgaven i lineær regresjon)

  2. 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.

  1. 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?

  2. 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?

  3. 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?

  4. Kan du tenke deg måter å forbedre modellen på som kunne gitt bedre resultater?

  5. 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

  1. Lag en multinomisk (multinominal) logistisk regresjonsmodell ved å inkludere også muligheten for at iris-typen kan være virginica