Загрузка данных для проектов машинного обучения

Предположим, что если вы хотите начать проект машинного обучения, что вам потребуется в первую очередь и самое важное? Это данные, которые нам нужно загрузить для запуска любого проекта ML. Что касается данных, наиболее распространенным форматом данных для проектов машинного обучения является CSV (значения, разделенные запятыми).

По сути, CSV - это простой формат файла, который используется для хранения табличных данных (числа и текста), таких как электронная таблица, в виде обычного текста. В Python мы можем загружать данные CSV разными способами, но перед загрузкой данных CSV мы должны позаботиться о некоторых соображениях.

Учет при загрузке данных CSV

Формат данных CSV является наиболее распространенным форматом для данных ML, но мы должны позаботиться о следующих основных соображениях при загрузке его в наши проекты ML:

Заголовок файла

В файлах данных CSV заголовок содержит информацию для каждого поля. Мы должны использовать один и тот же разделитель для файла заголовка и для файла данных, потому что именно файл заголовка определяет, как следует интерпретировать поля данных.

Ниже приведены два случая, связанных с заголовком файла CSV, которые необходимо учитывать:

  • Case-I: When Data file is having a file header - Он автоматически назначит имена каждому столбцу данных, если файл данных имеет заголовок.

  • Case-II: When Data file is not having a file header - Нам нужно присвоить имена каждому столбцу данных вручную, если файл данных не имеет заголовка.

В обоих случаях нам необходимо явно указать, будет ли наш CSV-файл содержать заголовок или нет.

Комментарии

Комментарии в любом файле данных имеют значение. В файле данных CSV комментарии обозначаются решеткой (#) в начале строки. Нам необходимо учитывать комментарии при загрузке данных CSV в проекты машинного обучения, потому что, если у нас есть комментарии в файле, нам может потребоваться указать, в зависимости от метода, который мы выбираем для загрузки, следует ли ожидать этих комментариев или нет.

Разделитель

В файлах данных CSV стандартным разделителем является запятая (,). Роль разделителя заключается в разделении значений в полях. Важно учитывать роль разделителя при загрузке файла CSV в проекты ML, потому что мы также можем использовать другой разделитель, такой как табуляция или пробел. Но в случае использования разделителя, отличного от стандартного, мы должны указать его явно.

Цитаты

В файлах данных CSV двойные кавычки («») являются символом кавычек по умолчанию. Важно учитывать роль кавычек при загрузке файла CSV в проекты ML, потому что мы также можем использовать другие символы кавычек, кроме двойных кавычек. Но в случае использования символа кавычки, отличного от стандартного, мы должны указать его явно.

Способы загрузки файла данных CSV

При работе с проектами машинного обучения важнейшая задача - правильно загрузить в него данные. Наиболее распространенным форматом данных для проектов машинного обучения является CSV, он бывает разных видов и с разной сложностью для анализа. В этом разделе мы собираемся обсудить три распространенных подхода в Python для загрузки файла данных CSV:

Загрузить CSV с помощью стандартной библиотеки Python

Первым и наиболее часто используемым подходом для загрузки файла данных CSV является использование стандартной библиотеки Python, которая предоставляет нам множество встроенных модулей, а именно: csv moduleи функция reader (). Ниже приведен пример загрузки файла данных CSV с его помощью:

Example

В этом примере мы используем набор данных цветков ириса, который можно загрузить в наш локальный каталог. После загрузки файла данных мы можем преобразовать его вNumPyarray и используйте его для проектов машинного обучения. Ниже приведен сценарий Python для загрузки файла данных CSV.

Во-первых, нам нужно импортировать модуль csv, предоставляемый стандартной библиотекой Python, следующим образом:

import csv

Далее нам нужно импортировать модуль Numpy для преобразования загруженных данных в массив NumPy.

import numpy as np

Теперь укажите полный путь к файлу, хранящемуся в нашем локальном каталоге, с файлом данных CSV -

path = r"c:\iris.csv"

Затем используйте функцию csv.reader () для чтения данных из файла CSV -

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

Мы можем распечатать имена заголовков с помощью следующей строки скрипта -

print(headers)

Следующая строка скрипта напечатает форму данных, то есть количество строк и столбцов в файле -

print(data.shape)

Следующая строка скрипта даст первые три строки файла данных -

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

Загрузить CSV с помощью NumPy

Другой подход к загрузке файла данных CSV - это функция NumPy и numpy.loadtxt (). Ниже приведен пример загрузки файла данных CSV с его помощью:

пример

В этом примере мы используем набор данных индейцев пима, содержащий данные пациентов с диабетом. Этот набор данных представляет собой числовой набор данных без заголовка. Его также можно загрузить в наш локальный каталог. После загрузки файла данных мы можем преобразовать его в массив NumPy и использовать для проектов ML. Ниже приведен сценарий Python для загрузки файла данных 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])

Вывод

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

Загрузить CSV с помощью Pandas

Другой подход к загрузке файла данных CSV: Pandas и pandas.read_csv()function. Это очень гибкая функция, которая возвращаетpandas.DataFrameкоторый можно сразу использовать для построения графика. Ниже приведен пример загрузки файла данных CSV с его помощью:

пример

Здесь мы будем реализовывать два сценария Python, первый - с набором данных Iris с заголовками, а другой - с использованием набора данных индейцев пима, который представляет собой числовой набор данных без заголовка. Оба набора данных можно загрузить в локальный каталог.

Script-1

Ниже приведен сценарий Python для загрузки файла данных CSV с использованием Pandas в наборе данных Iris.

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

Ниже приведен сценарий Python для загрузки файла данных CSV, а также предоставления имен заголовков с использованием Pandas в наборе данных 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

Разницу между тремя использованными выше подходами к загрузке файла данных CSV можно легко понять с помощью приведенных примеров.