【发布时间】:2021-05-24 13:39:54
【问题描述】:
我正在尝试通过 Isolation Forest 算法实现一个 Python 自定义类,用于异常值检测和删除。我的计划是在GridSearchCV 中使用它来调整神经网络(回归)的超参数。这是我的代码,
class OutlierExtractor(BaseEstimator, TransformerMixin):
def __init__(self, contamination):
self.contamination = contamination
self.mask = None
def fit(self, X, y):
iso = IsolationForest(contamination = self.contamination)
yhat = iso.fit_predict(X)
mask = yhat != -1
self.mask = mask
return self
def transform(self, X, y):
X = X[self.mask, :]
y = y[self.mask]
return (X, y)
和管道
estimator = Pipeline([
('outliers', OutlierExtractor(0.1)),...
]
但是,运行grid_result = grid.fit(X, Y) 会给出错误transform() missing 1 required positional argument: 'y'。
如何解决?
此外,如果能够对污染参数进行调整,那就太好了。
【问题讨论】:
标签: python python-3.x scikit-learn deep-learning pipeline