Недавно я узнал о замечательном PCA, и я сделал пример, изложенный в документации scikit-learn .
Мне интересно знать, как я могу применить PCA к новым точкам данных для целей классификации.
После визуализации PCA в двухмерной плоскости (ось x, y) я вижу, что, вероятно, могу нарисовать линию, чтобы отделить точки данных, чтобы одна сторона была одной классификации, а другая - другой. Как нарисовать эту «границу» и применить ее к новым точкам данных?
classification
pca
scikit-learn
vlasnalknsd
источник
источник
Ответы:
PCA - это инструмент уменьшения размеров, а не классификатор. В Scikit-Learn у всех классификаторов и оценщиков есть
predict
метод, которого нет у PCA . Вам необходимо установить классификатор на данные, преобразованные PCA. Scikit-Learn имеет много классификаторов. Вот пример использования дерева решений для PCA-преобразованных данных. Я выбрал классификатор дерева решений, поскольку он хорошо работает для данных с более чем двумя классами, как в случае с набором данных iris.SciKit learn имеет удобный инструмент под названием Pipeline, который позволяет объединить в цепочку трансформаторы и окончательный классификатор:
Это особенно полезно при перекрестной проверке, поскольку предотвращает случайную повторную установку ЛЮБОГО шага конвейера в наборе данных тестирования:
Кстати, вам может даже не понадобиться использовать PCA, чтобы получить хорошие результаты классификации. Набор данных iris не имеет большого количества измерений, и деревья решений уже будут хорошо работать с нетрансформированными данными.
источник
Если вы хотите применить PCA к новым данным, вы должны сначала подобрать модель в некотором наборе обучающих данных. Какую модель вы спросите? Это средний вектор, который вы вычли из набора данных, дисперсии, которые вы использовали для «отбеливания» каждого вектора данных, и матрицу изученного отображения. Таким образом, чтобы отобразить новый набор данных в том же пространстве, что и обучающие данные, сначала вычтите среднее значение, отбелите его и сопоставьте с матрицей отображения.
источник