Scikit Learn - Rappresentazione dei dati
Come sappiamo, l'apprendimento automatico sta per creare un modello dai dati. A tal fine, il computer deve prima comprendere i dati. Successivamente, discuteremo vari modi per rappresentare i dati in modo da essere compresi dal computer:
Dati come tabella
Il modo migliore per rappresentare i dati in Scikit-learn è sotto forma di tabelle. Una tabella rappresenta una griglia di dati 2-D in cui le righe rappresentano i singoli elementi del set di dati e le colonne rappresentano le quantità relative a quei singoli elementi.
Esempio
Con l'esempio fornito di seguito, possiamo scaricare iris dataset sotto forma di Pandas DataFrame con l'aiuto di python seaborn biblioteca.
import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()
Produzione
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
Dall'output sopra, possiamo vedere che ogni riga di dati rappresenta un singolo fiore osservato e il numero di righe rappresenta il numero totale di fiori nel set di dati. Generalmente, ci riferiamo alle righe della matrice come campioni.
D'altra parte, ogni colonna di dati rappresenta un'informazione quantitativa che descrive ogni campione. Generalmente, ci riferiamo alle colonne della matrice come caratteristiche.
Dati come matrice delle caratteristiche
La matrice delle caratteristiche può essere definita come il layout della tabella in cui le informazioni possono essere pensate come una matrice 2-D. È memorizzato in una variabile denominataXe si presume che sia bidimensionale con forma [n_samples, n_features]. Per lo più, è contenuto in un array NumPy o in un Pandas DataFrame. Come detto in precedenza, i campioni rappresentano sempre i singoli oggetti descritti dal dataset e le caratteristiche rappresentano le distinte osservazioni che descrivono ogni campione in maniera quantitativa.
Dati come matrice di destinazione
Insieme alla matrice delle caratteristiche, indicata con X, abbiamo anche l'array di destinazione. Si chiama anche etichetta. È indicato con y. L'etichetta o l'array di destinazione è solitamente unidimensionale con lunghezza n_samples. È generalmente contenuto in NumPyarray o Panda Series. La matrice di destinazione può avere sia i valori, i valori numerici continui che i valori discreti.
In che modo l'array di destinazione differisce dalle colonne delle caratteristiche?
Possiamo distinguere sia per un punto che l'array di destinazione è solitamente la quantità che vogliamo prevedere dai dati, cioè in termini statistici è la variabile dipendente.
Esempio
Nell'esempio seguente, dal set di dati dell'iride prevediamo la specie di fiore in base alle altre misurazioni. In questo caso, la colonna Specie verrebbe considerata come caratteristica.
import seaborn as sns
iris = sns.load_dataset('iris')
%matplotlib inline
import seaborn as sns; sns.set()
sns.pairplot(iris, hue='species', height=3);
Produzione
X_iris = iris.drop('species', axis=1)
X_iris.shape
y_iris = iris['species']
y_iris.shape
Produzione
(150,4)
(150,)