原代码
class MinMaxScaler(OneToOneFeatureMixin, TransformerMixin, BaseEstimator):
# 一些代码
def __init__(self, feature_range=(0, 1), *, copy=True, clip=False):
self.feature_range = feature_range
self.copy = copy
self.clip = clip
class My_MinMaxScaler(MinMaxScaler):
def __init__(self, feature_range=(0, 1), copy=True):
MinMaxScaler.__init__(self, feature_range, copy)
报错
Traceback (most recent call last):
File “/home/visitor/Huang/BLS_SFU_CNL_V1.0.1/BLS_demo_for_lower_memory.py”, line 113, in
bls_train_fscore(train_x,train_y,test_x,test_y,s,C,N1_bls,N2_bls,N3_bls);
File “/home/visitor/Huang/BLS_SFU_CNL_V1.0.1/bls/model/bls_train_fscore.py”, line 176, in bls_train_fscore
[TT1, max_list, min_list] = mapminmax( TT1.transpose(), 0, 1, max_list, min_list);
File “/home/visitor/Huang/BLS_SFU_CNL_V1.0.1/bls/processing/mapminmax.py”, line 86, in mapminmax
min_max_scaler = My_MinMaxScaler(feature_range=(v_min, v_max), copy=True)();
File “/home/visitor/Huang/BLS_SFU_CNL_V1.0.1/bls/processing/mapminmax.py”, line 34, in init
MinMaxScaler.init(self, feature_range, copy);
TypeError: MinMaxScaler.init() takes from 1 to 2 positional arguments but 3 were given
修改代码解决
class My_MinMaxScaler(MinMaxScaler):
def __init__(self, feature_range=(0, 1), copy=True):
MinMaxScaler.__init__(self, feature_range=feature_range, copy=copy)
Chat给出的建议
问题可能在于你正在调用MinMaxScaler的__init__方法时没有正确地使用关键字参数。根据错误消息,MinMaxScaler.__init__()方法接受的参数数量应该是1到2个,但是给了3个参数。
在这个修正后的代码中,使用了关键字参数来指定feature_range和copy参数的值。这样应该可以解决TypeError错误。