Code Monkey home page Code Monkey logo

imdb-analysis's Introduction

Otkrivanje znanja u podacima - Završni rad

  • Diplomski studij

  • Nositelji kolegija:

    • prof. dr. sc. Maja Matetić
    • mag. educ. math. et inf. Dejan Ljubobratović
  • Autori:

    • Andrea Hrelja
    • Mario Sliško
  • Odjel za informatiku, Sveučilište u Rijeci

  • Završni rad, 2021/2022

Opis zadatka

IMDb logo

Potrebno je izvršiti analizu podataka po fazama kao što su opisani u knjizi (Data Science Using Python and R, Daniel T. Larose), prema načelima metodologije podatkovnih znanosti. Analiziraju se IMDB skupovi podataka - nastoji se predvidjeti prosječnu ocjenu filma na temelju redatelja i žanra kojeg režisira.

Sadržaj

  1. Razumijevanje problema
  2. Priprema podataka
  3. Istraživačka analiza podataka
  4. Oblikovanje baznog modela, balansiranje podataka, particija podataka (treniranje i testiranje)
  5. Primjena različitih postupaka strojnog učenja
  6. Odabir najboljeg modela, evaluacija
  7. Primjena u stvarnim uvjetima

Razumijevanje problema

Analiziraju se IMDB Dataset skupovi podataka:

  • title.ratings.tsv.gz - Prosječna ocjena filma
  • name.basics.tsv.gz - Informacije o dionicima filma (imena i prezimena redatelja, pisaca, glumaca i ostalih)
  • title.basics.tsv.gz - Informacije o filmu (naziv, godina, vrsta, žanrovi...)
  • title.principals.tsv.gz - Predstavlja veze između filma i njegovih dionika

Nastoji se predvidjeti prosječnu ocjenu filma na temelju redatelja i žanra kojeg režisira.

Priprema podataka

Koristi se Python modul prepare.py.
Datoteke dijele varijable tconst kao ID filma, te nconst kao ID dionika. Iz svakog se skupa podataka prikuplja nekoliko varijabli:

- title.ratings.tsv.gz
  - tconst (string)
  - averageRating (float)
  - numVotes (integer)

- name.basics.tsv.gz
  - nconst (string)
  - primaryName (string)

- title.basics.tsv.gz
  - tconst (string)
  - titleType (string)
  - primaryTitle (string)
  - startYear (YYYY)
  - runtimeMinutes (integer)
  - genres (array of strings)

- title.principals.tsv.gz
  - tconst (string)
  - nconst (string)
  - ordering (integer)
  - job (string)

Istraživačka analiza podataka

Koristi se Jupyter bilježnica eda.ipynb.

Oblikovanje baznog modela, balansiranje podataka, particija podataka (treniranje i testiranje)

Transformacije koje oblikuju bazni model:

  • filtriraju se filmovi tipa movie (titleType=movie)
  • filtirirani se dataframe svodi (OneHotEncoding) na bazni model [režiser, žanrovi, prosječna_ocjena]
  • podaci se balansiraju tako da svaka prosječna_ocjena (rating) sadrži točno 90000 uzoraka nezavisnih varijabli
  • podaci se particioniraju na trening i test podatke (70% train; 30% test)

One Hot Encoding je algoritam koji svaku vrijednosti jedne varijable (svaku kategoriju jednog direktora) pretvara u zasebnu nezavisnu varijablu:

- nezavisne varijable
  - directorID (integer)
  - Action (bool)
  - Adult (bool)
  - Adventure (bool)
    ...
  - Talk (bool)
  - War (bool)
  - Western (bool)

- zavisna varijabla
  - rating (array of integers) [1, 2, 3, 4, 5]

Podaci se balansiraju tako da bazni model sadrži isti broj uzorka za svaku target kategoriju.

Primjena različitih postupaka strojnog učenja

Primijenjuju se modeli:

  • Decision Tree Classifier (stablo odlučivanja)
  • Random Forest Classifier (slučajne šume)
  • MLP Classifier (nerualna mreža)
  • Logistic Regression (regresijska metoda)

Svaki se model primijenjuje nad balansiranim i nebalansiranim podacima sa zadanim konfiguracijama hiper parametara (model_config.py).

Odabir najboljeg modela, evaluacija (u odnosu na bazni model, model treba biti osjetljiv na cijenu pogreške)

Kao najbolji klasifikatori, u ovom su se eksperimentu pokazali stabla odlučivanja i slučajne šume s identičnim ocjenama:

- train: 99%
- test: 59%

Primjena ovakvog klasifikatora ne bi bila praktična. Za bolje rezultate klasifikacije, potrebno je proširiti skup nezavisnih varijabli.

Primjena u stvarnim uvjetima

  • Christopher Nolan
  • Lamberto Sanfelice

imdb-analysis's People

Contributors

andhrelja avatar

Watchers

 avatar

imdb-analysis's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.