I find it sometimes useful to temporarily add a debugging step that displays the information you are interested in. Building on top of the example from sklearn 1 , you can do this, for example, to print the first 5 lines, shapes, or anything you need to see before the classifier is called:
from sklearn import svm from sklearn.datasets import samples_generator from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import f_regression from sklearn.pipeline import Pipeline from sklearn.base import TransformerMixin, BaseEstimator class Debug(BaseEstimator, TransformerMixin): def transform(self, X): print(pd.DataFrame(X).head()) print(X.shape) return X def fit(self, X, y=None, **fit_params): return self X, y = samples_generator.make_classification(n_informative=5, n_redundant=0, random_state=42) anova_filter = SelectKBest(f_regression, k=5) clf = svm.SVC(kernel='linear') anova_svm = Pipeline([('anova', anova_filter), ('dbg', Debug()), ('svc', clf)]) anova_svm.set_params(anova__k=10, svc__C=.1).fit(X, y) prediction = anova_svm.predict(X)
source share