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

Как подготовить набор данных для машинного обучения в Python. Машинное обучение — это обучение вашей модели на основе текущих данных для прогнозирования будущих значений. Итак, нам нужны правильные количества для обучения нашей модели. Поэтому в реальной жизни у нас не всегда есть правильные данные, с которыми можно работать. Если данные обрабатываются некорректно, то нам нужно подготовить их, а затем начать обучение нашей модели. Итак, в этом посте мы шаг за шагом увидим, как преобразовать наши исходные данные в данные для обучения и тестирования. В этом примере мы используем библиотеки Python, такие как scikit learn, numpy, и

Prepare Набор данных для машинного обучения в Python

Мы используем язык программирования Python для создания идеального набора данных. Для подготовки набора данных нам необходимо выполнить следующие шаги.

# Шаги по подготовке данных.

  1. Получить набор данных и перенести библиотеки.
  2. Обработать недостающие данные.
  3. Кодировать категориальные данные.
  4. Разделение набора данных на обучающий набор и тестовый набор.
  5. Масштабирование функций, если все столбцы масштабируются неправильно.

Итак, мы будем все шаги в наборе данных один за другим и подготовить окончательный набор данных, к которому мы можем применить регрессию и различные алгоритмы.

# 1: Получить набор данных.

Хорошо, теперь мы собираемся использовать данные индийских пациентов с печенью. Поэтому сначала мы готовим полный набор данных для такого рода данных. Я помещаю сюда ссылку для загрузки данных. Помните, что это не настоящий набор данных; это просто демонстрационный набор данных. Похоже на настоящий набор данных.

Загрузить файл: PatientData ​​p >

Теперь нам нужно создать каталог проекта. Итак, давайте построим, используя следующую команду.

 mkdir predata 

Теперь войдите в каталог.

 cd predata 

Нам нужно переместить файл CSV внутрь этой папки.

Теперь откройте программу Anaconda Navigator . Если вы новичок в Anaconda, ознакомьтесь с этим Как начать работу с машинным обучением в Python. После открытия навигатора вы увидите экран, как показано ниже.

Теперь запустите Spyder и перейдите в папку своего проекта. Как видите, мы уже переместили файл PatientData.csv , чтобы вы могли видеть этот файл оттуда.

Хорошо, теперь нам нужно создать один Python файл с именем datapre.py и начните импорт математических библиотек.

Напишите следующий код внутри файла datapre.py . Итак, ваш файл выглядит так. Помните, мы используем Python 3

 #!/Usr/bin/env python3 # - * - coding: utf-8 - * - "" "Создано  25 июля, среда, 18:52:15 2018 @ author: ваше имя "" "import numpy as npimport matplotlib.pyplot as pltimport pandas as pd 

Теперь выберите код из трех операторов импорта и нажмите команда + ввод , и вы можете увидеть справа внизу; код работает успешно.

Это означает, что мы успешно импортировали библиотеки. Если вы обнаружили какую-либо ошибку, возможно, отсутствует библиотека numpy, pandas или matplotlib . Итак, вам нужно установить это, и все.

# 2: Обработка отсутствующих данных.

В режиме реального времени , пропуск данных происходит довольно часто. Если вы находите набор данных в реальном времени, например, для пациентов, то данные всегда отсутствуют. Чтобы правильно обучить модель, нам нужно как-то заполнить данные. В противном случае модель неверно предсказывает значения. К счастью, для этого уже доступны библиотеки; для этого нам нужно использовать соответствующую функцию. Теперь в нашем наборе данных отсутствуют данные, поэтому нам нужно заполнить данные либо средними значениями, либо использовать какие-то другие алгоритмы. В этом примере мы используем MEAN для предоставления значений. Итак, давайте сделаем это.

Но сначала давайте разделим набор данных на оси X и Y.

Хорошо, теперь напишите следующий код после импорта библиотек. .

 #!/usr/bin/env python3 # - * - coding: utf-8 - * - "" "Создано в среду 25 июля, 18:52:15 2018 @ author: krunal"  "" import numpy as npimport matplotlib.pyplot as pltimport pandas as pddataset = pd.read_csv ('PatientData.csv') 

Теперь выберите следующую строку и нажмите команду + введите.

 dataset = pd.read_csv ('PatientData.csv') 

Итак, мы включили наш исходный набор данных, и вы можете видеть здесь.

Здесь вы можете видеть, что если значение пусто, то отображается nan . Поэтому нам нужно изменить его с помощью значений MEAN . Итак, давайте сделаем это.

Напишите следующий код.

 X = dataset.iloc [:,: -1] .valuesY = dataset.iloc [:,  3] .values ​​

Итак, здесь, в X , мы выбрали первые четыре столбца и оставили пятый столбец. Это будет наш Y .

Помните, что индексы начинаются с 0. Итак, -1 означает последний столбец. Итак, мы выбираем все столбцы, кроме последнего.

Для Y мы явно выбрали четвертый столбец, а индекс равен 3.

Хорошо, теперь нам нужно обработать недостающие данные. Мы будем использовать библиотеку Scikit learn.

Напишите следующий код.

 ... from sklearn.preprocessing import Imputerimputer =  Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X [:, 1: 3]) X [:, 1: 3] = imputer. transform (X [:, 1: 3]) 

