Caricamento dati per progetti ML

Supponi di voler avviare un progetto ML, qual è la prima e più importante cosa di cui hai bisogno? Sono i dati che dobbiamo caricare per avviare qualsiasi progetto ML. Per quanto riguarda i dati, il formato più comune di dati per i progetti ML è CSV (valori separati da virgole).

Fondamentalmente, CSV è un semplice formato di file che viene utilizzato per memorizzare dati tabulari (numero e testo) come un foglio di calcolo in testo normale. In Python, possiamo caricare i dati CSV in modi diversi ma prima di caricare i dati CSV dobbiamo fare attenzione ad alcune considerazioni.

Considerazioni durante il caricamento dei dati CSV

Il formato dati CSV è il formato più comune per i dati ML, ma dobbiamo fare attenzione a seguire le principali considerazioni durante il caricamento dello stesso nei nostri progetti ML -

Intestazione del file

Nei file di dati CSV, l'intestazione contiene le informazioni per ogni campo. Dobbiamo usare lo stesso delimitatore per il file di intestazione e per il file di dati perché è il file di intestazione che specifica come devono essere interpretati i campi di dati.

I seguenti sono i due casi relativi all'intestazione del file CSV che devono essere considerati:

  • Case-I: When Data file is having a file header - Assegnerà automaticamente i nomi a ciascuna colonna di dati se il file di dati ha un'intestazione di file.

  • Case-II: When Data file is not having a file header - È necessario assegnare manualmente i nomi a ciascuna colonna di dati se il file di dati non ha un'intestazione di file.

In entrambi i casi, dobbiamo specificare esplicitamente se il nostro file CSV contiene un'intestazione o meno.

Commenti

