Każdy specjalista ma swój własny ulubiony zestaw narzędzi i warsztat pracy. Przy okazji uruchomienia kolejnej wersji środowiska wirtualnego Python dla Data Science postanowiłem podzielić się z Wami swoim podstawowym zestawem narzędzi. Conda jako środowisko pracy Ze względu na system operacyjny MS Windows najwygodniejszym środowiskiem jest dla mnie Conda. Przede wszystkim dlatego, iż mam do dyspozycji gotowe, stabilne, przetestowane paczki działające pod Windows’em i nie muszę tracić czasu w ich kompilacje (co nie zawsze jest bezproblemowe), czy też ściągać pliki wheel lub egg. Oczywiście nie wszystko znajduje się w repozytoriach Conda, ale do dyspozycji mamy ciągle PyPI. Stworzenie środowiska wirtualnego w conda o nazwie „py39” i jego aktywacja: Opisane niżej środowisko możecie zainstalować u siebie dwoma liniami komend: JupyterLab – środowisko analityczne JupyterLab to zintegrowana platforma do uruchamiania skryptów Jupyter Notebook. Praca z wieloma notebook’ami jest dużo bardziej komfortowa, niż w przypadku środowiska Jupyter. Dodatkowe okna do wykonywania skryptów „na boku” i wyświetlające wyniki działania komórek Jupyter’a umożliwiają ograniczenie wzrostu entropii w głównym skrypcie. Eksploracja danych Pandas + NumPy Biblioteka Pandas jest fundamentalnym i najpopularniejszym narzędziem do operacji na danych. Oprócz możliwości odczytu danych z praktycznie każdego źródła (m.in. dzięki sterownikom ODBC) udostępnia zaawansowane narzędzia transformacji, filtrowania i sortowania danych, a także ich wizualizacji (za pomocą biblioteki matplotlib). Struktury danych w Pandas są oparte na macierzach zdefiniowanych w bibliotece NumPy, która jest sercem Data Science w Python. Zawiera zoptymalizowane algorytmy do obliczeń numerycznych na wielowymiarowych strukturach danych. Praktycznie każda biblioteka naukowa wymaga NumPy do działania. Biblioteki niezbędne do połączenia się Pandas’a z popularnymi bazami danych: pyodbc – umożliwia połączenie z bazami danych poprzez sterowniki ODBC SQLAlchemy – interfejs do baz relacyjnych SQL i mapowania ORM PyMySQL – biblioteka do połączenia się z MySQL xlrd – paczka niezbędna do otwarcia arkuszy MS Excell przez Pandas Wizualizacja danych Matplotlib Matplotlib jest podstawową biblioteką do generowania wszelkich wykresów w Python. Z biblioteki tej korzystają inne specjalizowane nakładki do wizualizacji danych. Seaborn Seaborn to biblioteka do wizualizacji danych bazująca na matplotlib i dostarczająca wiele gotowych szablonów wykresów statystycznych. Wykresy wygenerowane w Seaborn są przyjemniejsze dla oka w porównaniu do tych generowanych w matplotlib z powodu nieźle dobranych kolorów i typografi. Modele statystyczne i obliczenia numeryczne SciPy SciPy to zestaw narzędzi do obliczeń naukowych. Biblioteka zawiera algorytmy do obliczeń numerycznych, statystycznych, optymalizacji, czy np. procesowania sygnałów. Statsmodels Statsmodels jest bardzo rozbudowaną biblioteką dostarczającą narzędzia do analizy statystycznej danych, tworzenia modeli statystycznych, np. analizy szeregów czasowych. mlrose Biblioteka mlrose to zestaw narzędzi do rozwiązania typowych zadań numerycznych jak problem komiwojażera czy upakowania plecaka. Zawiera implementacje algorytmów generycznych, czy wspinaczkowych. Ma zastosowanie w optymalizacji wag sieci neuronowych, czy parametrów tradycyjnych modeli uczenia maszynowego. Uczenie maszynowe (Machine Learning) scikit-learn Biblioteka scikit-learn to podstawa uczenia maszynowego w Python. Zawiera algorytmy do uczenia nadzorowanego i nienadzorowanego (np. lasy losowe, SVM, k-średnie, DBSCAN, etc.) , transformacji danych (normowanie, standaryzacja), testy i metryki dla trenowanych modeli, a także algorytmy do optymalizacji parametrów modeli. XGBoost (py-xgboost) XGBoost to bardzo popularny algorytm uczenia nadzorowanego, który zdominował konkursy na Kaggle ze względu na jakość wyników i wydajność obliczeniową. Jest implementacją algorytmu drzew decyzyjnych zwiększając jego skuteczność i szybkość uczenia. Biblioteka py-xgboost jest jego implementacją w środowisku Conda. SHAP SHAP (SHapley Additive exPlanations) to biblioteka przeznaczona do graficznego wyjaśniania działania modeli uczenia maszynowego. Niemożność racjonalnego wyjaśnienia wyników działania skomplikowanych algorytmów często prowadzi do zaniechania, a wręcz niechęci biznesu do używania tzw. „czarnych skrzynek”, które pozostają poza kontrolą osób decyzyjnych. NLP