skmultilearn MLkNN报错:TypeError: NearestNeighbors.__init__() takes 1 positional argument but 2 were g

from skmultilearn.dataset import load_dataset
from skmultilearn.adapt import MLkNN
from sklearn.model_selection import GridSearchCV

X_train, Y_train, feature_names, label_names = load_dataset('emotions', 'train')
X_test, Y_test, _, _ = load_dataset('emotions', 'test')

print('X_train       is {}'.format(X_train.shape))
print('Y_train       is {}'.format(Y_train.shape))
parameters = {'k':range(1,3), 's':[0.5, 0.7, 1.0]}
clf = GridSearchCV(MLkNN(), parameters, scoring='f1_macro')
clf.fit(X_train,Y_train)
print(clf.best_params_, clf.best_score_)

报错:

emotions:train - does not exists downloading

Downloaded emotions-train

emotions:test - does not exists downloading

Downloaded emotions-test

X_train       is (391, 72)

Y_train       is (391, 6)

Traceback (most recent call last):

  File "f:\5_UbiChain\Script\scikitMultilearn.py", line 12, in <module>

    clf.fit(X_train,Y_train)

  File "H:\Anaconda\lib\site-packages\sklearn\model_selection\_search.py", line 874, in fit

    self._run_search(evaluate_candidates)

  File "H:\Anaconda\lib\site-packages\sklearn\model_selection\_search.py", line 1388, in _run_search

    evaluate_candidates(ParameterGrid(self.param_grid))

  File "H:\Anaconda\lib\site-packages\sklearn\model_selection\_search.py", line 851, in evaluate_candidates

    _warn_or_raise_about_fit_failures(out, self.error_score)

  File "H:\Anaconda\lib\site-packages\sklearn\model_selection\_validation.py", line 367, in _warn_or_raise_about_fit_failures

    raise ValueError(all_fits_failed_message)

ValueError:

All the 30 fits failed.

It is very likely that your model is misconfigured.

You can try to debug the error by setting error_score='raise'.

Below are more details about the failures:

--------------------------------------------------------------------------------

30 fits failed with the following error:

Traceback (most recent call last):

  File "H:\Anaconda\lib\site-packages\sklearn\model_selection\_validation.py", line 686, in _fit_and_score

    estimator.fit(X_train, y_train, **fit_params)

  File "H:\Anaconda\lib\site-packages\skmultilearn\adapt\mlknn.py", line 218, in fit

    self._cond_prob_true, self._cond_prob_false = self._compute_cond(X, self._label_cache)

  File "H:\Anaconda\lib\site-packages\skmultilearn\adapt\mlknn.py", line 165, in _compute_cond

    self.knn_ = NearestNeighbors(self.k).fit(X)

TypeError: NearestNeighbors.__init__() takes 1 positional argument but 2 were given

 解决:

File "H:\Anaconda\lib\site-packages\skmultilearn\adapt\mlknn.py", line 165, in _compute_cond

    self.knn_ = NearestNeighbors(self.k).fit(X)

报错的这一行改成

self.knn_ = NearestNeighbors(n_neighbors=self.k).fit(X)

# 这个报错一般是sklearn > 1.0会出现,我sklearn的版本是1.2.1,网上有人说退回0.23版本就不会报错

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值