Coder Social home page Coder Social logo

2020l-warsztatybadawcze-imputacja's Introduction

2020L-WarsztatyBadawcze-Imputacja

Plan zajęć

  • 2020-03-17 - praca domowa 1

  • 2020-03-24 - praca domowa 1

  • 2020-03-31 - prezentacje o technikach imputacji

  • 2020-04-07 - prezentacje o technikach imputacji

  • 2020-04-21 - konsultacje

  • 2020-04-28 - praca domowa 2

  • 2020-05-05 - projekt

  • 2020-05-19 - projekt

  • 2020-05-26 - projekt

  • 2020-06-02 - projekt (termin oddania całego projektu (artykułu))

  • 2020-06-09 - ?

  • 2020-06-16 - ?

Prezentacje (15 pkt.)

Należy przygotować prezentację o wybranej pakiecie do imputacji danych. Prezentacje należy wykonać w grupach, najlepiej grupach projektowych. Oprócz krótkiej prezentacji z wprowadzeniem do technik użytych w danym pakiecie należy przygotować krótki skrypt z przykładem użycia pakietu. Propozycje pakietów:

  • Amelia - Jan Borowski, Piotr Fic, Filip Chszuszcz
  • softImpute - Hanna Zdulska, Dawid Przybyliński, Jakub Kosterna
  • missMDA - Mateusz Grzyb, Elżbieta Jowik, Ada Gąssowska
  • mice - Martyna Majchrzak, Jacek Wiśniewski, Agata Makarewicz
  • missForest - Renata Rólkiewicz, Jakub Wiśniewski, Jakub Pingielski, Paulina Przybyłek
  • VIM - Marceli Korbin, Patryk Wrona, Mikołaj Jakubowski
  • FHDI

Inne pakiety R dotyczace technik imputacji można znaleźć tutaj

Prace domowe (15 pkt.)

Praca domowa 1 (7 pkt)

Praca domowa wykonywana jest pojednczo. Należy wybrać jeden zbiór danych z OpenML100, w którym występują braki danych i dla wybranego zbioru danych:

  • wykonać analizę eksploracyjną,
  • zastosować proste techniki obróbki brakujących danych (usunięcie kolumn, wierszy, uzupełnienie średnią lub medianą),
  • wytrenować jeden algorytm uczenia maszynowego dla każdego sposobu uzupełnienia braków danych

Na podstawie otrzymanych wyników trzeba przygotować krótki raport, który będzie zawierał opis metodologii i podsumowanie wyników. Na zajęciach każdy powinien zaprezentować 5 min podsumowanie.

Baza zbiorów danych

W folderze datasets stworzymy bazę zbiorów danych dotyczących klasyfikacji binarnej. Dla każdego zbioru danych należy stworzyć podfolder o nazwie openml_dataset_id. W podfolderze powinien znajdować się:

  • code.R - skrypt, w których wykonywane jest czyszczenie danych wzór. W tym skrypcie nie należy wykonywać imputacji brakujących danych (zmiana typów danych, usunięcie kolumn, zakodowanie pewnych znaków jako NA).

    Ważne, aby w skrypcie ostateczny zbiór danych zapisany był w zmiennej dataset a nazwa kolumn ze zmienną objaśnianą target_column.

  • dataset.json - plik json z najważniejszymi charakterystykami wyczyszczonego zbioru danych. Kod do jego wygenerowania znajduje się tutaj

Praca domowa 2 (8 pkt)

Praca domowa wykonywana jest w grupach projektowych.

Dla dotychczas zgromadzonych zbiorów danych dotyczących klasyfikacji datasets należy przetestować minimum 5 technik imputacji danych. Wśród tych technik powinna się znaleźć co najmniej jedna prosta technika (usuwanie kolumn z brakami lub wypełnianie braków średnią/modą) i co najmniej dwie techniki bardziej zaawansowane przedstawione podczas prezentacji ( z pakietu mice, Amelia itd.).

Dla każdego uzupełnionego zbioru danych należy dopasować jeden algorytm uczenia maszynowego i ocenić jakość predykcyjną modelu (warto rozważyć różne miary). Przy analizie wyników warto zwrócić uwagę na czas potrzebny do imputacji danych.

Na podstawie otrzymanych wyników trzeba przygotować krótki raport (po angielsku), który będzie miał strukturę końcowego artykułu (wstęp, opis metodologii i wyników). Najbardziej skupcie się na opisie metodologii. Na zajęciach każdy zespół powinien zaprezentować 10 min podsumowanie.

Ocena: 50% - raport, 50% - ilość przeanalizowanych zbiorów danych.

Projekt (55 pkt.)

Celem projektu jest wykonanie analizy porówanwczej dla różnych zbiorów danych z brakującymi danymi jakości działania różnych technik imputacji braków danych i różnych algorytmów uczenia maszynowego.

