SlideShare a Scribd company logo
1 of 28
Przygotowanie danych do
uczenia maszynowego
Marek Melzacki
● Pythonista,
● Data Scientist,
● NLP – natural language processing,
● Z wykształcenia mechatronik / mechanik,
● Poza pracą – tancerz, planszówkowicz.
● https://goodwrite.pl,
● Sumaryzacja i anotacja tekstów,
● CoDoCzytania.pl,
● BookScout.pl,
● Inne projekty w zakresie: web, Django, NLP,
data science.
Marek Melzacki
Agenda
Agenda
1. Krótko o Pythonie
2. Wstęp do przetwarzania danych
3. Proces przygotowania danych pod model
4. Kluczowe kwestie
5. Sekcja Q&A
Python
Python, czyli co syczy w trawie?
● Guido van Rossum – Benevolent Dictator for Life,
● Projekt open source,
● PEPs - Python Enhance Proposals (np. PEP8, PEP484),
● Zen of Python,
● Ważniejsze wersje: 2.7, 3.6+,
● pip – narzędzie do instalowania bibliotek.
Python, czyli co syczy w trawie?
● Paradygmaty programowania (obiektowy, strukturalny, funkcyjny),
● Dynamicznie typowany,
● Interpreter,
● Wszystko jest obiektem,
● Wcięcia zamiast średników i nawiasów.
Przetwarzanie danych
To przecież proste
Zapisz coś gdzieś
● baza danych
● API
● print
● txt
Weź cokolwiek
● string
● txt
● JPEG
● csv
● XML
● PDF
Zrób coś z tym
● usunięcie polskich znaków
● zliczenie słów
● obrócenie o 90 stopni
● policzenie przychodów
● znalezienie nowych
produktów
To przecież proste: wersja ML
Zapisz coś
gdzieś
Weź cokolwiek
Zrób coś z tym
Ciągły proces na
tych samych
danych, ale inny
etap
● Pozyskanie danych ze źródeł zewnętrznych (csv, html, DB, API, txt, pdf itp.),
● Przekształcenie danych (przeczyszczenie, filtrowanie, statystyki),
● Załadowanie danych do bazy danych / zapis danych (do csv, API, DB).
ETL (Extract, Transform, Load)
Przygotowanie
danych do ML
Źródło
danych
Źródło
danych
Źródło
danych
Dane w
jednym
formacie
(surowe)
Importer
Adapter
Importer
Adapter
Poznanie
danych
Czyszczenie
i zapis
danych
(czyste)
Przygotowanie
danych do
modelu
01 02 03 04 05 06
● Jakie dane posiadamy?
● Jakie dane są łatwo dostępne?
● W jakiej są postaci, jaki mają format?
● Czy są w jakikolwiek sposób poukładane czy 1 wielki worek?
Etap 1: źródła danych
● Posiadamy różne źródła danych i różny format zapisu,
● W inny sposób wyciągamy dane z API, bazy danych, innej bazy danych, raportu w csv od jednej
firmy, a inaczej od drugiej firmy,
● Mamy bardzo wyspecjalizowany kod, raczej nie wykorzystamy całości do wielu zastosowań.
Etap 2: importery / adaptery
● Posiadamy różne źródła danych i różny format zapisu,
● W inny sposób wyciągamy dane z API, bazy danych, innej bazy danych, raportu w csv
od jednej firmy, a inaczej od drugiej firmy,
● Mamy bardzo wyspecjalizowany kod, raczej nie wykorzystamy całości do wielu
zastosowań.
Etap 3: dane ujednolicone
● Informacje z różnych źródeł zapisane do jednego formatu (struktura plików, csv, json,
json lines, baza danych),
● Kod dzięki temu w następnych etapach będzie uniwersalny,
● Czy nasza struktura danych będzie się łatwo skalować?
● Czy dane są łatwe do zapisu i odczytu?
● Lepiej mieć więcej info niż mniej!
Etap 3: dane ujednolicone
● Poznanie danych,
● Eksploracja danych,
● Statystyki,
● Unikalne elementy według różnych kryteriów,
● Kategoryzowanie w grupy.
Etap 4: poznanie danych
● Wyczyszczenie danych (np. emotikony z tekstu),
● Wykluczenie niepoprawnych / niepasujących danych (np. za małe zdjęcia, tekst),
● Augumentacja danych, jeżeli to potrzebne (modyfikacja w celu zwiększenia liczby danych),
● Przygotowanie datasetów (np. tworzenie błędów w zdaniach, usuwanie kawałka obrazka).
Etap 5: przetwarzanie danych
● Zamiana danych na wektory i macierze,
● Przygotowanie skryptów do trenowania,
● Zaplanowanie eksperymentów,
● Skrypty do walidacji modelu,
● Zapis wyników eksperymentów.
Etap 6: przygotowanie danych,
trening modelu
● Ani jedno, ani drugie!
● Przetwarzanie danych to nie magia ani czary,
● Polega na robieniu wielu małych rzeczy i składaniu je w długie sekwencje zdarzeń.
Data Scientist: mag czy
czarownik?
Kluczowe kwestie
● Czy dane zbieramy raz czy cyklicznie?
● Czy forma zapisu może się skalować?
● Czy forma zapisu danych jest otwarta na modyfikację?
● Czy zebrane dane są zawsze aktualne?
Zbieranie danych
● Ile czasu trwa napisanie kodu do pobierania danych?
● Jaki jest czas wykonywania skryptu?
● Czy dane są otwarte na modyfikację? - dodanie dodatkowego info
Techniczne
● Jakie dane zbierać, by wyuczyć model?
● Jak analizować dane i określać, które z nich są istotne?
● Jak przygotować dane pod model?
Trenowanie
Sekcja Q&A
Dzięki za uwagę!
https://socialshub.net/Marek (mój newsletter, IG, Li)
https://ermlab.com (nasza strona firmowa)

