Niedawno dowiedziałem się o cudownym PCA i zrobiłem przykład opisany w dokumentacji scikit-learn .
Chcę wiedzieć, jak mogę zastosować PCA do nowych punktów danych do celów klasyfikacji.
Po wizualizacji PCA w płaszczyźnie dwuwymiarowej (oś x, y) widzę, że prawdopodobnie mogę narysować linię, aby oddzielić punkty danych, tak aby jedna strona miała jedną klasyfikację, a druga inną. Jak narysować tę „granicę” i zastosować ją do nowych punktów danych?
classification
pca
scikit-learn
vlasnalknsd
źródło
źródło
Odpowiedzi:
PCA to narzędzie do zmniejszania wymiarów, a nie klasyfikator. W Scikit-Learn wszystkie klasyfikatory i estymatory mają
predict
metodę, której nie ma PCA . Musisz dopasować klasyfikator do danych transformowanych PCA. Scikit-Learn ma wiele klasyfikatorów. Oto przykład użycia drzewa decyzyjnego na danych transformowanych PCA. Wybrałem klasyfikator drzewa decyzyjnego, ponieważ działa on dobrze dla danych z więcej niż dwiema klasami, co ma miejsce w przypadku zestawu danych tęczówki.SciKit learn ma wygodne narzędzie o nazwie Pipeline, które pozwala łączyć ze sobą transformatory i końcowy klasyfikator:
Jest to szczególnie przydatne podczas sprawdzania poprawności krzyżowej, ponieważ zapobiega przypadkowemu dopasowaniu ŻADNEGO kroku potoku w zestawie danych testowania:
Nawiasem mówiąc, może nie być konieczne użycie PCA, aby uzyskać dobre wyniki klasyfikacji. Zestaw danych tęczówki nie ma wielu wymiarów, a drzewa decyzyjne będą już dobrze działać na nietransformowanych danych.
źródło
Jeśli chcesz zastosować PCA do nowych danych, musisz najpierw dopasować model do zestawu danych szkoleniowych. Jaki model zapytasz? Jest to średni wektor odjęty od zestawu danych, wariancje użyte do „wybielenia” każdego wektora danych i wyuczona macierz mapowania. Aby więc zmapować nowy zestaw danych w tej samej przestrzeni, co dane treningowe, najpierw odejmij średnią, wybielić ją i zmapować za pomocą macierzy mapowania.
źródło