编码出错原因
ordinal_encoder = OrdinalEncoder()
housing_cat_encoded = ordinal_encoder.fit_transform(housing.ocean_proximity)
housing_cat_encoded[:10]
提示出错
array=['INLAND' 'NEAR OCEAN' 'INLAND' ... '<1H OCEAN' '<1H OCEAN' 'INLAND'].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
原因
sklearn 的新版本中,OrdinalEncoder 的输入必须是 2D array,而 housing_cat 返回的 是 1D array。改正方法:
ordinal_encoder = OrdinalEncoder()
housing_cat_encoded = ordinal_encoder.fit_transform(housing[['ocean_proximity']])
housing_cat_encoded[:10]
输出结果
0,1.0
1,4.0
2,1.0
3,4.0
4,0.0
5,3.0
6,0.0
7,0.0
8,0.0
9,0.0