Come caricare un dataset su scikit-learn

La libreria scikit-learn di python integra diversi dataset didattici. Sono utili per fare esperienza con il machine learning.

Cos'è un dataset

Un dataset è un insieme di training ossia un file contenente degli esempi che consentono di istruire la macchina nelle operazioni di classificazione o di regressione.

Come è composto?

Un dataset è composto da n record (esempi). Ogni record è suddiviso in k campi/colonne che individuano le caratteristiche x ( features ) dell'esempio.

un esempio di insieme di addestramento

Nei dataset predisposti per il machine learning supervisionato c'è anche un'ulteriore colonna y detta target dove è registrata la risposta corretta.

Come importare un dataset da scikit-learn

Per prima cosa importo in memoria il dataset che mi interessa dal modulo sklearn.datasets.

>>> from sklearn.datasets import load_iris

Poi lo assegno a una variabile di python

>>> X = load_iris()

Nella variabile dataset sono registrati tutti gli esempi.

>>> X
{'data': array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2],
[5.4, 3.9, 1.7, 0.4],

Per salvare le caratteristiche (features) e le risposte corrette (target) in variabili diverse:

>>> X=dataset['data']
>>> y=dataset['target']

Questa separazione è indispensabile nel ML supervised.

Metodo alternativo

In alternativa posso caricare in memoria tutto il modulo dei dataset.

from sklearn import datasets

Poi richiamare quello che mi interessa

X=datasets.load_iris()

Il risultato finale è lo stesso.

Come dividere il dataset in training e test

Per verificare l'accuratezza di un modello divido il dataset in training set e test set.

  • Il training set lo utilizzo per addestrare il modello
  • Il test set lo utilizzo per verificare se risponde correttamente

Importo la funzione train_test_split da sklearn.model

from sklearn.model_selection import train_test_split

Poi divido la variabile feature X e target y

X_train, X_test, y_train, y_test = train_test_split(X,y)

La funzione divide le variabili del dataset e le assegna rispettivamente X a X_train e X_test mentre y a y_train e y_train

Se non specifico altri parametri la divisione è al 50%.

Posso comunque modificare la percentuale con il parametro test_size

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)

In quest'ultimo esempio il 70% del dataset diventa di training e il restante 30% di test.

Un'altra opzione utile è random_state che mi permette di influire sulla selezione casuale degli esempi

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

Come vedere le caratteristiche del dataset

In genere le informazioni sul dataset sono registrate alla voce 'DESCR'. E' una convenzione abbastanza diffusa.

Una volta caricato il dataset per vedere le informazioni sui campi digito

print(X['DESCR'])

In questo modo ottengo tutte le informazioni che mi servono per cominciare a lavorare con il dataset

Iris plants dataset
--------------------
**Data Set Characteristics:**
:Number of Instances: 150 (50 in each of three classes)
:Number of Attributes: 4 numeric, predictive attributes and the class
:Attribute Information:
- sepal length in cm
- sepal width in cm

Quali sono i dataset di scikit-learn

Ci sono diversi dataset didattici tra cui scegliere.

  • load_boston
    dataset con i prezzi delle case
  • load_iris
    dataset con le misure di alcuni fiori
  • load_wine
    dataset con le caratteristiche dei vini

E così via

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Scikit-learn

  1. Cos'è sklearn
  2. Come installare sklearn
  3. Un esempio di machine learning
  4. Come usare i datasets didattici di scikit-learn
  5. Come creare un dataset con Excel
  6. Come rappresentare le regioni decisionali
  7. La vettorizzazione delle categorie
  8. StandardScaler ( riduzione di scala )
  9. L'analisi degli errori del classificatore
  10. L'analisi degli errori del regressore
  11. Perceptron
  12. La regressione lineare
  13. La regressione logistica
  14. Decision Tree Classifier
  15. k-NN (k Nearest Neighbors)
  16. MLPClassifier