我正在尝试使用scikit-learn中的新管道可视化功能。在jupyter书籍或Google Colab中,我得到的输出是文本而不是管道可视化图表。我希望得到的图表是Scikit-Learn文档中展示的那种。
请提供建议
import seaborn as snsfrom sklearn.pipeline import Pipelinefrom sklearn.impute import SimpleImputerfrom sklearn.preprocessing import StandardScaler, OneHotEncoderfrom sklearn.compose import ColumnTransformerfrom sklearn.linear_model import LogisticRegressionTitanicDataset=sns.load_dataset("titanic")##print(tips.info())##print(tips.head())X=TitanicDataset[["sex","age","fare","embarked","who","pclass"]].copy()y=TitanicDataset[["survived"]].copy()print(X.info())numeric_independent_variables= ['fare', 'age', 'pclass']categorical_independent_variables=["who","embarked","sex"]numeric_pipeline=Pipeline([('imputer', SimpleImputer(strategy='median')),('scaler', StandardScaler())])categorical_pipeline= Pipeline([('imputer', SimpleImputer(strategy='constant', fill_value='missing')), ('onehot', OneHotEncoder(handle_unknown='ignore'))])consolidated_pipeline=ColumnTransformer([('num', numeric_pipeline, numeric_independent_variables), ('cat', categorical_pipeline, categorical_independent_variables)])clf = Pipeline(steps=[('consolidated_pipeline', consolidated_pipeline), ('classifier', LogisticRegression())])from sklearn import set_configset_config(display='diagram')print(clf)```
输出
Pipeline(steps=[('consolidated_pipeline', ColumnTransformer(transformers=[('num', Pipeline(steps=[('imputer', SimpleImputer(strategy='median')), ('scaler', StandardScaler())]), ['fare', 'age', 'pclass']), ('cat', Pipeline(steps=[('imputer', SimpleImputer(fill_value='missing', strategy='constant')), ('onehot', OneHotEncoder(handle_unknown='ignore'))]), ['who', 'embarked', 'sex'])])), ('classifier', LogisticRegression())])
回答:
不要使用print。print总是使用对象的__repr__
。相反,请使用IPython.display
中的display
,或者在笔记本的单元格末尾直接使用clf
(而不是print(clf)
)。