W przyborniku sklearn-python są dwie funkcje transform
i fit_transform
about sklearn.decomposition.RandomizedPCA
. Poniżej opisano dwie funkcje
Ale jaka jest między nimi różnica?
python
python-2.7
scikit-learn
tqjustc
źródło
źródło
est.fit_transform(X)
jest zawsze równoważneest.fit(X).transform(X)
, ale zwykle szybsze.Odpowiedzi:
Tutaj różnica, której możesz użyć pca.transform tylko wtedy, gdy już obliczyłeś PCA na macierzy
jeśli chcesz używać
.transform
, musisz nauczyć swoją pca regułę transformacjiW szczególności transformacja PCA zastosuj zmianę bazy uzyskaną przy dekompozycji PCA macierzy X na macierz Z.
źródło
fit_transform
jest to połączenie dwóch funkcjifit
itransform
?W api estymatora scikit-Learn ,
fit()
: służy do generowania parametrów modelu uczenia się z danych szkoleniowychtransform()
: parametry wygenerowane na podstawiefit()
metody, zastosowane do modelu w celu wygenerowania przekształconego zestawu danych.fit_transform()
: kombinacjafit()
itransform()
API w tym samym zbiorze danychSprawdź Rozdział-4 z tej książki i odpowiedź z stackexchange dla większej przejrzystości
źródło
Metody te służą do wyśrodkowania / skalowania cech danych. Zasadniczo pomaga znormalizować dane w określonym zakresie
W tym celu używamy metody Z-score.
Robimy to na zbiorze uczącym danych.
1. Fit (): Metoda oblicza parametry μ i σ i zapisuje je jako obiekty wewnętrzne.
2. Transform (): Metoda wykorzystująca te obliczone parametry stosuje transformację do określonego zbioru danych.
3. Fit_transform (): łączy metody fit () i transform () w celu transformacji zbioru danych.
Fragment kodu do skalowania / standaryzacji funkcji (po train_test_split).
Stosujemy tę samą (zestaw uczący te same dwa parametry μ i σ (wartości)) transformację parametru w naszym zbiorze testowym.
źródło
Ogólna różnica między metodami:
Zarówno fit_transform, jak i transform zwracają tę samą macierz terminów dokumentu.
Źródło
źródło
Oto podstawowa różnica między
.fit()
&.fit_transform()
:.dopasowanie():
jest używany w uczeniu nadzorowanym, mając dwa obiekty / parametry (x, y), aby dopasować model i stworzyć model do uruchomienia, gdzie wiemy, że to, co będziemy przewidywać
.fit_transform ():
jest używany w uczeniu nienadzorowanym, mając jeden obiekt / parametr (x), gdzie nie wiemy, co będziemy przewidywać.
źródło
Mówiąc prościej, fit_transform oznacza wykonanie pewnych obliczeń, a następnie wykonanie transformacji (powiedzmy obliczenie średnich kolumn z niektórych danych, a następnie zastąpienie brakujących wartości). Tak więc w przypadku zestawu treningowego musisz zarówno obliczyć, jak i wykonać transformację.
Ale w przypadku zestawu testowego uczenie maszynowe stosuje przewidywanie na podstawie tego, czego nauczyliśmy się podczas zestawu uczącego, więc nie musi obliczać, po prostu wykonuje transformację.
źródło
Dlaczego i kiedy używać każdego z nich:
Wszystkie odpowiedzi są całkiem dobre, ale kładę nacisk na DLACZEGO i KIEDY stosuję każdą metodę.
fit (), transform (), fit_transform ()
Zwykle mamy nadzorowany problem uczenia się z (X, y) jako zbiorem danych i dzielimy go na dane treningowe i dane testowe:
Wyobraź sobie, że dopasowujemy tokenizer, jeśli dopasujemy X, dołączamy dane testowe do tokenizera, ale widziałem ten błąd wiele razy!
Prawidłowe jest dopasowanie TYLKO do X_train , ponieważ nie znasz "swoich przyszłych danych", więc nie możesz użyć danych X_test do dopasowania czegokolwiek!
Następnie możesz przekształcić dane testowe, ale oddzielnie, dlatego istnieją różne metody.
Ostatnia wskazówka:
X_train_transformed = model.fit_transform(X_train)
odpowiada:X_train_transformed = model.fit(X_train).transform(X_train)
ale pierwsza jest szybsza.Zwróć uwagę, że to, co nazywam „modelem”, zwykle będzie skalerem, transformatorem tfidf, innym rodzajem wektoryzatora, tokenizatorem ...
źródło