I commenti in qualsiasi file di dati hanno il loro significato. Nel file di dati CSV, i commenti sono indicati da un cancelletto (#) all'inizio della riga. Dobbiamo considerare i commenti durante il caricamento dei dati CSV nei progetti ML perché se abbiamo commenti nel file, potrebbe essere necessario indicare, dipende dal metodo che scegliamo per il caricamento, se aspettarci quei commenti o meno.

Delimitatore

Nei file di dati CSV, il carattere virgola (,) è il delimitatore standard. Il ruolo del delimitatore è separare i valori nei campi. È importante considerare il ruolo del delimitatore durante il caricamento del file CSV nei progetti ML perché possiamo anche utilizzare un delimitatore diverso come una scheda o uno spazio vuoto. Ma nel caso di utilizzo di un delimitatore diverso da quello standard, dobbiamo specificarlo esplicitamente.

Citazioni

Nei file di dati CSV, le virgolette doppie ("") sono le virgolette predefinite. È importante considerare il ruolo delle virgolette durante il caricamento del file CSV nei progetti ML perché possiamo anche utilizzare caratteri di virgolette diversi dalle virgolette doppie. Ma in caso di utilizzo di un carattere di citazione diverso da quello standard, dobbiamo specificarlo esplicitamente.

Metodi per caricare il file di dati CSV

Mentre si lavora con progetti ML, l'attività più cruciale è caricare correttamente i dati al suo interno. Il formato di dati più comune per i progetti ML è CSV ed è disponibile in vari gusti e diverse difficoltà di analisi. In questa sezione, discuteremo di tre approcci comuni in Python per caricare il file di dati CSV:

Carica CSV con la libreria standard Python

Il primo e più utilizzato approccio per caricare il file di dati CSV è l'uso della libreria standard Python che ci fornisce una varietà di moduli integrati, vale a dire csv modulee la funzione reader (). Quello che segue è un esempio di caricamento di file di dati CSV con l'aiuto di esso:

Example

In questo esempio, stiamo usando il set di dati del fiore di iris che può essere scaricato nella nostra directory locale. Dopo aver caricato il file di dati, possiamo convertirlo inNumPyarray e usalo per progetti ML. Di seguito è riportato lo script Python per il caricamento del file di dati CSV -

Innanzitutto, dobbiamo importare il modulo csv fornito dalla libreria standard di Python come segue:

import csv

Successivamente, dobbiamo importare il modulo Numpy per convertire i dati caricati nell'array NumPy.

import numpy as np

Ora, fornisci il percorso completo del file, memorizzato nella nostra directory locale, con il file di dati CSV -

path = r"c:\iris.csv"

Quindi, usa la funzione csv.reader () per leggere i dati dal file CSV -

with open(path,'r') as f:
   reader = csv.reader(f,delimiter = ',')
   headers = next(reader)
   data = list(reader)
   data = np.array(data).astype(float)

Possiamo stampare i nomi delle intestazioni con la seguente riga di script:

print(headers)

La seguente riga di script stamperà la forma dei dati cioè il numero di righe e colonne nel file -

print(data.shape)

La prossima riga di script darà le prime tre righe di file di dati -

print(data[:3])

Output

['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
(150, 4)
[  [5.1  3.5  1.4  0.2]
   [4.9  3.   1.4  0.2]
   [4.7  3.2  1.3  0.2]
]

Carica CSV con NumPy

Un altro approccio per caricare il file di dati CSV è la funzione NumPy e numpy.loadtxt (). Quello che segue è un esempio di caricamento di file di dati CSV con l'aiuto di esso:

Esempio

In questo esempio, utilizziamo il set di dati Pima Indians contenente i dati dei pazienti diabetici. Questo set di dati è un set di dati numerico senza intestazione. Può anche essere scaricato nella nostra directory locale. Dopo aver caricato il file di dati, possiamo convertirlo in array NumPy e usarlo per progetti ML. Di seguito è riportato lo script Python per il caricamento del file di dati CSV -

from numpy import loadtxt
path = r"C:\pima-indians-diabetes.csv"
datapath= open(path, 'r')
data = loadtxt(datapath, delimiter=",")
print(data.shape)
print(data[:3])

Produzione

(768, 9)
[  [ 6.  148.  72.  35.  0.  33.6  0.627  50. 1.]
   [ 1.  85.   66.  29.  0.  26.6  0.351  31. 0.]
   [ 8.  183.  64.  0.   0.  23.3  0.672  32. 1.]
]

Carica CSV con Panda

Un altro approccio per caricare il file di dati CSV è di Pandas e pandas.read_csv()function. Questa è la funzione molto flessibile che restituisce un filepandas.DataFrameche può essere utilizzato immediatamente per la stampa. Quello che segue è un esempio di caricamento di file di dati CSV con l'aiuto di esso:

Esempio

Qui, implementeremo due script Python, il primo è con il set di dati Iris con intestazioni e un altro è utilizzando il set di dati Pima Indians che è un set di dati numerico senza intestazione. Entrambi i set di dati possono essere scaricati nella directory locale.

Script-1

Di seguito è riportato lo script Python per il caricamento del file di dati CSV utilizzando Pandas on Iris Data set -

from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])

Output:

(150, 4)
   sepal_length   sepal_width  petal_length   petal_width
0         5.1     3.5          1.4            0.2
1         4.9     3.0          1.4            0.2
2         4.7     3.2          1.3            0.2

Script-2

Di seguito è riportato lo script Python per il caricamento del file di dati CSV, oltre a fornire anche i nomi delle intestazioni, utilizzando Pandas sul set di dati Pima Indians Diabetes -

from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
headernames = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=headernames)
print(data.shape)
print(data[:3])

Output

(768, 9)
   preg  plas  pres   skin  test   mass    pedi    age   class
0   6    148    72      35    0     33.6   0.627    50      1
1   1    85     66      29    0     26.6   0.351    31      0
2   8    183    64      0     0     23.3   0.672    32      1

La differenza tra i tre approcci utilizzati sopra per caricare il file di dati CSV può essere facilmente compresa con l'aiuto di esempi forniti.