【发布时间】:2021-10-25 18:32:38
【问题描述】:
我正在尝试创建一个将列类型从“对象”更改为“类别”的转换器,因此我为此创建了自定义类:
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_
但是当我尝试创建此类的对象时出现错误:
ChangeToCategory(to_categories=["Sex", "Embarked"])
AttributeError: 'ChangeToCategory' object has no attribute 'to_categories'
我做错了什么?基于错误,我假设它在某处尝试调用属性“to_categories”,但我使用属性“to_categories_” - 带有下划线,并且没有来自 init 的变量,我不会在任何地方调用。
【问题讨论】:
标签: python scikit-learn