Dla zgromadzonych danych dotyczących klasyfikacji datasets należy przetestować minimum 5 technik imputacji danych i minimum 4 algorymy uczenia maszynowego. Otrzymane wyniki należy przeanalizować pod względem zależności siły predykcyjnej zastosowanych modeli i zastosowanych technik imputacji.

Dodatkowo warto wziąć pod uwagę:

  • zależności siły predykcyjnej zastosowanych modeli, zastosowanych technik imputacji i cech zbiorów danych
  • porównanie czasu potrzebnego na wykonanie danej imputacji

Rezultatem prac powinien być krótki artykuł naukowy (40 pkt.), minimum 3 strony umieszczony jako rozdział książki online, która powstanie w ramach przedmiotu. Podział punktów w ramach artykułu

  • Abstrakt: 5 pkt.
  • Wstęp + Motywacja: 10 pkt
  • Opis metodologii i wyników: 15 pkt.
  • Wnioski: 10 pkt.

Projekt nalezy zaprezentować w postaci Lightning Talka na jednym z ostatnich wykładów (15 pkt.).

Mamy już repozytorium z ebookiem, w którym będziemy umieszczać artykuły. Podrozdział powinien zawierać autorów oraz deskryptywny tytuł, odpowiadający temu o czym chcielibyście napisać. Jeśli w trakcie wykonywania projektu zmieni się koncepcja, to tytuł oczywiście można potem zmienić.

Jak dodać swój rozdział?

Książka będzie służyć do artykułów wszystkich grup robiących Warsztaty Badawcze I i Warsztaty Badawcze II. Z tego powodu podzielona jest na 3 rozdziały, drugi z nich odpowiada naszym projektom o imputacji.

  • Pliki zaczynające się od 1-0, 2-0, 3-0 to wstępy do rozdziałów, które uzupełnię ja i pozostałe prowadzące.

  • Pliki zaczynające się od 2-1. 2-2, 2-3, ... to podrozdziały, które powinny odpowiadać grupom. Przykładowy plik to 1-1-example-article.Rmd. Na jego podstawie stwórzcie Wasze pliki z podrozdziałami. Taki plik powinien zawierać co najmniej tytuł i autorów. Mile widziany jest też szkielet artykułu, czyli nagłówki (mogą być identyczne jak w pliku z przykładem). Sam artykuł polecam pisać w czystym Markdownie, nie trzeba używać żadnych komend z R.

  • Istotne jest, że najwyższy stopień nagłówka w plikach z artykułami to ##, dzięki temu będą one podrozdziałami dla pliku 1-0-reproducibility.Rmd gdzie jest nagłówek wyżej, czyli z jednym #. Przy pull requestach, proszę, pilnujcie zagnieżdżeń tych nagłówków, żeby nam się struktura nie rozjechała :).

  • Robiąc pull request z pracą domową zacznijcie jego nazwę od IMP. Dzięki temu łatwiej mi będzie wyłapywać PR dotyczce naszego projektu. W PR powinien zostać dodany tylko jeden plik .Rmd, bez renderowania książki na nowo.

Jak lokalnie podejrzeć czy rozdział dobrze się renderuje?

Książka utworzona jest pakietem R bookdown i tym też pakietem można ją wyrenderować. W tym celu trzeba:

  1. Sklonować lub pobrać repozytorium https://github.com/mini-pw/2020L-WB-Book

  2. Zainstalować zależności

devtools::install_dev_deps()
  1. Wyrenderować książkę do HTML
bookdown::render_book('./', 'bookdown::gitbook')

Pliki z książką znajdują się w folderze docs, żeby ją podejrzeć można otworzyć plik docs/index.html

Lub do PDF

bookdown::render_book('./', 'bookdown::pdf_book')

Jak cytować w ebooku?

Cytować będziemy używając formatu BibTeX. Informacje o cytowanych artykułach trzeba umieścić w pliku book.bib znajdującym się w repozytorium z książką. Są tam przykładowe prace w formacie BiBTex.

Zazwyczaj na stronie czasopisma da się wygenerować taki plik BiBteXowy dla artykułu, czasem jest to dosyć ukryte, najlepiej szukać przycisku z napisem "citation". Gdyby się nie udało polecam poszukać numeru doi artykułu i skorzystać ze strony doi2bib.

Kiedy uda się umieścić artykuł w pliku book.bib odwoływać się do prac można przez [@nazwa], gdzie nazwa to ciąg znaków z pierwszego pola z BiBteXa. Przykład użycia jest w pliku index.Rmd (cytowanie rlang).

Blog (15 pkt.)

Informacje w repzytorium Wykładu

Repozytorium z blogiem

Link do bloga

2020l-warsztatybadawcze-imputacja's People

Contributors

woznicak avatar kostee avatar m-majchrzak avatar ejowik avatar okcze avatar p-przybylek avatar mgrzyb99 avatar agassowska avatar jakwisn avatar jjanborowka avatar z-xbeova avatar hazdula avatar wronapatryk avatar amakarewicz avatar jakubpi avatar jacekchess avatar agosiewska avatar arctickey avatar

Watchers

James Cloos avatar

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.