More Related Content

Similar to Jak przygotować dane do uczenia maszynowego? | Ermlab Software

Elasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówElasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówŁukasz Kuczyński
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPPiotr Horzycki
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychSecuRing
 
Jak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptxJak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptxPHPstokPHPstok
 
Girls in IT - QA
Girls in IT - QA Girls in IT - QA
Girls in IT - QA monterail
 
8. Programowanie w środowisku języka strukturalnego
8. Programowanie w środowisku języka strukturalnego8. Programowanie w środowisku języka strukturalnego
8. Programowanie w środowisku języka strukturalnegokalaxq
 
Open Data - zarządzanie danymi w projektach badawczych NCN
Open Data - zarządzanie danymi w projektach badawczych NCNOpen Data - zarządzanie danymi w projektach badawczych NCN
Open Data - zarządzanie danymi w projektach badawczych NCNPlatforma Otwartej Nauki
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówintive
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...Filip Dębowski
 
DynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychDynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychThe Software House
 
Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Grzegorz Bartman
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Grzegorz Bartman
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Sotrender
 
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego [CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego PROIDEA
 

Similar to Jak przygotować dane do uczenia maszynowego? | Ermlab Software (20)

Elasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówElasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla Wielkodanowców
 
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHPJak zacząć, aby nie żałować - czyli 50 twarzy PHP
Jak zacząć, aby nie żałować - czyli 50 twarzy PHP
 
M4j3
M4j3M4j3
M4j3
 
M4j3
M4j3M4j3
M4j3
 
Bazy danych oraz systemy klasy business intelligence
Bazy danych oraz systemy klasy business intelligenceBazy danych oraz systemy klasy business intelligence
Bazy danych oraz systemy klasy business intelligence
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnych
 
Hadoop w NK.pl
Hadoop w NK.plHadoop w NK.pl
Hadoop w NK.pl
 
Jak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptxJak ograniczyć używanie tablic w PHP.pptx
Jak ograniczyć używanie tablic w PHP.pptx
 
Girls in IT - QA
Girls in IT - QA Girls in IT - QA
Girls in IT - QA
 
Open Power Template
Open Power TemplateOpen Power Template
Open Power Template
 
8. Programowanie w środowisku języka strukturalnego
8. Programowanie w środowisku języka strukturalnego8. Programowanie w środowisku języka strukturalnego
8. Programowanie w środowisku języka strukturalnego
 
Open Data - zarządzanie danymi w projektach badawczych NCN
Open Data - zarządzanie danymi w projektach badawczych NCNOpen Data - zarządzanie danymi w projektach badawczych NCN
Open Data - zarządzanie danymi w projektach badawczych NCN
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistów
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
 
DynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornychDynamoDB – podstawy modelowania danych dla opornych
DynamoDB – podstawy modelowania danych dla opornych
 
Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015Encje w drupalu - DrupalCamp Wroclaw 2015
Encje w drupalu - DrupalCamp Wroclaw 2015
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
Human-in-the-loop (HILT) machine learning i augmentacja danych, czyli jak zbu...
 
Podstawy ETL z SSIS
Podstawy ETL z SSISPodstawy ETL z SSIS
Podstawy ETL z SSIS
 
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego [CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego
[CONFidence 2016] Artur Kalinowski - Wyciek danych z pespektywy atakującego
 

Jak przygotować dane do uczenia maszynowego? | Ermlab Software

  • 1. Przygotowanie danych do uczenia maszynowego Marek Melzacki
  • 2. ● Pythonista, ● Data Scientist, ● NLP – natural language processing, ● Z wykształcenia mechatronik / mechanik, ● Poza pracą – tancerz, planszówkowicz. ● https://goodwrite.pl, ● Sumaryzacja i anotacja tekstów, ● CoDoCzytania.pl, ● BookScout.pl, ● Inne projekty w zakresie: web, Django, NLP, data science. Marek Melzacki
  • 4. Agenda 1. Krótko o Pythonie 2. Wstęp do przetwarzania danych 3. Proces przygotowania danych pod model 4. Kluczowe kwestie 5. Sekcja Q&A
  • 6. Python, czyli co syczy w trawie? ● Guido van Rossum – Benevolent Dictator for Life, ● Projekt open source, ● PEPs - Python Enhance Proposals (np. PEP8, PEP484), ● Zen of Python, ● Ważniejsze wersje: 2.7, 3.6+, ● pip – narzędzie do instalowania bibliotek.
  • 7. Python, czyli co syczy w trawie? ● Paradygmaty programowania (obiektowy, strukturalny, funkcyjny), ● Dynamicznie typowany, ● Interpreter, ● Wszystko jest obiektem, ● Wcięcia zamiast średników i nawiasów.
  • 8.
  • 10. To przecież proste Zapisz coś gdzieś ● baza danych ● API ● print ● txt Weź cokolwiek ● string ● txt ● JPEG ● csv ● XML ● PDF Zrób coś z tym ● usunięcie polskich znaków ● zliczenie słów ● obrócenie o 90 stopni ● policzenie przychodów ● znalezienie nowych produktów
  • 11. To przecież proste: wersja ML Zapisz coś gdzieś Weź cokolwiek Zrób coś z tym Ciągły proces na tych samych danych, ale inny etap
  • 12. ● Pozyskanie danych ze źródeł zewnętrznych (csv, html, DB, API, txt, pdf itp.), ● Przekształcenie danych (przeczyszczenie, filtrowanie, statystyki), ● Załadowanie danych do bazy danych / zapis danych (do csv, API, DB). ETL (Extract, Transform, Load)
  • 15. ● Jakie dane posiadamy? ● Jakie dane są łatwo dostępne? ● W jakiej są postaci, jaki mają format? ● Czy są w jakikolwiek sposób poukładane czy 1 wielki worek? Etap 1: źródła danych
  • 16. ● Posiadamy różne źródła danych i różny format zapisu, ● W inny sposób wyciągamy dane z API, bazy danych, innej bazy danych, raportu w csv od jednej firmy, a inaczej od drugiej firmy, ● Mamy bardzo wyspecjalizowany kod, raczej nie wykorzystamy całości do wielu zastosowań. Etap 2: importery / adaptery
  • 17. ● Posiadamy różne źródła danych i różny format zapisu, ● W inny sposób wyciągamy dane z API, bazy danych, innej bazy danych, raportu w csv od jednej firmy, a inaczej od drugiej firmy, ● Mamy bardzo wyspecjalizowany kod, raczej nie wykorzystamy całości do wielu zastosowań. Etap 3: dane ujednolicone
  • 18. ● Informacje z różnych źródeł zapisane do jednego formatu (struktura plików, csv, json, json lines, baza danych), ● Kod dzięki temu w następnych etapach będzie uniwersalny, ● Czy nasza struktura danych będzie się łatwo skalować? ● Czy dane są łatwe do zapisu i odczytu? ● Lepiej mieć więcej info niż mniej! Etap 3: dane ujednolicone
  • 19. ● Poznanie danych, ● Eksploracja danych, ● Statystyki, ● Unikalne elementy według różnych kryteriów, ● Kategoryzowanie w grupy. Etap 4: poznanie danych
  • 20. ● Wyczyszczenie danych (np. emotikony z tekstu), ● Wykluczenie niepoprawnych / niepasujących danych (np. za małe zdjęcia, tekst), ● Augumentacja danych, jeżeli to potrzebne (modyfikacja w celu zwiększenia liczby danych), ● Przygotowanie datasetów (np. tworzenie błędów w zdaniach, usuwanie kawałka obrazka). Etap 5: przetwarzanie danych
  • 21. ● Zamiana danych na wektory i macierze, ● Przygotowanie skryptów do trenowania, ● Zaplanowanie eksperymentów, ● Skrypty do walidacji modelu, ● Zapis wyników eksperymentów. Etap 6: przygotowanie danych, trening modelu
  • 22. ● Ani jedno, ani drugie! ● Przetwarzanie danych to nie magia ani czary, ● Polega na robieniu wielu małych rzeczy i składaniu je w długie sekwencje zdarzeń. Data Scientist: mag czy czarownik?
  • 24. ● Czy dane zbieramy raz czy cyklicznie? ● Czy forma zapisu może się skalować? ● Czy forma zapisu danych jest otwarta na modyfikację? ● Czy zebrane dane są zawsze aktualne? Zbieranie danych
  • 25. ● Ile czasu trwa napisanie kodu do pobierania danych? ● Jaki jest czas wykonywania skryptu? ● Czy dane są otwarte na modyfikację? - dodanie dodatkowego info Techniczne
  • 26. ● Jakie dane zbierać, by wyuczyć model? ● Jak analizować dane i określać, które z nich są istotne? ● Jak przygotować dane pod model? Trenowanie
  • 28. Dzięki za uwagę! https://socialshub.net/Marek (mój newsletter, IG, Li) https://ermlab.com (nasza strona firmowa)