Scikit Learn - Introduzione

In questo capitolo, capiremo cos'è Scikit-Learn o Sklearn, l'origine di Scikit-Learn e alcuni altri argomenti correlati come le comunità e i contributori responsabili dello sviluppo e della manutenzione di Scikit-Learn, i suoi prerequisiti, l'installazione e le sue caratteristiche.

Cos'è Scikit-Learn (Sklearn)

Scikit-learn (Sklearn) è la libreria più utile e robusta per l'apprendimento automatico in Python. Fornisce una selezione di strumenti efficienti per l'apprendimento automatico e la modellazione statistica tra cui classificazione, regressione, clustering e riduzione della dimensionalità tramite un'interfaccia di coerenza in Python. Questa libreria, che è in gran parte scritta in Python, è costruita suNumPy, SciPy e Matplotlib.

Origine di Scikit-Learn

In origine si chiamava scikits.learn ed è stato inizialmente sviluppato da David Cournapeau come progetto Google Summer of Code nel 2007. Successivamente, nel 2010, Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort e Vincent Michel, del FIRCA (Istituto francese di ricerca in informatica e automazione), hanno questo progetto a un altro livello e ha reso la prima versione pubblica (v0.1 beta) il 1 ° febbraio 2010.

Diamo un'occhiata alla sua cronologia delle versioni:

  • Maggio 2019: scikit-learn 0.21.0

  • Marzo 2019: scikit-learn 0.20.3

  • Dicembre 2018: scikit-learn 0.20.2

  • Novembre 2018: scikit-learn 0.20.1

  • Settembre 2018: scikit-learn 0.20.0

  • Luglio 2018: scikit-learn 0.19.2

  • Luglio 2017: scikit-learn 0.19.0

  • Settembre 2016. scikit-learn 0.18.0

  • Novembre 2015. scikit-learn 0.17.0

  • Marzo 2015. scikit-learn 0.16.0

  • Luglio 2014. scikit-learn 0.15.0

  • Agosto 2013. scikit-learn 0.14

Comunità e collaboratori

Scikit-learn è uno sforzo della comunità e chiunque può contribuirvi. Questo progetto è ospitato suhttps://github.com/scikit-learn/scikit-learn. Le persone che seguono sono attualmente i principali contributori allo sviluppo e alla manutenzione di Sklearn -

  • Joris Van den Bossche (Data Scientist)

  • Thomas J Fan (Sviluppatore software)

  • Alexandre Gramfort (ricercatore in machine learning)

  • Olivier Grisel (esperto di machine learning)

  • Nicolas Hug (ricercatore associato)

  • Andreas Mueller (scienziato dell'apprendimento automatico)

  • Hanmin Qin (ingegnere del software)

  • Adrin Jalali (Sviluppatore Open Source)

  • Nelle Varoquaux (Data Science Researcher)

  • Roman Yurchak (Data Scientist)

Diverse organizzazioni come Booking.com, JP Morgan, Evernote, Inria, AWeber, Spotify e molte altre stanno utilizzando Sklearn.

Prerequisiti

Prima di iniziare a utilizzare l'ultima versione di scikit-learn, è necessario quanto segue:

  • Python (> = 3.5)

  • NumPy (> = 1.11.0)

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

  • Joblib (> = 0,11)

  • Matplotlib (> = 1.5.1) è richiesto per le funzionalità di plottaggio di Sklearn.

  • Pandas (> = 0.18.0) è richiesto per alcuni degli esempi di scikit-learn utilizzando la struttura e l'analisi dei dati.

Installazione

Se hai già installato NumPy e Scipy, di seguito sono riportati i due modi più semplici per installare scikit-learn:

Utilizzando pip

Il seguente comando può essere utilizzato per installare scikit-learn tramite pip -

pip install -U scikit-learn

Utilizzando conda

Il seguente comando può essere utilizzato per installare scikit-learn tramite conda -

conda install scikit-learn

D'altra parte, se NumPy e Scipy non sono ancora installati sulla tua workstation Python, puoi installarli utilizzando uno dei due pip o conda.

Un'altra opzione per usare scikit-learn è usare distribuzioni Python come Canopy e Anaconda perché entrambi forniscono l'ultima versione di scikit-learn.

Caratteristiche

Piuttosto che concentrarsi sul caricamento, la manipolazione e il riepilogo dei dati, la libreria Scikit-learn si concentra sulla modellazione dei dati. Alcuni dei gruppi di modelli più popolari forniti da Sklearn sono i seguenti:

Supervised Learning algorithms - Quasi tutti i più diffusi algoritmi di apprendimento supervisionato, come la regressione lineare, la Support Vector Machine (SVM), l'albero decisionale ecc.

Unsupervised Learning algorithms - D'altra parte, ha anche tutti i popolari algoritmi di apprendimento non supervisionato dal clustering, analisi fattoriale, PCA (analisi dei componenti principali) alle reti neurali non supervisionate.

Clustering - Questo modello viene utilizzato per raggruppare i dati senza etichetta.

Cross Validation - Viene utilizzato per verificare l'accuratezza dei modelli supervisionati su dati non visualizzati.

Dimensionality Reduction - Viene utilizzato per ridurre il numero di attributi nei dati che possono essere ulteriormente utilizzati per il riepilogo, la visualizzazione e la selezione delle caratteristiche.

Ensemble methods - Come suggerisce il nome, viene utilizzato per combinare le previsioni di più modelli supervisionati.

Feature extraction - Viene utilizzato per estrarre le caratteristiche dai dati per definire gli attributi nei dati di immagine e testo.

Feature selection - Viene utilizzato per identificare attributi utili per creare modelli supervisionati.

Open Source - È una libreria open source e utilizzabile anche commercialmente con licenza BSD.