ML: kategorie nominalne – Dummy Variable Trap

Tak jak obiecałem wcześniej w poście mówiącym o danych kategoryzujących, napiszę kilka słów o problemie związanym z przetwarzaniem danych nominalnych, zwanym Dummy Variable Trap. Dummy variable jest to kolumna przechowująca wartość binarną (oznaczającą przynależność próbki do danej kategorii), utworzona w procesie kodowania jeden do wielu, o którym pisałem we wspomnianym poście. Spójrzmy zresztą na poniższy […]

ML: Obróbka danych: Dane kategoryczne

W poprzednim wpisie była mowa o kwestii brakujących danych w zbiorach. Kolejnym problemem z jakim jesteśmy zmuszeni sobie radzić jest obróbka danych kategorycznych. Spójrzmy na poniższy wycinek, tym razem pochodzący ze zbioru BreastCancer – jeżeli chcecie go ściągnąć znajduje się tutaj Załadujmy wspomniany zbiór i zobaczmy co w nim siedzi (od razu zrobimy też coś z […]

ML: Obróbka danych: Brakujące dane

Dawno dawno temu, w poście mówiącym o przygotowaniu modelu jako części workflow uczenia maszynowego, pisałem że aby nasz model był jak najbardziej skuteczny wymaga dostarczenia dobrej jakości danych. Dobrej jakości dane nie rosną same na drzewach czerwono czarnych. Trzeba niestety samemu o nie zadbać i poprawić trapiące je problemy. Jakie to mogą być problemy? Zastanówmy […]

.Net: Wykorzystanie System.Speech w celu transkrypcji nagrania do tekstu

DotNet wraz z przestrzenią nazw System.Speech dostarcza łatwą w wykorzystaniu bibliotekę pozwalającą na zaimplementowanie systemu rozpoznawania mowy – niestety nie w języku polskim. Możemy przy pomocy tego narzędzia szybko napisać program przygotowujący transkrypcję tekst -> audio, oraz audio -> tekst. Dzisiaj pokażę tą drugą opcję. Pierwszą rzeczą jaką należy zrobić to w swoim projekcie dodać […]

.Net: Wątki w C# cz.2

W pierwszej części pisałem o podstawach wątków. Były tam poruszane takie tematy jak tworzenie wątków, ich blokowanie, a także współdzielenie stanu. Dzisiaj postaram się pogłębić ten temat i zwrócić uwagę na bezpieczeństwo wątków. Stan współdzielony vs. stan lokalny W ostatnim przykładzie części pierwszej pisałem o stanie współdzielonym wątków. Wrzuciłem tam taki przykład:

Jak w […]

Code Smells: Błędnie rozumiana odpowiedzialność klas

Dzisiejszy wpis będzie wyjątkowo o dwóch code smellsach, które łączy wspólny mianownik – źle rozumiany zakres odpowiedzialności klasy. Rozbieżna zmiana Pierwszy – Rozbieżna zmiana – objawia się niezgodnością klasy z pierwszą zasadą SOLID czyli zasadą pojedynczej odpowiedzialności, którą można przedstawić tak: “Wszystkie zmiany w danej klasie powinny wynikać tylko z jednego powodu”. W kodzie, w […]

DSP2017: Wprowadzenie do biblioteki Pandas w kontekście przygotowania modelu

Biblioteka Pandas jest open-source’owym narzędziem do analizy danych przeznaczonym dla Pythona. Udostępnia wszystkie niezbędne operacje potrzebne do pracy z modelem w uczeniu maszynowym. Poniżej opiszę kilka podstawowych funkcji i struktur danych, które można wykorzystać w kontekście przygotowania modelu. Wczytywanie danych: Pandas posiada mnóstwo metod służących do wczytywania danych z różnych źródeł. Nazwy tych metod zwykle wyglądają […]

DSP2017: Przygotowanie modelu – raport 2

Przyszedł czas na trochę bardziej konkretną pracę z danymi. Ostatnio pisałem, o przygotowaniu modelu – dzisiaj też będzie o tym ale w kontekście pracy nad moim projektem. Gwoli przypomnienia – dane nad którymi pracuję pochodzą ze strony kaggle.com, a dokładnie stąd. Są one w formacie csv, i do ich pierwszej obróbki (czyli zanim zostaną wczytane do […]

Relacja z konferencji Boiling Frogs 2017

25 lutego we Wrocławiu odbyła się druga edycja konferencji o intrygującej nazwie Boiling Frogs. Sama konferencja dotyczy szeroko rozumianej idei software craftsmanship. Jak na stosunkowo krótką obecność na mapie imprez IT, przytłacza rozmachem (przynajmniej na papierze) i aspiruje do miana jednej z większych w naszym kraju. W tym roku: trzy ścieżki tematyczne, trzydziestu jeden prelegentów i tyleż […]

Dlaczego powinniśmy pisać dobry kod, a nie tylko działający

Nie jest to regułą, ale często z punktu widzenia pracodawcy (zwłaszcza gdy pracodawca nie sprzedaje naszych programów tylko sam z nich korzysta) praca programisty polega tylko na dostarczaniu działającego oprogramowania. Trudno się z tym nie zgodzić, bo faktycznie taki jest stawiany przed nami cel.  Niedziałające oprogramowanie nie byłoby nikomu potrzebne, chyba że samym programistom by mogli […]