scikit-learn의 Transformer -fit 및 transform 메서드 또는 fit_transform 메서드가있는 일부 클래스.
Predictor -fit 및 predict 메서드가있는 일부 클래스 또는 fit_predict 메서드.
파이프 라인 은 추상적 인 개념 일 뿐이며 기존 ML 알고리즘이 아닙니다. 종종 ML 작업에서 최종 추정기를 적용하기 전에 원시 데이터 세트의 다양한 변환 (기능 집합 찾기, 새 기능 생성, 일부 좋은 기능 선택)의 시퀀스를 수행해야합니다.
다음 은 파이프 라인 사용의 좋은 예입니다. Pipeline은 3 단계의 변환 및 결과 추정기에 대한 단일 인터페이스를 제공합니다. 내부에 변환기와 예측자를 캡슐화하며 이제 다음과 같은 작업을 수행 할 수 있습니다.
vect = CountVectorizer()
tfidf = TfidfTransformer()
clf = SGDClassifier()
vX = vect.fit_transform(Xtrain)
tfidfX = tfidf.fit_transform(vX)
predicted = clf.fit_predict(tfidfX)
# Now evaluate all steps on test set
vX = vect.fit_transform(Xtest)
tfidfX = tfidf.fit_transform(vX)
predicted = clf.fit_predict(tfidfX)
그냥 :
pipeline = Pipeline([
('vect', CountVectorizer()),
('tfidf', TfidfTransformer()),
('clf', SGDClassifier()),
])
predicted = pipeline.fit(Xtrain).predict(Xtrain)
# Now evaluate all steps on test set
predicted = pipeline.predict(Xtest)
파이프 라인을 사용하면이 메타 추정기의 각 단계에 대한 매개 변수 세트에 대한 그리드 검색을 쉽게 수행 할 수 있습니다. 위의 링크에서 설명한대로. 마지막 단계를 제외한 모든 단계는 변환이어야하며 마지막 단계는 변환기 또는 예측자가 될 수 있습니다.
편집에 대한 답변 : 호출 할 때 pipln.fit()
-파이프 라인 내부의 각 변압기는 이전 변압기의 출력에 적합합니다 (첫 번째 변압기는 원시 데이터 세트에서 학습 됨). 마지막 추정자는 변환기 또는 예측 자일 수 있습니다. 마지막 추정자가 변환기 (fit_transform 또는 변환 및 맞춤 메서드를 별도로 구현) 인 경우에만 파이프 라인에서 fit_transform ()을 호출 할 수 있습니다. 다음 경우에만 파이프 라인에서 fit_predict () 또는 predict ()를 호출 할 수 있습니다. 마지막 견적은 예측 자입니다. 따라서 파이프 라인에서 fit_transform 또는 transform을 호출 할 수 없습니다. 마지막 단계는 예측 자입니다.