Заполните пропущенные значения, используя среднее значение класса.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Заполните пропущенные значения, используя среднее значение класса.

Сообщение Anonymous »

Проблема
У меня есть функция check_missing_values, которая принимает массив данных в качестве входных данных и печатает положение пропущенных значений.< /p>

Код: Выделить всё

def check_missing_values(X):
"""Look for missing values in X
X: (n, p) data array
"""

missing_values = np.where(np.isnan(X))

if missing_values[0].size == 0:
print("No missing values were found.")
else:
print("Missing value(s) at:")

for row, column in zip(missing_values[0], missing_values[1]):
print("row: {}, column: {}".format(row, column))

print("Training set")
missing_values = check_missing_values(X_train)
Эта функция выводит следующие результаты:

Код: Выделить всё

Training set
Missing value(s) at:
row: 395, column: 8
Теперь я хочу заполнить недостающее значение, чтобы иметь возможность использовать его как часть обучающего набора при обучении модели. Я хочу сделать это, используя среднее значение класса.
При заполнении пропущенного значения исходный массив данных изменится. По этой причине я делаю копию данных X_train как X_train_imp.
Нерабочее решение

Код: Выделить всё

X_train_imp = np.copy(X_train)

# Identify all positions where X_train has NaN
missing_rows, missing_cols = np.where(np.isnan(X_train_imp))

for (r, c) in zip(missing_rows, missing_cols):
the_class = X_train_imp[r, -1]

row_ids = np.arange(X_train.shape[0])
mask_class = ((X_train[:, -1] == the_class) & (row_ids != r))

col_vals = X_train[mask_class, c]

col_vals_no_nan = col_vals[~np.isnan(col_vals)]

mean_val = np.mean(col_vals_no_nan)

X_train_imp[r, c] = mean_val

print("Done!")
В результате по-прежнему выдается ошибка, требующая заполнения пропущенного значения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... class-mean
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Заполните пропущенные значения в столбце datetime64[ns] – pandas
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Заполните пропущенные значения в столбце datetime64[ns] – pandas
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Заполните пропущенные значения в столбце datetime64[ns] – pandas
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Заполните пропущенные значения в столбце datetime64[ns] – pandas
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Заполните пропущенные значения в столбце datetime64[ns] – pandas
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»