Автор оригинала: Pankaj Kumar.
Привет, народ! В этой статье мы будем сосредоточиться на 3 важных методика для вменяемых недостатков значений данных в питоне.
Итак, давайте начнем.
Почему нам нужно вменять недостающие значения данных?
Прежде чем идти вперед с вменением, давайте понять, что такое отсутствующее значение.
Таким образом, отсутствующее значение является частью набора данных, который кажется отсутствует или является нулевым значением, может быть, из-за некоторого отсутствующих данных во время исследования или сбора данных.
Наличие недостаемости в модели машинного обучения считается очень неэффективной и опасной из-за следующих причин:
- Уменьшает эффективность модели ML.
- Влияет на общее распространение значений данных.
- Это приводит к предвзятый эффект В оценке модели ML.
Это когда вменение входит в картину.
Путем вменения, мы хотим заменить недостающие или нулевые значения с определенным значением во всем наборе данных.
Вменение может быть сделано с использованием любого из методик ниже
- Вменять в среднем
- Вменеть медров
- Нанн вменение
Давайте теперь будем понимать и реализовать каждую из методик в предстоящем разделе.
1. Немейте пропущенные значения данных по среднему
Пропущенные значения могут быть вменены в среднее значение этой конкретной переменной функции/данных. То есть нулевые или отсутствующие значения могут быть заменены средним значением значений данных этой конкретной колонны или набора данных.
Давайте посмотрим на набор данных ниже, который мы будем использовать по всей статье.
Как ясно видно, вышеуказанный набор данных содержит нулевые значения. Давайте теперь попробуем иммурировать их с помощью функции.
Импортировать необходимые библиотеки
Здесь, сначала, давайте загрузим необходимые наборы данных в рабочую среду.
#Load libraries import os import pandas as pd import numpy as np
Мы использовали функцию PandaS.READ_CSV () для загрузки набора данных в среду.
marketing_train = pd.read_csv("C:/marketing_tr.csv")
Проверьте недостающие значения в базе данных
Прежде чем мы внесем отсутствующие значения данных, необходимо проверить и определить наличие отсутствующих значений, используя Isnull () Функция
как показано ниже-
marketing_train.isnull().sum()
После выполнения вышеуказанной линии кода мы получаем следующее количество пропущенных значений в качестве вывода:
custAge 1804 profession 0 marital 0 responded 0 dtype: int64
Как ясно видно, вариабельная переменная данных «CARGAY» содержит 1804 пропущенных значений из 7414 записей.
Используйте средний () метод на всех нулевых значениях
Далее мы использовали Среднее () Функция
Чтобы вменять все нулевые значения со средним значением колонки «CARGAY».
missing_col = ['custAge'] #Technique 1: Using mean to impute the missing values for i in missing_col: marketing_train.loc[marketing_train.loc[:,i].isnull(),i]=marketing_train.loc[:,i].mean()
Проверьте изменения
После выполнения вменения со средним, давайте проверьте, были ли все значения вмешиваются или нет.
marketing_train.isnull().sum()
Как видно ниже, все недостающие значения были вменены и, таким образом, мы видим больше отсутствующих значений.
custAge 0 profession 0 marital 0 responded 0 dtype: int64
2. вменение с медианом
В этой технике мы несем пропущенные значения со средним значением значений данных или набором данных.
Давайте понять это с примером ниже.
Пример:
#Load libraries import os import pandas as pd import numpy as np marketing_train = pd.read_csv("C:/marketing_tr.csv") print("count of NULL values before imputation\n") marketing_train.isnull().sum() missing_col = ['custAge'] #Technique 2: Using median to impute the missing values for i in missing_col: marketing_train.loc[marketing_train.loc[:,i].isnull(),i]=marketing_train.loc[:,i].median() print("count of NULL values after imputation\n") marketing_train.isnull().sum()
Здесь мы вмешали пропущенные значения с помощью медиана, используя Медиана () Функция
Отказ
Выход:
count of NULL values before imputation custAge 1804 profession 0 marital 0 responded 0 dtype: int64 count of NULL values after imputation custAge 0 profession 0 marital 0 responded 0 dtype: int64
3. KNN вменение
В этой технике отсутствующие значения вменены на основании алгоритма KNN I.E. К-ближайший соседский алгоритм Отказ
В этом алгоритме отсутствующие значения заменяются на ближайшие соседские оценочные значения.
Давайте понять реализацию, используя пример ниже:
Кнн вменение:
#Load libraries import os import pandas as pd import numpy as np marketing_train = pd.read_csv("C:/marketing_tr.csv") print("count of NULL values before imputation\n") marketing_train.isnull().sum()
Здесь является количество пропущенных значений:
count of NULL values before imputation custAge 1804 profession 0 marital 0 responded 0 dtype: int64
В приведенном ниже кадре кода мы преобразовали типы данных переменных данных на тип объекта с назначенными им категорическими кодами.
lis = [] for i in range(0, marketing_train.shape[1]): if(marketing_train.iloc[:,i].dtypes == 'object'): marketing_train.iloc[:,i] = pd.Categorical(marketing_train.iloc[:,i]) #print(marketing_train[[i]]) marketing_train.iloc[:,i] = marketing_train.iloc[:,i].cat.codes marketing_train.iloc[:,i] = marketing_train.iloc[:,i].astype('object') lis.append(marketing_train.columns[i])
Функция knn ()
используется для вменения пропущенных ценностей с возможным ближайшим соседом.
#Apply KNN imputation algorithm marketing_train = pd.DataFrame(KNN(k = 3).fit_transform(marketing_train), columns = marketing_train.columns)
Вывод вменения :
Imputing row 1/7414 with 0 missing, elapsed time: 13.293 Imputing row 101/7414 with 1 missing, elapsed time: 13.311 Imputing row 201/7414 with 0 missing, elapsed time: 13.319 Imputing row 301/7414 with 0 missing, elapsed time: 13.319 Imputing row 401/7414 with 0 missing, elapsed time: 13.329 . . . . . Imputing row 7101/7414 with 1 missing, elapsed time: 13.610 Imputing row 7201/7414 with 0 missing, elapsed time: 13.610 Imputing row 7301/7414 with 0 missing, elapsed time: 13.618 Imputing row 7401/7414 with 0 missing, elapsed time: 13.618
print("count of NULL values after imputation\n") marketing_train.isnull().sum()
Выход:
count of NULL values before imputation custAge 0 profession 0 marital 0 responded 0 dtype: int64
Заключение
По этому, мы подошли к концу этой темы. В этой статье мы внедрили 3 различных методики вменения.
Не стесняйтесь комментировать ниже, если вы столкнетесь с любым вопросом.
Для большего количества таких постов, связанных с Python, оставайся настроенными @ Python с Askpython и продолжай учиться!