getting transformer results from sklearn.pipeline.Pipeline

Viewed 3374

I am using a sklearn.pipeline.Pipeline object for my clustering.

pipe = sklearn.pipeline.Pipeline([('transformer1': transformer1),
                                  ('transformer2': transformer2),
                                  ('clusterer': clusterer)])

Then I am evaluating the result by using the silhouette score.

sil = preprocessing.silhouette_score(X, y)

I'm wondering how I can get the X or the transformed data from the pipeline as it only returns the clusterer.fit_predict(X).

I understand that I can do this by just splitting the pipeline as

pipe = sklearn.pipeline.Pipeline([('transformer1': transformer1),
                                  ('transformer2': transformer2)])

X = pipe.fit_transform(data)
res = clusterer.fit_predict(X)
sil = preprocessing.silhouette_score(X, res)

but I would like to just do it all in one pipeline.

1 Answers
Related