title: Sklearn Pipeline: Get feature names after OneHotEncode In ColumnTransformer
body: <p>I want to get feature names after I fit the pipeline.</p>
  <pre><code>categorical_features = ['brand', 'category_name', 'sub_category']
  categorical_transformer = Pipeline(steps=[
      ('imputer', SimpleImputer(strategy='constant', fill_value='missing')),
      ('onehot', OneHotEncoder(handle_unknown='ignore'))])
      
  numeric_features = ['num1', 'num2', 'num3', 'num4']
  numeric_transformer = Pipeline(steps=[
      ('imputer', SimpleImputer(strategy='median')),
      ('scaler', StandardScaler())])
  
  preprocessor = ColumnTransformer(
      transformers=[
          ('num', numeric_transformer, numeric_features),
          ('cat', categorical_transformer, categorical_features)])
  </code></pre>
  <p>Then</p>
  <pre><code>clf = Pipeline(steps=[('preprocessor', preprocessor),
                        ('regressor', GradientBoostingRegressor())])
  </code></pre>
  <p>After fitting with pandas dataframe, I can get feature importances from</p>
  <p><code>clf.steps[1][1].feature_importances_</code></p>
  <p>and I tried <code>clf.steps[0][1].get_feature_names()</code> but I got an error</p>
  <pre><code>AttributeError: Transformer num (type Pipeline) does not provide get_feature_names.
  </code></pre>
  <p>How can I get feature names from this?</p>