我是 Python 和 ML 新手。我写这段代码是为了练习。它显示此错误。我该如何解决这个重塑问题?
import pandas as pd
import sklearn as skl
data=pd.read_csv('housing.csv')
housing=data['ocean_proximity']
from sklearn.preprocessing import OneHotEncoder
encoder=OneHotEncoder()
housing_cat_fac=housing.factorize()
housing_final=encoder.fit_transform(housing_cat_fac.reshape(1,-1))
AttributeError Traceback (most recent call last)
<ipython-input-31-b13a23adc636> in <cell line: 9>()
7 encoder=OneHotEncoder()
8 housing_cat_fac=housing.factorize()
----> 9 housing_final=encoder.fit_transform(housing_cat_fac.reshape(1,-1))
AttributeError: 'tuple' object has no attribute 'reshape'
factorize
返回因式分解值和唯一原始值的元组。
因此
housing_cat_fac=housing.factorize()
将使 housing_cat_fac
成为一个元组。
您应该使用:
housing_cat_fac = housing.factorize()[0]
或者,如果您想保留原始值:
housing_cat_fac, uniq_vals = housing.factorize()
那么
housing_cat_fac
将是一个 numpy 数组。