OneVsRestClassifierの使用例
Python 3.10.2、scikit-learn 1.1.2
100サンプル、5ラベル、Xは20次
code:example.py
from sklearn.datasets import make_multilabel_classification
from sklearn.metrics import hamming_loss
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
from skmultilearn.model_selection import iterative_train_test_split
X, Y = make_multilabel_classification(random_state=1)
# from sklearn.model_selection import train_test_split
# X_train, X_test, Y_train, Y_test = train_test_split(X, Y, train_size=0.75, random_state=42, shuffle=True, stratify=Y)
X_train, Y_train, X_test, Y_test = iterative_train_test_split(
X, Y, test_size=0.25
)
classif = OneVsRestClassifier(SVC(kernel="linear"))
classif.fit(X_train, Y_train)
Y_pred = classif.predict(X_test)
print(hamming_loss(Y_test, Y_pred))
hamming_loss 0.224
TODO:Hamming scoreを出したい
iterative_train_test_splitを使っているのはサンプル数が少ないためstratifyを指定して分割できなかった