Denne mappen inneholder prosjektleveransen for emnet Statistisk læring og Data Science (ISTx1003) ved NTNU, høsten 2024. Prosjektet fokuserer på anvendelse av regresjon, klassifikasjon og klyngeanalyse for å analysere LEGO-datasett.
- Prosjektoversikt
- Datasettbeskrivelse
- Mappestruktur
- Installasjon og oppsett
- Bruksanvisning
- Oppgavebeskrivelse
- Referanser
Prosjektet består av tre hoveddeler:
- Regresjonsanalyse (50%): Bruk av multippel lineær regresjon for å utforske forholdet mellom egenskaper ved LEGO-sett (f.eks. antall brikker) og pris.
- Klassifikasjon (30%): Implementasjon av klassifikasjonsmetoder på datasettet.
- Klyngeanalyse (20%): Bruk av klyngeanalyse for å identifisere mønstre i datasettet.
Formålet med prosjektet er å bruke statistiske og maskinlæringsbaserte metoder for å trekke innsikter fra datasettet og løse problemstillinger basert på definert pipeline og metodologi.
Datasettet er hentet fra artikkelen Building a Multiple Linear Regression Model With LEGO Brick Data av Peterson og Ziegler (2021). Det består av 1304 observasjoner samlet fra 1. januar 2018 til 11. september 2020, og inkluderer følgende variabler:
- Set Name: Navn på LEGO-settet
- Theme: Tema settet tilhører
- Pieces: Antall brikker i settet
- Price: Pris i dollar
- Pages: Antall sider i byggeinstruksjonen
- Unique Pieces: Antall unike brikker
Datapreprosessering, inkludert opprensking av data og omkoding, er utført i main.py og i oppgave-notatbøkene.
Følgende filer og mapper er inkludert i prosjektet:
/lego-data-analysis
│
├── oppg1.ipynb # Notatbok for Oppgave 1: Multippel lineær regresjon
├── oppg2.ipynb # Notatbok for Oppgave 2: Klassifikasjon
├── oppg3.ipynb # Notatbok for Oppgave 3: Klyngeanalyse
├── main.py # Python-script for opprensking og visualisering av data
├── lego.population.csv # LEGO-datasettet
└── README.md # Denne filen
-
Klon eller last ned dette prosjektet fra GitHub.
-
Installer nødvendige biblioteker med følgende kommando:
pip install -r requirements.txt
Krav:
- Python 3.8 eller nyere
- Nødvendige pakker:
pandas,numpy,matplotlib,seaborn,statsmodels,scipy
-
Last opp datasettet
lego.population.csvtil riktig katalog.
- Start Jupyter Notebook:
jupyter notebook
- Åpne og kjør de respektive
.ipynb-filene for oppgavene. - For å kjøre dataopprensking og visualisering separat, bruk:
python main.py
- Definer en problemstilling, for eksempel:
- "Er LEGO for gutter dyrere enn LEGO for jenter?"
- Analyser datasettet ved hjelp av multippel lineær regresjon.
- Implementer klassifikasjonsmodeller for datasettet.
- Svarene skal legges inn i en forhåndsdefinert mal.
- Bruk klyngeanalyse for å identifisere mønstre i LEGO-temaene.
- Resultatene skal dokumenteres i samme mal som oppgave 2.
- Peterson, A. D., & Ziegler, L. (2021). Building a Multiple Linear Regression Model With LEGO Brick Data. Journal of Statistics and Data Science Education, 29(3), 297–303.
- NTNU ISTx1003 Prosjektbeskrivelse (2024).