Ładowanie danych dla projektów ML

Załóżmy, że jeśli chcesz rozpocząć projekt ML, to jaka jest pierwsza i najważniejsza rzecz, której byś potrzebował? Są to dane, które musimy załadować, aby rozpocząć dowolny projekt ML. Jeśli chodzi o dane, najpopularniejszym formatem danych w projektach ML jest CSV (wartości oddzielone przecinkami).

Zasadniczo CSV to prosty format pliku, który służy do przechowywania danych tabelarycznych (liczb i tekstu), takich jak arkusz kalkulacyjny w postaci zwykłego tekstu. W Pythonie możemy ładować dane CSV na różne sposoby, ale przed załadowaniem danych CSV musimy wziąć pod uwagę kilka kwestii.

Rozważanie podczas ładowania danych CSV

Format danych CSV jest najpopularniejszym formatem danych ML, ale musimy zadbać o przestrzeganie głównych kwestii podczas ładowania tego samego do naszych projektów ML -

Nagłówek pliku

W plikach danych CSV nagłówek zawiera informacje dla każdego pola. Musimy użyć tego samego separatora dla pliku nagłówkowego i dla pliku danych, ponieważ to plik nagłówkowy określa, w jaki sposób należy interpretować pola danych.

Poniżej znajdują się dwa przypadki związane z nagłówkiem pliku CSV, które należy wziąć pod uwagę -

  • Case-I: When Data file is having a file header - Automatycznie przypisze nazwy do każdej kolumny danych, jeśli plik danych ma nagłówek pliku.

  • Case-II: When Data file is not having a file header - Musimy ręcznie przypisać nazwy do każdej kolumny danych, jeśli plik danych nie ma nagłówka pliku.

W obu przypadkach musimy wyraźnie określić, czy nasz plik CSV zawiera nagłówek, czy nie.

Komentarze

Komentarze w dowolnym pliku danych mają swoje znaczenie. W pliku danych CSV komentarze są oznaczone krzyżykiem (#) na początku wiersza. Musimy wziąć pod uwagę komentarze podczas ładowania danych CSV do projektów ML, ponieważ jeśli mamy komentarze w pliku, być może będziemy musieli wskazać, zależy od metody, którą wybierzemy do załadowania, czy oczekiwać tych komentarzy, czy nie.

Separator

W plikach danych CSV przecinek (,) jest standardowym separatorem. Rolą separatora jest oddzielenie wartości w polach. Ważne jest, aby wziąć pod uwagę rolę separatora podczas przesyłania pliku CSV do projektów ML, ponieważ możemy również użyć innego separatora, takiego jak tabulator lub spacja. Ale w przypadku użycia innego separatora niż standardowy, musimy go wyraźnie określić.

cytaty

W plikach danych CSV domyślnym cudzysłowem jest znak podwójnego cudzysłowu („”). Ważne jest, aby wziąć pod uwagę rolę cudzysłowów podczas przesyłania pliku CSV do projektów ML, ponieważ możemy również użyć innego znaku cudzysłowu niż podwójny cudzysłów. Ale w przypadku użycia innego znaku cudzysłowu niż standardowy, musimy to wyraźnie określić.

Metody ładowania pliku danych CSV

Podczas pracy z projektami ML najważniejszym zadaniem jest prawidłowe załadowanie do niego danych. Najpopularniejszym formatem danych w projektach ML jest CSV, który ma różne smaki i różne trudności w analizowaniu. W tej sekcji omówimy trzy typowe podejścia w Pythonie do ładowania pliku danych CSV -

Załaduj plik CSV za pomocą biblioteki standardowej Python

Pierwszym i najczęściej używanym podejściem do załadowania pliku danych CSV jest użycie standardowej biblioteki Python, która zapewnia nam różnorodne wbudowane moduły, a mianowicie csv modulei funkcję reader (). Poniżej znajduje się przykład ładowania pliku danych CSV za jego pomocą -

Example

W tym przykładzie używamy zestawu danych kwiatu tęczówki, który można pobrać do naszego katalogu lokalnego. Po załadowaniu pliku danych możemy go przekonwertować naNumPyarray i używaj go do projektów ML. Poniżej znajduje się skrypt Pythona do ładowania pliku danych CSV -

Najpierw musimy zaimportować moduł csv dostarczony przez standardową bibliotekę Pythona w następujący sposób -

import csv

Następnie musimy zaimportować moduł Numpy do konwersji załadowanych danych na tablicę NumPy.

import numpy as np

Teraz podaj pełną ścieżkę do pliku przechowywanego w naszym katalogu lokalnym, zawierającego plik danych CSV -

path = r"c:\iris.csv"

Następnie użyj funkcji csv.reader (), aby odczytać dane z pliku CSV -

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

Możemy wydrukować nazwy nagłówków za pomocą następującego wiersza skryptu -

print(headers)

Poniższy wiersz skryptu wypisze kształt danych, tj. Liczbę wierszy i kolumn w pliku -

print(data.shape)

Następna linia skryptu da pierwsze trzy linie pliku danych -

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]
]

Załaduj plik CSV za pomocą NumPy

Innym sposobem ładowania pliku danych CSV jest funkcja NumPy i numpy.loadtxt (). Poniżej znajduje się przykład ładowania pliku danych CSV za jego pomocą -

Przykład

W tym przykładzie korzystamy z zestawu danych Pima Indians Dataset zawierającego dane pacjentów z cukrzycą. Ten zbiór danych jest liczbowym zbiorem danych bez nagłówka. Można go również pobrać do naszego katalogu lokalnego. Po załadowaniu pliku danych możemy go przekonwertować na tablicę NumPy i wykorzystać do projektów ML. Poniżej znajduje się skrypt Pythona do ładowania pliku danych 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])

Wynik

(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.]
]

Załaduj plik CSV z Pandami

Innym podejściem do ładowania pliku danych CSV jest Pandas i pandas.read_csv()function. Jest to bardzo elastyczna funkcja, która zwraca apandas.DataFramektóre można natychmiast wykorzystać do kreślenia. Poniżej znajduje się przykład ładowania pliku danych CSV za jego pomocą -

Przykład

Tutaj zaimplementujemy dwa skrypty Pythona, pierwszy to zestaw danych Iris zawierający nagłówki, a drugi to zestaw danych Pima Indians Dataset, który jest liczbowym zestawem danych bez nagłówka. Oba zestawy danych można pobrać do katalogu lokalnego.

Script-1

Poniżej znajduje się skrypt Pythona do ładowania pliku danych CSV za pomocą 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

Poniżej znajduje się skrypt Pythona do wczytywania pliku danych CSV, wraz z podaniem nazw nagłówków, przy użyciu zestawu danych Pandas on 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

Różnicę między powyższymi trzema podejściami do ładowania pliku CSV można łatwo zrozumieć na podstawie podanych przykładów.