<p>scikit-multilearn's ML-KNN implementations is an improved version of scikit-learn's KNeighborsClassifier. It is actually built on top of it. After the k nearest neighbors in the training data are found, it uses maximum a posteriori principle to label a new instance to achieve a better performance. Also, since it operates on sparse matrices internally using SciPy sparse matrix library, it is highly memory-efficient. More info <a href="https://arxiv.org/pdf/1702.01460.pdf" rel="nofollow noreferrer">here</a> and <a href="https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/pr07.pdf" rel="nofollow noreferrer">here</a>.</p>
Multilabel classification ML-kNN vs KNN
<p>This might be a stupid question but I was just wondering what the difference between ML-KNN implemented in scikit.ml and scikit-learn's KNeighborsClassifier is. According to <a href="https://scikit-learn.org/stable/modules/multiclass.html" rel="noreferrer">sklearn's docs</a> KNeighborsClassifier has support for multilabel classification. ML-KNN however is KNN adapted for multilabel classification built on top of sklearn's architecture based on it's <a href="http://scikit.ml/api/skmultilearn.adapt.mlknn.html" rel="noreferrer">docs</a>. </p>

<p>When searching for sample multilabel problems, MLkNN mostly appears but I do not understand if there's any advantage of using it over the base implementation of sklearn if it already supports it. Is it only a late adaptation in sklearn's side or are there more differences in the implementation?</p>

<p>Any input is appreciated. Thanks!</p>