你可能想制作scikit-learn兼容模型,进一步使用scikit-learn功能.如果你这样做 – 你需要先阅读:
http://scikit-learn.org/stable/developers/contributing.html#rolling-your-own-estimator
简而言之:scikit-learn有许多功能,如估算器克隆(clone()函数),元算法,如GridSearch,Pipeline,Cross validation.所有这些都必须能够获取估算器内部字段的值,并更改这些字段的值(例如,GridSearch必须在每次评估之前更改估算器内部的参数),例如SGDClassifier中的参数alpha.要更改某个参数的值,必须知道它的名称.要获取BaseEstimator类中每个分类器方法get_params中的所有字段的名称(隐式继承),需要在类的__init__方法中指定所有参数,因为很容易内省__init__方法的所有参数名称(查看BaseEstimator ,这是抛出此错误的类).
所以它只是希望你删除所有的varargs
*args, **kwargs
来自__init__签名.您必须在__init__ signature中列出模型的所有参数,并初始化对象的所有内部字段.
以下是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,