小编Igo*_*nov的帖子

自定义转换器中的 scikit-learn AttributeError

我正在尝试创建一个转换器,将列的类型从“对象”更改为“类别”,因此我为此创建了自定义类:

from sklearn.base import BaseEstimator, TransformerMixin

class ChangeToCategory(BaseEstimator, TransformerMixin):
    def __init__(self, to_categories = None):
        self.to_categories_ = to_categories
    def fit(self, X, y=None):
        return self
    def transform(self, X, y=None):
        X_ = X.copy()
        for cat in self.to_categories_:
            X_[cat] = X_[cat].astype("category")
        return X_ 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建此类的对象时出现错误:

ChangeToCategory(to_categories=["Sex", "Embarked"])
AttributeError: 'ChangeToCategory' object has no attribute 'to_categories'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?基于错误,我假设它在某个地方尝试调用属性“to_categories”,但我使用属性“to_categories_” - 带下划线,并且没有来自 init 的变量,我不会在任何地方调用它。

python scikit-learn

6
推荐指数
1
解决办法
1265
查看次数

标签 统计

python ×1

scikit-learn ×1