小编gga*_*rav的帖子

自定义 scikit-learn 评分器在拟合后无法访问均值

我正在尝试创建一个基于 scikit learn 的自定义估算器。我写了下面的虚拟代码来解释我的问题。在 score 方法中,我试图访问mean_calculated in fit。但我无能为力。我做错了什么?我已经尝试了很多事情,并参考了三四篇文章。但是没发现问题。

我已阅读文档并做了一些更改。但没有任何效果。我也尝试过继承BaseEstimator, ClassifierMixin. 但这也不起作用。

这是一个虚拟程序。不要按照它试图做的事情去做。

import numpy as np
from sklearn.model_selection import cross_val_score


class FilterElems:
    def __init__(self, thres):
        self.thres = thres

    def fit(self, X, y=None, **kwargs):
        self.mean_ = np.mean(X)
        self.std_ = np.std(X)
        return self

    def predict(self, X):
        #         return sign(self.predict(inputs))
        X = (X - self.mean_) / self.std_
        return X[X > self.thres]

    def get_params(self, deep=False):
        return {'thres': self.thres}

    def score(self, *x):
        print(self.mean_)  # errors out, mean_ and std_ are …
Run Code Online (Sandbox Code Playgroud)

python machine-learning scikit-learn

5
推荐指数
1
解决办法
177
查看次数

标签 统计

machine-learning ×1

python ×1

scikit-learn ×1