Методы обработки пропущенных значений в наборах данных

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

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

Давайте посмотрим, какие существуют варианты решения этих пропущенных значений.

  • Избавьтесь от соответствующих строк
  • Избавиться от всего атрибута
  • Установите для значений какое-либо значение (ноль, среднее, медиана и т. д.)

Мы обсудим все варианты по отдельности

  1. Избавьтесь от соответствующих строк

Один из способов справиться с отсутствующими значениями в наборе данных — удалить всю строку со столбцом, в котором есть пустое значение. Теперь у нас есть набор данных в виде Dataframe библиотеки pandas. Чтобы удалить соответствующие строки, панды предоставляют следующую функцию:

  • dropna() — Эта функция удаляет любую строку, содержащую хотя бы одно пропущенное значение. Он удаляет все строки из набора данных, которые содержат пропущенные значения.
  • dropna(subset=[имя столбца(ов)]) — Эта функция удаляет строки, в которых отсутствуют значения этого конкретного столбца, который упоминается в параметре subset функции dropna.
import pandas as pd

data = pd.read_csv('data.csv')
data = data.dropna()

print(data)

2. Избавьтесь от всего атрибута

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

Функция drop() используется для удаления полного атрибута или столбца из набора данных pandas. Его можно удалить, указав имя столбца в качестве первого аргумента и параметр оси, равный 1.

import pandas as pd

data = pd.read_csv('data.csv')
data = data.drop('attribute_name', axis=1)

print(data)

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

3. Установите значения на какое-либо значение (ноль, среднее, медиана и т. д.).

В этом варианте мы заполним недостающее значение этого атрибута некоторыми другими значениями, которые могут компенсировать другие значения модели и соответственно использоваться для вывода. В соответствии с требованиями пользователь может заполнить недостающие значения средним, медианным, нулевым или другими значениями или параметрами. Заполнение пропущенных значений другими значениями может помочь получить ценную информацию и не позволит пользователю потерять данные, чтобы обучить модель дополнительным обучающим данным. Чтобы заполнить недостающие значения, у нас есть функция fillna() библиотеки pandas. Чтобы заполнить пропущенные значения, укажите первый аргумент в качестве значения, которое необходимо заполнить вместо отсутствующего значения в функции fillna(). Параметр inplace=True используется для изменения DataFrame на месте.

import pandas as pd

data = pd.read_csv('data.csv')
median = data['column_name'].median()
data['column_name'].fillna(median, inplace=True)

print(data)

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

Чтобы позаботиться о пропущенных значениях, Scikit-learn предоставляет удобный класс SimpleImputer. Сначала нам нужно создать экземпляр SimpleImputer с параметром стратегии, который будет использоваться для заполнения значений в недостающих местах в соответствующих столбцах.

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

from sklearn.impute import SimpleImputer
import pandas as pd

data = pd.read_csv('data.csv')
imputer = SimpleImputer(strategy='mean')
imputer.fit(data)
data['column_name'] = imputer.transform(data[['column_name']])

print(data)

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

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

Это все в этом блоге.

Спасибо!

Ахил Сони

Вы можете связаться со мной — Linkedin