使用MLkNN进行多标签分类时出现TypeError报错求助
问题
代码示例:
from skmultilearn.adapt import MLkNN from sklearn.metrics import hamming_loss, accuracy_score mlknn_classifier = MLkNN() mlknn_classifier.fit(X_train, y_train) predicted = mlknn_classifier.predict(X_test) print(predicted) print(accuracy_score(y_test, predicted)) print(hamming_loss(y_test,predicted))
出现报错:
TypeError: NearestNeighbors.init() takes 1 positional argument but 2 were given
解决方法
- 实例化
MLkNN时必须显式指定k参数,这是因为内部依赖的NearestNeighbors在新版本sklearn中参数传递方式变更,修改后的初始化代码示例:
mlknn_classifier = MLkNN(k=5) # k值可根据数据集特性自行调整,比如5、10等
- 如果使用sklearn 1.2及以上版本,确保
MLkNN的参数与底层NearestNeighbors兼容,核心是必须传递k参数来避免初始化错误。
内容的提问来源于stack exchange,提问作者Solomon
相关产品推荐
相关产品推荐

