Code Smells: Nieużywany kod

Niepotrzebny kod Dzisiejszy wpis nie będzie długi, ani nie będzie zawierał żadnych przykładów – wszystko to z racji małej złożoności poruszanego problemu. Nie mniej nieużywany kod jest jednym z bardziej powszechnych code smells’ów zwłaszcza w długo utrzymywanych, bądź rozwijanych projektach. Dlaczego tak się dzieje? Kiedyś, gdy nie było tak rozbudowanych IDE jak dziś, programiści musieli poświęcać […]

ASP.NET Core : Konfiguracja MVC

Jak wiadomo .NET Core stawia na szybkość i lekkość co udaje mu się osiągnąć dzięki swojej modułowej budowie. Mimo znacznych zmian w architekturze, API pozostało w dużej mierze takie samo lub nieznacznie zmodyfikowane. Dzięki temu znając wcześniej i chcąc wykorzystać np. WPF, czy ASP.NET MVC w najnowszej wersji, nie jesteśmy skazani na naukę wszystkiego od […]

Machine Learning Workflow cz 3 – testowanie modelu

Jak zwykle zacznę od przypomnienia poszczególnych kroków w przepływie pracy w uczeniu maszynowym: Przygotowanie modelu. Trenowanie modelu. Testowanie modelu. Dzisiaj będę pisał o ostatnim kroku – testowaniu modelu – kluczowym by właściwie ocenić nasz model i na tej podstawie podjąć decyzję o kierunku zmian w kolejnej iteracji pracy. Testowanie jakie takie składa się z dwóch […]

Scikit-learn i podstawy korzystania z algorytmów uczących

Biblioteka scikit-learn zawiera implementację wszystkiego co potrzebne do pracy z uczeniem maszynowym w Pythonie. Dodatkowo jest dostępna całkowicie za darmo jako projekt open source. Dzięki temu, że twórcy ściśle podążają za ustalonymi konwencjami, korzystanie z niej i rozpoczęcie trenowania swojego modelu to kwestia kilku minut. Kluczowe są zawsze dwie metody, które opisuję poniżej. Na początek warto wiedzieć, […]

DSP2017: Trenowanie modelu- raport 3

Po dłuższej przerwie od raportów, w końcu piszę kolejny – dzisiaj o przebiegu procesu trenowania modelu w moim projekcie, który jak całość dziedziny uczenia maszynowego został przeprowadzony z wykorzystaniem Pythona, i bibliotek Pandas oraz scikit-learn. Rodzaj uczenia… Przed przystąpieniem do wyboru algorytmu uczącego trzeba określić pewne ramy dla swojego projektu. Tak jak pisałem wcześniej, na […]

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

Relacja z konferencji 4developers 2017

4developers częściej jest przedstawiane jako festiwal programistyczny niż konferencja. Dlaczego? Wszystko się wyjaśni gdy spojrzymy sobie na ten event w liczbach. 13 ścieżek tematycznych plus warsztaty, ponad 100 wykładów no i ~1500 uczestników. Może przytłaczać rozmachem.  Na stronie konferencji możemy przeczytać, że na róży wiatrów organizatorów widnieją cztery kierunki: Idea, interdyscyplinarność, aktywność i społeczność (być może […]

Machine Learning Workflow cz 2 – trenowanie modelu

Na start przypomnijmy sobie podstawowe kroki w przebiegu pracy uczenia maszynowego: Przygotowanie modelu. Trenowanie modelu. Testowanie modelu. Dzisiaj zajmiemy się punktem drugim Załóżmy, że sam model mamy przygotowany – wiemy czego szukamy, dane są wyselekcjonowane i wyczyszczone – co dalej? Mamy do rozpatrzenia dwie kwestie: wybór algorytmu uczącego i zastosowanie tego algorytmu do wytrenowania modelu. […]

Code Smells: Pole tymczasowe

Kolejnym, może rzadziej spotykanym przykładem degeneracji kodu jest pole tymczasowe (ang. temporary field). Spotykamy się z nim wówczas gdy w obrębie klasy istnieje pole, które jest wykorzystywane tylko przy pewnych warunkach lub okolicznościach. Gdy te warunki nie są spełnione pole ma, przez cały cykl życia klasy, wartość domyślną. Popatrzmy na banalny przykład:

  Podstawowym problemem […]

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