Guida su Python SciKit Learn

Scikit Learn

Scikit-learn è una libreria di machine learning per Python. Presenta diversi algoritmi di regressione, classificazione e clustering, tra cui SVM, gradient boosting, k-means, random forests e DBSCAN. È progettato per funzionare con Numpy e SciPy. Il progetto scikit-learn è partito come un progetto Google Summer of Code (anche noto come GSoC) di David Cournapeau come scikits.learn. Prende il nome da “Scikit”, un’estensione di terze parti separata per SciPy.

Python Scikit-learn

Scikit è scritto in Python (la maggior parte) e alcuni dei suoi algoritmi principali sono scritti in Cython per prestazioni ancora migliori. Scikit-learn viene utilizzato per costruire modelli e non è consigliabile utilizzarlo per leggere, manipolare e riassumere i dati poiché ci sono framework migliori disponibili per questo scopo. È open source e rilasciato sotto licenza BSD.

Installare Scikit Learn

Scikit assume che tu abbia una piattaforma Python in esecuzione 2.7 o superiore con le versioni di NumPY (1.8.2 e successive) e SciPY (0.13.3 e successive) sul tuo dispositivo. Una volta che abbiamo installato questi pacchetti, possiamo procedere con l’installazione. Per l’installazione tramite pip, esegui il seguente comando nel terminale:

pip install scikit-learn

Se preferisci conda, puoi anche utilizzare conda per l’installazione del pacchetto, esegui il seguente comando:

conda install scikit-learn

Utilizzo di Scikit-Learn

Una volta completata l’installazione, puoi utilizzare scikit-learn facilmente nel tuo codice Python importandolo come segue:

import sklearn

Caricamento Dataset di Scikit Learn

Cominciamo caricando un dataset per sperimentare. Carichiamo un dataset semplice chiamato Iris. È un dataset di un fiore e contiene 150 osservazioni su diverse misurazioni del fiore. Vediamo come caricare il dataset usando scikit-learn.

# Importa scikit learn
from sklearn import datasets
# Carica i dati
iris= datasets.load_iris()
# Stampa la forma dei dati per confermare che i dati siano stati caricati
print(iris.data.shape)

Stiamo stampando la forma dei dati per comodità, puoi anche stampare l’intero set di dati se lo desideri, eseguendo il codice otterrai un output simile a questo:

Scikit Learn SVM – Apprendimento e Predizione

Ora che abbiamo caricato i dati, proviamo a imparare da essi e a prevedere su nuovi dati. A questo scopo dobbiamo creare un estimatore e quindi chiamare il suo metodo fit.

from sklearn import svm
from sklearn import datasets
# Carica il dataset
iris = datasets.load_iris()
clf = svm.LinearSVC()
# Apprendi dai dati
clf.fit(iris.data, iris.target)
# Prevedi per dati non visti
clf.predict([[ 5.0,  3.6,  1.3,  0.25]])
# I parametri del modello possono essere modificati utilizzando gli attributi che terminano con un trattino basso
print(clf.coef_ )

Ecco cosa otteniamo quando eseguiamo questo script:

Scikit Learn Regressione Lineare

Creare vari modelli è piuttosto semplice usando scikit-learn. Cominciamo con un semplice esempio di regressione.

#importa il modello
from sklearn import linear_model
reg = linear_model.LinearRegression()
# usalo per adattare un set di dati
reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
# Vediamo i dati adattati
print(reg.coef_)

Il funzionamento del modello dovrebbe restituire un punto che può essere tracciato sulla stessa linea:

k-Nearest neighbour classifier

Proviamo un semplice algoritmo di classificazione. Questo classificatore utilizza un algoritmo basato su alberi di sfere per rappresentare i campioni di addestramento.

from sklearn import datasets
# Carica il set di dati
iris = datasets.load_iris()
# Crea e adatta un classificatore dei vicini più prossimi
from sklearn import neighbors
knn = neighbors.KNeighborsClassifier()
knn.fit(iris.data, iris.target)
# Prevedi e stampa il risultato
result=knn.predict([[0.1, 0.2, 0.3, 0.4]])
print(result)

Eseguiamo il classificatore e controlliamo i risultati, il classificatore dovrebbe restituire 0. Proviamo l’esempio:

K-means clustering

Questo è l’algoritmo di clustering più semplice. Il set è diviso in ‘k’ cluster e ogni osservazione è assegnata a un cluster. Questo viene fatto iterativamente fino a quando i cluster convergono. Creeremo un tale modello di clustering nel programma seguente:

from sklearn import cluster, datasets
# carica i dati
iris = datasets.load_iris()
# crea cluster per k=3
k=3
k_means = cluster.KMeans(k)
# adatta i dati
k_means.fit(iris.data)
# stampa i risultati
print( k_means.labels_[::10])
print( iris.target[::10])

All’esecuzione del programma vedremo cluster separati nell’elenco. Ecco l’output per il frammento di codice sopra:

Conclusione

In questo tutorial, abbiamo visto che Scikit-Learn rende facile lavorare con diversi algoritmi di machine learning. Abbiamo visto esempi di regressione, classificazione e clustering. Scikit-Learn è ancora in fase di sviluppo e viene sviluppato e mantenuto da volontari ma è molto popolare nella comunità. Vai e prova i tuoi esempi.

Source:
https://www.digitalocean.com/community/tutorials/python-scikit-learn-tutorial