SOS2901 Maskinlæring for samfunnsvitere

Oppgaver til hver undervisningsuke

Author

Torbjørn Skardhamar

Published

February 23, 2026

Introduksjon

Dette dokumentet gir en oversikt over hva vi skal dekke i løpet av semesteret. Det lages delvis underveis, så det vil bli oppdateringer innimellom. Det vil kunne skje endringer i dokumentet underveis gjennom hele semesteret.

Hvert kapittel starter med en introduksjon til temaet og et empirisk eksempel. Datasettene vil dere finne i rommet i Canvas. Last de ned til egen maskin for å jobbe med dem.

Undervisningsvideoer

Det finnes noen undervisningsvideoer fra noen år tilbake. Disse dekker omtrent de vi går gjennom i undervisningen, men er ikke nødvendigvis helt oppdaterte. Dere har tilgang til disse videoene på denne lenken

Hva vi forutsetter av forkunnskaper

Dette kurset forutsetter at man har grunnleggende ferdigheter i kvantitative metoder og har brukt R før. Hvis du vet du trenger det: frisk opp litt fra tidligere kurs.

Når det er sagt, så er det begrenset hvor mye man kunne fra før hvis du er motivert til å jobbe med stoffet skal du nok få til dette. Det blir mye nytt uansett.

Hvis du trenger oppfriskning av hvordan R fungerer, så er Wickham & Grolemunds bok “R for data science” et utmerket oppslagsverk. Men merk at vi i begrenset grad vil bruke “Tidyverse” til annet enn datahåndtering og noe grafikk.

R og Rstudio

Installasjon

Du må installere både R og Rstudio på din datamaskin. Hvis du har Windows-maskin trenger du også installere Rtools. Hvis du har Mac OS X kan det hende du må installere XQuartz.

Se ellers video fra SICSS

Pakker

R er basert på bruk av “pakker” som må installeres for å få tilgang til funksjoner vi skal bruke. Disse installeres med bruk av kommandoen install.packages(). F.eks. kan man installere pakken Tidyverse med følgende: install.packages("tidyverse").

For å installere flere pakker kan man kjøre install.packages() flere ganger, men det er enklere å liste opp alle pakkene i et objekt og så kjøre install.packages() på dette objektet. Noe slikt:

Vi skal i hvert fall bruke de pakkene som installeres med følgende kode:

pkgs <- c("tidyverse", "randomForest", "rpart", "rpart.plot",
           "rsample", "fairness", "DALEX", "fairmodels", "xgboost",
           "mgcv", "splines", "Ecdat",
           "ipred", "pROC", "caret", "forcats", "gtsummary", "janitor",
           "gbm", "dendextend", "directlabels", "GGally")
install.packages(pkgs)

Det kan hende vi kommer til å bruke flere etterhvert.

Men for at du skal kunne bruke pakkene må du aktivere dem i R ved library(). Dette må du gjøre hver gang du starter opp R. Hvert kapittel starter med en oversikt over hvilke pakker som brukes i det kapittelet.

Oversikt over pakker brukt i heftet

Tabellen under gir en oversikt over alle pakkene vi bruker, med en kort forklaring og de viktigste funksjonene.

Pakke Beskrivelse Viktige funksjoner Kapittel
tidyverse Samling av pakker for datahåndtering og grafikk mutate(), select(), filter(), ggplot(), glimpse() Alle
rsample Splitting av data i training/testing initial_split(), training(), testing() Alle supervised-kapitler
mgcv Generaliserte additive modeller (GAM) gam(), s() Lineær regresjon
splines Spline-funksjoner for fleksibel regresjon bs() Lineær regresjon
Ecdat Datasett for økonometri (Clothing-data) data(Clothing) Lineær regresjon
pROC ROC-kurver og AUC-beregning roc(), auc() Logistisk regresjon
caret Confusion matrix og modellevaluering confusionMatrix() Logistisk regresjon, CART, Bagging, Random forest, Boosting
rpart Klassifikasjonstrær (CART) rpart(), prune() CART, Bagging
rpart.plot Plotting av klassifikasjonstrær rpart.plot(), rpart.rules() CART, Bagging
ipred Bagging av klassifikasjonstrær bagging() Bagging
forcats Rekoding og håndtering av factor-variable fct_lump(), fct_recode() Bagging
randomForest Random forest-algoritmen randomForest(), varImpPlot(), partialPlot() Random forest
fairness Mål på rettferdighet/bias acc_parity(), fnr_parity(), fpr_parity() Boosting
gbm Gradient boosting gbm(), gbm.perf() Boosting
DALEX Forklarbare modell-objekter (explainers) explain() Fairness
fairmodels Fairness-sjekk og visualisering fairness_check(), fairness_heatmap() Fairness
gtsummary Pene sammendragstabeller tbl_cross(), tbl_summary() Boosting
janitor Datarensing clean_names() Diverse
dendextend Dendrogram-visualisering Unsupervised
directlabels Direkte labels i plot Unsupervised
GGally Utvidelser til ggplot2, scatterplotmatriser ggpairs() Unsupervised