- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图继承 BaseEstimator
和 MetaEstimatorMixin
来为 base_estimator
创建包装,但我遇到了问题。我试图遵循存储库中的 base_ensemble
代码,但没有帮助。在运行下面调用 check_estimator(Wrapper)
的测试时,我收到 TypeError: get_params() Missing 1 requiredpositional argument: 'self'
。根据文档,如果我继承自 BaseEstimator
,则不必实现 get_params。看起来有些东西是一个类而不是一个实例,但我无法确定它。
from sklearn.base import BaseEstimator, ClassifierMixin, RegressorMixin, MetaEstimatorMixin, clone
from functools import lru_cache
import numpy as np
from sklearn.linear_model import LogisticRegression
'''
this is a module containing classes which wraps a classifier or a regressor sklearn estimator
'''
class Wrapper(BaseEstimator, MetaEstimatorMixin):
def __init__(self, base_estimator=LogisticRegression, estimator_params=None):
super().__init__()
self.base_estimator = base_estimator
self.estimator_params = estimator_params
def fit(self, x, y):
self.model = self._make_estimator().fit(x,y)
def _make_estimator(self):
"""Make and configure a copy of the `base_estimator_` attribute.
Warning: This method should be used to properly instantiate new
sub-estimators. taken from sklearn github
"""
estimator = self.base_estimator()
estimator.set_params(**dict((p, getattr(self, p))
for p in self.estimator_params))
return estimator
def predict(self, x):
self.model.predict(x)
import unittest
from sklearn.utils.estimator_checks import check_estimator
class Test(unittest.TestCase):
def test_check_estimator(self):
check_estimator(Wrapper)
最佳答案
base_estimator
字段必须使用对象初始化,而不是类。
....
def __init__(self, base_estimator=LogisticRegression(), ...
....
发生错误是因为某些测试中使用了clone(safe=False)。
safe: boolean, optional
If safe is false, clone will fall back to a deepcopy on objects
that are not estimators.
关于python - sklearn 包装估计器会导致 get_params 丢失 self 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442455/
我正在尝试定义一个符合 Sklearn 估算器条件的类,例如 class MyEstimator(): def __init__(self,verbose=False): se
我收到警告 File "[...]\lib\threading.py", line 890, in _bootstrap self._bootstrap_inner() File "[...]\l
我的模型已保存,我正在尝试部署模型,但收到错误消息 AttributeError:“super”对象没有属性“get_params”。我无法在我的代码中找到任何错误。任何人都可以帮助解决这个问题。在此
我试图继承 BaseEstimator 和 MetaEstimatorMixin 来为 base_estimator 创建包装,但我遇到了问题。我试图遵循存储库中的 base_ensemble 代码,
我正在使用 jquery $.ajax 解析生成的 json,但有一个选项我不明白。我在一些例子中看到了它,并试图在 jquery.com 上寻找它,但仍然不确定: 这个选项是: data: { ge
我在 scikit-learn 中有一个管道,它使用我定义的自定义转换器,如下所示: class MyPipelineTransformer(TransformerMixin): 定义函数 __ini
我正在尝试将 scikit-learn 包与 python-3.4 一起使用来进行网格搜索, from sklearn.feature_extraction.text import TfidfVect
我正在使用网格搜索来获得最合适的 k=['rbf', 'linear','poly','sigmoid'] c= [1,5,10,20,30,50,80,100] g=[1e-7,1e-6,1e-5,
我是一名优秀的程序员,十分优秀!