执行包含自定义转换器的代码时出现问题?
Problem while executing code including custom transformers?
在通过 Aurelian Gideon 的 O'Reilly 出版的书处理加州住房数据集时,在 Custom T运行sformers 部分,我 运行 下面的代码 :-
from sklearn.base import BaseEstimator, TransformerMixin
rooms_ix, bedrooms_ix, population_ix, households_ix = 3, 4, 5, 6
class CombinedAttributesAdder(BaseEstimator, TransformerMixin):
def __init__(self, add_bedrooms_per_room = True): # no *args or **kargs
self.add_bedrooms_per_room = add_bedrooms_per_room
def fit(self, X, y=None):
return self # nothing else to do
def transform(self, X, y=None):
rooms_per_household = X[:, rooms_ix] / X[:, households_ix]
population_per_household = X[:, population_ix] / X[:, households_ix]
if self.add_bedrooms_per_room:
bedrooms_per_room = X[:, bedrooms_ix] / X[:, rooms_ix]
return np.c_[X, rooms_per_household, population_per_household, bedrooms_per_room]
else:
return np.c_[X, rooms_per_household, population_per_household]
attr_adder = CombinedAttributesAdder(add_bedrooms_per_room=False)
housing_extra_attribs = attr_adder.transform(housing.values)
我得到的错误如下:-
File "<ipython-input-43-43e04d49480a>", line 16
return np.c_[X, rooms_per_household, population_per_household]
^
IndentationError: expected an indented block
请建议如何修复它?
housing.values 是函数
您应该使用它的“数据”来执行转换任务。
比如
housing["data"]
在通过 Aurelian Gideon 的 O'Reilly 出版的书处理加州住房数据集时,在 Custom T运行sformers 部分,我 运行 下面的代码 :-
from sklearn.base import BaseEstimator, TransformerMixin
rooms_ix, bedrooms_ix, population_ix, households_ix = 3, 4, 5, 6
class CombinedAttributesAdder(BaseEstimator, TransformerMixin):
def __init__(self, add_bedrooms_per_room = True): # no *args or **kargs
self.add_bedrooms_per_room = add_bedrooms_per_room
def fit(self, X, y=None):
return self # nothing else to do
def transform(self, X, y=None):
rooms_per_household = X[:, rooms_ix] / X[:, households_ix]
population_per_household = X[:, population_ix] / X[:, households_ix]
if self.add_bedrooms_per_room:
bedrooms_per_room = X[:, bedrooms_ix] / X[:, rooms_ix]
return np.c_[X, rooms_per_household, population_per_household, bedrooms_per_room]
else:
return np.c_[X, rooms_per_household, population_per_household]
attr_adder = CombinedAttributesAdder(add_bedrooms_per_room=False)
housing_extra_attribs = attr_adder.transform(housing.values)
我得到的错误如下:-
File "<ipython-input-43-43e04d49480a>", line 16
return np.c_[X, rooms_per_household, population_per_household]
^
IndentationError: expected an indented block
请建议如何修复它?
housing.values 是函数
您应该使用它的“数据”来执行转换任务。
比如
housing["data"]