Удалить строку или столбцы матрицы, содержащие недопустимые элементы, сохраняя максимальное количество допустимых элементов для PCA. - PullRequest
1 голос
/ 19 июня 2020

Контекст: я выполняю PCA для матрицы MxN (N >> M) с некоторыми недопустимыми значениями, расположенными в матрице. Я не могу вывести эти значения, поэтому мне нужно удалить их все, что означает, что мне нужно удалить всю соответствующую строку или столбец. Конечно, я хочу сохранить максимальный объем данных. Недопустимые записи представляют ~ 30% данных, но большая их часть полностью заполнена несколькими строками, некоторые из них разбросаны по остальной части матрицы.

Некоторые возможные подходы:

  • Подобно этой проблеме , где я форматирую свою матрицу так, что допустимые записи данных равны 1, а недопустимые записи - огромному отрицательному числу. Однако все предлагаемые решения имеют экспоненциальную сложность, и моя проблема проще. ). Пересчитайте крысу ios для субматрицы и удалите самую высокую крысу ios. (не уверен, сколько строк или столбцов мы можем безопасно удалить за один шаг) и так далее, пока не останется недействительных данных. Это кажется нормальным решением, но я не уверен, что оно всегда дает оптимальное решение.

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

...