OOP: Kilka słów o abstrakcjach

Do napisania tego postu skłoniły mnie dwie kwestie. Pierwszą był często oglądany przeze mnie kod z wszechobecnymi interfejsami, których jedynym sensem istnienia była rejestracja w kontenerze DI, lub mockowanie dla testów jednostkowych. Druga to dyskusja w której miałem okazję uczestniczyć a która odbyła się jakiś czas temu w mojej pracy. Przyczynkiem do niej było przeprowadzone przeze mnie […]

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ż […]