【问题标题】:Problem while executing code including custom transformers?执行包含自定义转换器的代码时出现问题?
【发布时间】:2021-09-30 06:18:52
【问题描述】:

在通过 Aurelian Gideon 的 O'Reilly 出版物的书处理加利福尼亚住房数据集时,在 Custom Transformers 部分中,我运行了以下代码:-

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

请建议如何解决?

【问题讨论】:

  • 您的else 在函数之外。

标签: python jupyter-notebook data-science


【解决方案1】:

housing.values 是一个函数

您应该使用它的“数据”来执行转换任务。

比如

housing["data"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2011-10-25
    相关资源
    最近更新 更多