Wrap up Quiz 14

I might have some mapping issue because some of the code I am using is different from the suggested answer.

When I am running the snippet code to get feature_names, it appears this error:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
1 preprocessor.fit(data)
----> 2 feature_names = (preprocessor.named_transformers_[“onehotencoder”]
3 .get_feature_names(categorical_column)).tolist()
4 feature_names += numerical_column

KeyError: 'onehotencoder'

My code is start from Q13 is as follow:

categorical_selector = selector(dtype_include=‘object’)
categorical_column = categorical_selector(data)

numerical_selector = selector(dtype_exclude=‘object’)
numerical_column = numerical_selector(data)

categorical_preprocessor = OneHotEncoder(handle_unknown=‘ignore’)
numerical_preprocessor = StandardScaler()

preprocessor = ColumnTransformer([(‘cat’, categorical_preprocessor, categorical_column),
(‘num’, numerical_preprocessor, numerical_column)])

model13 = make_pipeline(preprocessor, LogisticRegression(max_iter=500))

preprocessor.fit(data)
feature_names = (preprocessor.named_transformers_[“onehotencoder”]
.get_feature_names(categorical_column)).tolist()
feature_names += numerical_column

Can anyone let me know the mapping issue?

You called your categorical encoder "cat" instead of "onehotencoder" (I assume that we used make_column_transformer in the correction and it would give this name).

1 Like