Рубрики
Без рубрики

Немейте пропущенные значения данных в Python – 3 простых способа!

Привет, народ! В этой статье мы будем сосредоточены на 3 важных методах для вменяемости отсутствующих значений данных в Python.

Автор оригинала: 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 и продолжай учиться!