Strojno učenje: učenje s više oznaka i biblioteka skmultilearn

Machine Learning Multi Label Learning



Sažetak : Metoda učenja s više oznaka istodobno rješava problem učenja instance s više oznaka. Ovaj članak sažima nekoliko klasičnih metoda i mjernih podataka s više oznaka i daje specifičan postupak provedbe koji se temelji na sklearnu.

sadržaj

  1. Metrika, strategije učenja i metode učenja
  2. Binarna relevantnost
  3. Lanac klasifikatora
  4. Označite Powerset
  5. Slučajni k-Labelsets

Glavna referenca

【1】 „Pregled algoritama učenja s više oznaka“



【dva】 “Http://scikit.ml/”



1. Mjerenje, strategije učenja i metode učenja

Metrike problema s više oznaka mogu se podijeliti u dvije kategorije.



  1. Metrika na temelju uzorka: mjeri i prosjek za svaki uzorak
  2. Mjerni podaci zasnovani na oznakama: mjerenje i prosjek za svaku oznaku.

Specifična klasifikacija prikazana je u nastavku.
slika
Postoje tri glavne strategije učenja za probleme s više oznaka, naime Strategija prvog redaStrategija drugog reda s Strategija na visokoj razini

  1. Strategija prvog reda ne uzima u obzir važnost oznake i ima visoku učinkovitost
  2. Strategija drugog reda razmatra korelaciju između dviju oznaka
  3. Strategija visokog reda uzima u obzir povezanost između više oznaka i ima dobre performanse.

Metode učenja mogu se podijeliti u dvije kategorije, naime Pristup zasnovan na problemima s Metoda koja se temelji na prilagodbi algoritma

  1. Metoda transformacije temeljena na problemima: Pretvorite probleme s više oznaka u obrasce s kojima se lako rukuje, poput binarnih problema klasifikacije, problema rangiranja kategorija ili problema s više klasifikacija, a zatim upotrijebite postojeće metode za njihovo rješavanje
  2. Metoda koja se temelji na prilagodbi algoritma: Prilagodite postojeće algoritme, kao što su ML-KNN, ML-DT, Rank-SVM itd.

Neki su algoritmi sažeti u sljedećoj tablici.
slika
Sljedeće upute kombiniraju se sa sklearnom Metoda učenja zasnovana na problemima , Metoda mjerenja može se koristiti izravno sklearn.metrics. Skup podataka koji se koristi je sljedeći:



from sklearn.datasets import make_multilabel_classification from sklearn.model_selection import train_test_split X, Y = make_multilabel_classification(n_samples=150, n_features=6, n_classes=5, n_labels=2, allow_unlabeled=False) x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2)

2. Binarna relevantnost

Osnovna ideja: Pretvoriti problem učenja s više oznaka u više neovisnih binarnih problema klasifikacije.

Budući da se ne uzima u obzir povezanost oznaka, uzima se u obzir Strategija prvog reda

prednost:

  • Procijenite klasifikator jedne oznake
  • Može se proširiti i izvan dosega kombinacije naljepnica.

Mane:

  • Nije prikladno kada je broj naljepnica velik
  • Zanemarite povezanost oznaka.

Metoda konstrukcije dvo klasifikatora koristi metodu jedan-prema-ostatku. Može se implementirati izravno pomoću sljedećeg sučelja, pri čemu osnovni klasifikator može koristiti bilo koji unaprijed postavljeni klasifikator u sklearnu.

from sklearn.ensemble import RandomForestClassifier from sklearn import metrics from skmultilearn.problem_transform import BinaryRelevance classifier = BinaryRelevance( classifier = RandomForestClassifier(), require_dense = [False, True] ) classifier.fit(x_train, y_train) pred = classifier.predict(x_test) metrics.f1_score(y_test, pred, average='micro')

3. Lanac klasifikatora

Osnovna ideja: razvrstajte oznake, a zatim problem pretvorite u binarni problem klasifikacije. Za j-ti binarni problem klasifikacije, prve vrijednosti j-1 oznake također se koriste kao ulaz značajke.

Iako se još uvijek rješava kao binarni problem klasifikacije, korelacija više oznaka nasumično se smatra ulančanim. Ovo je Strategija na visokoj razini

prednost:

  • Procijenite klasifikator jedne oznake
  • Može se proširiti izvan dosega kombinacije naljepnica
  • Razmotrite povezanost oznaka.

Mane:

  • Nije prikladno kada je broj naljepnica velik
  • Vrlo ovisi o redoslijedu sortiranja naljepnica.

Metoda jedan-prema-ostatku koristi se za izradu dvo-klasifikatora, a metoda implementacije sučelja jednaka je binarnoj relevantnosti.

from skmultilearn.problem_transform import ClassifierChain

4. Označite Powerset

Osnovna ideja: Preobraziti učenje s više oznaka u problem klasifikacije s više klasa, svaka različita kombinacija oznaka smatra se drugačijom klasom.

Uzimajući u obzir korelaciju između više oznaka, je Strategija na visokoj razini

prednost:

  • Uzimajući u obzir relevantnost više oznaka pomoću klasifikatora
  • Kad podaci o treningu uključuju sve kombinacije naljepnica, to je obično optimalno rješenje.

Mane

  • Podaci o treningu moraju sadržavati sve kombinacije naljepnica
  • Kad je prostor s naljepnicama velik, lako ga je prespremiti.

Metoda implementacije sučelja jednaka je binarnoj relevantnosti. To također može izravno postati konvencionalni problem s više klasifikacija.

from skmultilearn.problem_transform import LabelPowerset

5. Slučajni k-Labelsets

Osnovna ideja: Pretvorite učenje s više naljepaka u integraciju višestrukih problema s klasifikacijom više klasa i uzimajte samo podskup duljine K od oznake postavljene istodobno, čime ćete ublažiti nedostatke programa Label Powerset.

Slučajno uzeta u obzir korelacija između više oznaka je Strategija na visokoj razini

prednost:

  • U usporedbi s binarnom relevantnošću, možda će trebati manje klasifikatora
  • Uzimajući u obzir korelaciju između oznaka
  • U usporedbi s Label Powerset, nije lako podesiti nevidljive kombinacije naljepnica.

Mane:

  • Korištenjem slučajne strategije možda neće biti postignuta optimalna podvrsta.

Metoda implementacije sučelja je sljedeća, malo drugačija, provjerite službenu dokumentaciju da biste je razumjeli.

from sklearn.ensemble import RandomForestClassifier from sklearn import metrics from skmultilearn.ensemble import RakelD classifier = RakelD( base_classifier=RandomForestClassifier(), base_classifier_require_dense=[True, True], labelset_size=4 ) classifier.fit(X_train, y_train) pred = classifier.predict(X_train, y_train)

Na toj su osnovi razvijene neke metode za određivanje podjele podskupina, a odgovarajuće sučelje može se naći na službenim web stranicama skmultilearn. Poveznica svakog klasifikatora je sljedeća: http://scikit.ml/modelselection.html