您可能想要建立scikit-learn兼容模型,以便将其与可用的scikit-
learn功能一起使用。如果您这样做,则需要先阅读以下内容:http :
//scikit-learn.org/stable/developers/contributing.html#rolling-your-own-
estimator
不久:scikit学习有许多功能,如估计的克隆(克隆()函数),元算法,如
GridSearch,
Pipeline,交叉验证。而所有这些东西都能够得到您的估计中字段的值,而这些领域的变化值(例如
GridSearch具有各自的评估之前更改估计的内部参数),如参数
alpha在
SGDClassifier。要更改某个参数的值,它必须知道其名称。为了获得在每一个分类方法的所有字段的名称
get_params从
baseEstimator类(你是隐式继承)时,需要指定所有的参数
__init__类的方法,因为它很容易自省的所有参数名
__init__的方法(看看
baseEstimator,这是类引发此错误)。
所以它只希望您删除所有像
*args, **kwargs
从
__init__签名。您必须在
__init__签名中列出模型的所有参数,并初始化对象的所有内部字段。
这是SGDClassifier的
__init__方法示例,该方法继承自
baseSGDClassifier:
def __init__(self, loss="hinge", penalty='l2', alpha=0.0001, l1_ratio=0.15, fit_intercept=True, n_iter=5, shuffle=True, verbose=0, epsilon=DEFAULT_EPSILON, n_jobs=1, random_state=None, learning_rate="optimal", eta0=0.0, power_t=0.5, class_weight=None, warm_start=False, average=False): super(SGDClassifier, self).__init__( loss=loss, penalty=penalty, alpha=alpha, l1_ratio=l1_ratio, fit_intercept=fit_intercept, n_iter=n_iter, shuffle=shuffle, verbose=verbose, epsilon=epsilon, n_jobs=n_jobs, random_state=random_state, learning_rate=learning_rate, eta0=eta0, power_t=power_t, class_weight=class_weight, warm_start=warm_start, average=average)



