#python #pandas #numpy #scikit-learn #pca
Вопрос:
У меня есть этот фрейм данных:
| col1 | col2 | col3 | col4 | label ------------------------------------------------------------- [1,2,3,4,5,6] | [1,2] | [1,2,3,4] | [1,2,4] | 1 [5,6,7,8] | [5,6,7,8,9] | [1,4] | [1,2,3,4] | 0
В идеале я хотел бы загружать каждый столбец как отдельные переменные. В этом случае каждый столбец представляет собой маркированные слова. Моя цель состоит в том, чтобы классифицировать, являются ли col1 и col2 нечетким совпадением с col3 и col4.
В предыдущих реализациях sci-kit, которые я делал, данные структурировались примерно так:
| col1 | col2 | col3 | col4 | label ------------------------------------------------------------- 1 | 2 | 4 | 0 | 1 8 | 9 | 1 | 2 | 0
В этих случаях легко сбросить ярлык, позвонить df.to_numpy()
и загрузить в модели.
В моем случае я попытался сделать это, объединив каждый столбец в один массив, но у меня возникли проблемы, поскольку каждый столбец может содержать массивы значительно разной длины. (от 0 до ~5000) Я попытался заполнить эти массивы nan
или 0, чтобы создать массивы той же длины, что и максимальная длина в наборе. Но это значительно увеличивает размер набора данных, так как общее количество записей в наборе составляет 1 млн.
Я рассматривал возможность использования PCA для ограничения каждого массива одинаковой длиной, но столкнулся с ошибками, поскольку размеры 1D вместо 2D. Кроме того, это не решает мою проблему с каждым столбцом, содержащим массивы. (если это проблема, о которой стоит беспокоиться)
Я знаю, что это ориентировано на более фундаментальный / руководящий вопрос высокого уровня, поэтому любые дополнительные рекомендации/ документы были бы очень полезны!
Комментарии:
1. Как насчет однократного кодирования каждого массива столбцов? Отложив в сторону тысячи функций, которые будут сгенерированы, сможете ли вы по-прежнему выполнять свой алгоритм нечеткой классификации?