Как найти missing_mask?

#dataframe #missing-data #fancyimpute

#фрейм данных #отсутствуют данные #причудливый имп

Вопрос:

Я пытался следовать https://pypi.org/project/fancyimpute /

 # print mean squared error for the four imputation methods above
ii_mse = ((X_filled_ii[missing_mask] - X[missing_mask]) ** 2).mean()
print("Iterative Imputer norm minimization MSE: %f" % ii_mse)

nnm_mse = ((X_filled_nnm[missing_mask] - X[missing_mask]) ** 2).mean()
print("Nuclear norm minimization MSE: %f" % nnm_mse)

softImpute_mse = ((X_filled_softimpute[missing_mask] - X[missing_mask]) ** 2).mean()
print("SoftImpute MSE: %f" % softImpute_mse)

knn_mse = ((X_filled_knn[missing_mask] - X[missing_mask]) ** 2).mean()
print("knnImpute MSE: %f" % knn_mse)
  

Что такое missing_mask и как я могу получить его из фрейма данных с отсутствующими значениями?

Ответ №1:

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

[ 1 2] [ 3 NA]

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

[Ложь False] [Ложь True]

Пожалуйста, смотрите эту страницу для получения соответствующей функции в pandas. https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas .DataFrame.mask.html

Если вы хотите создать отсутствующую маску в исходном наборе данных, вы можете использовать df.isna() или df.isnull().

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

Надеюсь, это было полезно и удачи!