Итак, здесь мы должны использовать модуль Imputer, чтобы использовать стратегию «среднее» и заполнить недостающие значения средними значениями. Выполните указанные выше строки и введите X в консоли. Вы можете увидеть что-то подобное ниже. Здесь в столбцах 1 и 2 отсутствуют значения, но мы написали 1: 3 , потому что верхняя граница исключена; поэтому мы взяли 1 и 3, и он работает нормально. Наконец, преобразуйте все значения столбца, которые имеют значения NaN, и теперь у нас есть заполненные значения.

Здесь вы можете видеть, что средние значения этого конкретного столбца заполняют отсутствующие значения.

Итак, у нас есть обработал недостающие данные. Теперь переходите к следующему шагу.

# 3: Кодируйте категориальные данные.

В нашем наборе данных есть два категориальные столбцы.

  1. Пол
  2. Заболевание печени

Итак, нам нужно закодировать эти два столбца данных.

 # Кодировать категориальные данные из sklearn. preprocessing import LabelEncoder,  OneHotEncoderlabelencoder_X = LabelEncoder () X [:, 0] = labelencoder_X.fit_transform (X [:, 0]) onehotencoder = OneHotEncoder (categoryorical_features = [0]) X = onehotencoder.fit_trancoder (X).  Y = labelencoder_Y.fit_transform (Y) 

Здесь мы закодировали значения первого столбца. Теперь у нас есть только два случая для первого столбца: Female и Male. Теперь после преобразования значения: 1 для женщин и 0 для мужчин.

Run строку выше и просмотрите изменения категориальных данных. Итак, здесь для женщин это 1 , а для мужчин — 0. Он создал еще один столбец и заменил Male и Female согласно 1 и 0. Поэтому становится с 3 столбцов до 4 столбцов.

# 4: разделите набор данных на обучающий набор и тестовый набор.

Теперь, как правило, мы разделяем данные с соотношением 70% для обучающих данных и 30% для тестовых данных. В нашем примере мы разделили 80% для обучающих данных и 20% для тестовых данных.

Напишите следующий код внутри Spyder .

 # Разделить данные между обучающими данными и тестовыми данными из sklearn.model_selection import train_test_splitX_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.2, random_state = 0) 

Запустите код, и вы сможете получить четыре дополнительных переменных. Итак, всего у нас есть семь переменных.

Итак, здесь мы разделили оси X и Y на X_train и X_test

Ось Y становится Y_train и Y_test.

Итак, у вас есть 80% данных по X_train и Y_train и 20% данных по X_test и Y_test.

# 5: Масштабирование функций

В общем случае машинное обучение основано на Евклидовом расстоянии. Здесь для столбцов Альбумин и Возраст столбец имеет совершенно другой диапазон значений. Поэтому нам нужно преобразовать эти значения и сделать это в пределах диапазона значений. Вот почему это называется масштабированием функций. Нам нужно масштабировать значения столбца Age . Итак, давайте масштабируем X_train и X_test.

 # Масштабирование функций из sklearn.preprocessing import StandardScalerc_X = StandardScaler () X_train = sc_X.fit_transform (X_train) X_test = sc_X.transform (X_test) 

Здесь нам не нужно Y, потому что он уже масштабирован. Теперь запустите приведенный выше код и нажмите следующую команду.

Здесь мы видим, что все значения соответствующим образом масштабированы, а также вы можете проверить переменную X_test .

Итак, мы успешно очистили и подготовили данные.

Вот окончательный код нашего

 #  !/usr/bin/env python3 # - * - coding: utf-8 - * - "" "Создано 25 июля, 18:52:15 2018 @ author: krunal" "" # Импорт библиотекимпорт numpy как npimport matplotlib.pyplot  as pltimport pandas as pd # Импорт набора данных tdataset = pd.read_csv ('PatientData.csv') X = dataset.iloc [:,: -1] .valuesY = dataset.iloc [:, 3] .values ​​# Обработка отсутствующего набора данных из sklearn.  предварительная обработка import Imputerimputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X [:, 1: 3]) X [:, 1: 3] = imputer.transform (  X [:, 1: 3]) # Кодировать категориальные данные из sklearn.preprocessing import LabelEncoder, OneHotEnc  oderlabelencoder_X = LabelEncoder () X [:, 0] = labelencoder_X.fit_transform (X [:, 0]) onehotencoder = OneHotEncoder (category_features = [0]) X = onehotencoder.fit_transform (X).  Y = labelencoder_Y.fit_transform (Y) # Разделить данные между обучающими данными и тестовыми данными из sklearn.model_selection import train_test_splitX_train, X_test, Y_train, Y_test = train_test_split (X, Y, test_size = 0.2, random_staling = 0) # Featurelestaling = 0.  предварительная обработка import StandardScalerc_X = StandardScaler () X_train = sc_X.fit_transform (X_train) X_test = sc_X.transform (X_test) 

Итак, мы успешно подготовили набор данных для машинного обучения в Python.

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

Наконец, Подготовьте набор данных для машинного обучения в Python окончено. Спасибо, что приняли.

Оцените статью
nanomode.ru
Добавить комментарий