无法修复我在编写代码以分析O'Reilly书中的数据集时遇到的错误"California Housing"



执行代码时:(摘自《使用Scikit Learn、Keras和TensorFlow进行机器学习:构建智能系统的概念、工具和技术》第69页Aurelien Geron的书"(

housing_cat_encoded = ordinal_encoder.fit_transform(housing_cat)
housing_cat_encoded[:10]

我得到错误:-

ValueError: Expected 2D array, got 1D array instead:
array=['<1H OCEAN' '<1H OCEAN' 'NEAR OCEAN' ... 'INLAND' '<1H OCEAN' 'NEAR BAY'].
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.

我该如何修复它?

在这种情况下,错误描述了问题和解决方法。函数.fit_transform()需要一个2D数组,而不是1D数组。实现这一点的一种方法是使用.reshape()。由于我们传递的是单列(特性(,因此我们应该使用-1,1

housing_cat_encoded = ordinal_encoder.fit_transform(housing_cat.reshape(-1,1))

如果housing_cat是熊猫系列,那么您可能必须使用:

housing_cat_encoded = ordinal_encoder.fit_transform(housing_cat.values.reshape(-1,1))

最新更新