Scikit Learn - Wprowadzenie

W tym rozdziale zrozumiemy, czym jest Scikit-Learn lub Sklearn, pochodzenie Scikit-Learn i kilka innych powiązanych tematów, takich jak społeczności i współpracownicy odpowiedzialni za rozwój i utrzymanie Scikit-Learn, jego wymagania wstępne, instalację i funkcje.

Co to jest Scikit-Learn (Sklearn)

Scikit-learn (Sklearn) to najbardziej użyteczna i niezawodna biblioteka do uczenia maszynowego w Pythonie. Zapewnia wybór wydajnych narzędzi do uczenia maszynowego i modelowania statystycznego, w tym klasyfikacji, regresji, grupowania i redukcji wymiarowości za pośrednictwem interfejsu spójności w Pythonie. Ta biblioteka, w dużej mierze napisana w języku Python, została zbudowana na podstawieNumPy, SciPy i Matplotlib.

Pochodzenie Scikit-Learn

Pierwotnie był nazywany scikits.learn i został pierwotnie opracowany przez Davida Cournapeau jako projekt Google Summer of Code w 2007 roku. Później, w 2010 roku, Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort i Vincent Michel z FIRCA (Francuski Instytut Badań w Informatyce i Automatyzacji) ten projekt na innym poziomie i pierwsze publiczne wydanie (v0.1 beta) ukazało się 1 lutego 2010.

Rzućmy okiem na historię jego wersji -

  • Maj 2019: scikit-learn 0.21.0

  • Marzec 2019: scikit-learn 0.20.3

  • Grudzień 2018: scikit-learn 0.20.2

  • Listopad 2018: scikit-learn 0.20.1

  • Wrzesień 2018: scikit-learn 0.20.0

  • Lipiec 2018: scikit-learn 0.19.2

  • Lipiec 2017: scikit-learn 0.19.0

  • Wrzesień 2016 r. Scikit-learn 0.18.0

  • Listopad 2015. scikit-learn 0.17.0

  • Marzec 2015 r. Scikit-learn 0.16.0

  • Lipiec 2014 r. Scikit-learn 0.15.0

  • Sierpień 2013. scikit-learn 0.14

Społeczność i współtwórcy

Scikit-learn to wysiłek społeczności i każdy może się do niego przyczynić. Ten projekt jest hostowanyhttps://github.com/scikit-learn/scikit-learn. Następujące osoby są obecnie głównymi współpracownikami w rozwoju i utrzymaniu Sklearn -

  • Joris Van den Bossche (analityk danych)

  • Thomas J Fan (programista)

  • Alexandre Gramfort (badacz uczenia maszynowego)

  • Olivier Grisel (ekspert ds. Uczenia maszynowego)

  • Nicolas Hug (zastępca naukowca)

  • Andreas Mueller (naukowiec ds. Uczenia maszynowego)

  • Hanmin Qin (inżynier oprogramowania)

  • Adrin Jalali (programista Open Source)

  • Nelle Varoquaux (badaczka danych)

  • Roman Yurchak (analityk danych)

Różne organizacje, takie jak Booking.com, JP Morgan, Evernote, Inria, AWeber, Spotify i wiele innych, używają Sklearn.

Wymagania wstępne

Zanim zaczniemy korzystać z najnowszej wersji scikit-learn, potrzebujemy:

  • Python (> = 3,5)

  • NumPy (> = 1.11.0)

  • Scipy (> = 0,17,0) li

  • Joblib (> = 0,11)

  • Matplotlib (> = 1.5.1) jest wymagany dla możliwości drukowania w Sklearn.

  • Pandy (> = 0.18.0) jest wymagane w przypadku niektórych przykładów scikit-learning wykorzystujących strukturę danych i analizę.

Instalacja

Jeśli już zainstalowałeś NumPy i Scipy, oto dwa najłatwiejsze sposoby instalacji scikit-learn -

Korzystanie z pip

Następujące polecenie może być użyte do zainstalowania scikit-learn przez pip -

pip install -U scikit-learn

Korzystanie z conda

Następujące polecenie może być użyte do zainstalowania scikit-learn przez conda -

conda install scikit-learn

Z drugiej strony, jeśli NumPy i Scipy nie są jeszcze zainstalowane na Twojej stacji roboczej Python, możesz je zainstalować za pomocą pip lub conda.

Inną opcją użycia scikit-learn jest użycie dystrybucji Pythona, takich jak Canopy i Anaconda ponieważ obaj dostarczają najnowszą wersję scikit-learn.

funkcje

Zamiast skupiać się na ładowaniu, manipulowaniu i podsumowywaniu danych, biblioteka Scikit-learn skupia się na modelowaniu danych. Niektóre z najpopularniejszych grup modeli dostarczanych przez Sklearn to:

Supervised Learning algorithms - Prawie wszystkie popularne algorytmy uczenia nadzorowanego, takie jak regresja liniowa, maszyna wektorów nośnych (SVM), drzewo decyzyjne itp., Są częścią scikit-learning.

Unsupervised Learning algorithms - Z drugiej strony ma również wszystkie popularne algorytmy uczenia się bez nadzoru, od grupowania, analizy czynnikowej, PCA (Principal Component Analysis) po nienadzorowane sieci neuronowe.

Clustering - Ten model służy do grupowania danych bez etykiet.

Cross Validation - Służy do sprawdzania poprawności nadzorowanych modeli na niewidocznych danych.

Dimensionality Reduction - Służy do zmniejszania liczby atrybutów w danych, które można później wykorzystać do podsumowania, wizualizacji i wyboru cech.

Ensemble methods - Jak sama nazwa wskazuje, jest używany do łączenia prognoz wielu nadzorowanych modeli.

Feature extraction - Służy do wyodrębniania cech z danych w celu zdefiniowania atrybutów w danych obrazu i tekstu.

Feature selection - Służy do identyfikowania przydatnych atrybutów do tworzenia nadzorowanych modeli.

Open Source - Jest to biblioteka o otwartym kodzie źródłowym, a także do użytku komercyjnego na licencji BSD.