Обработка сочетания мультиметочных индикаторов и мультиклассовых целей в задачах классификации

Утверждение «метрики классификации не могут обрабатывать сочетание целей с несколькими индикаторами и несколькими классами» означает, что некоторые метрики оценки, обычно используемые в задачах классификации, не подходят при одновременной работе с комбинацией целей с несколькими индикаторами и несколькими классами. В таких случаях необходимо использовать специальные методы для правильной обработки оценки. Вот несколько методов с примерами кода, которые можно использовать в этом сценарии:

  1. Подход «один против остальных» (OvR).
    Подход OvR предполагает обучение нескольких двоичных классификаторов, где каждый классификатор отвечает за отличие одного класса от остальных. Этот метод можно использовать для целей с несколькими индикаторами и несколькими классами.

    from sklearn.multiclass import OneVsRestClassifier
    from sklearn.svm import SVC
    # Create an SVM classifier
    svm_classifier = SVC()
    # Create an instance of the OneVsRestClassifier
    ovr_classifier = OneVsRestClassifier(svm_classifier)
    # Train the classifier
    ovr_classifier.fit(X_train, y_train)
    # Make predictions
    y_pred = ovr_classifier.predict(X_test)
  2. Подход Label Powerset:
    Подход Label Powerset преобразует проблему с несколькими метками в задачу с несколькими классами, где каждая уникальная комбинация меток рассматривается как отдельный класс. Этот метод может обрабатывать как целевые индикаторы с несколькими метками, так и целевые объекты с несколькими классами.

    from skmultilearn.problem_transform import LabelPowerset
    from sklearn.ensemble import RandomForestClassifier
    # Create a RandomForest classifier
    rf_classifier = RandomForestClassifier()
    # Create an instance of the LabelPowerset classifier
    lp_classifier = LabelPowerset(rf_classifier)
    # Train the classifier
    lp_classifier.fit(X_train, y_train)
    # Make predictions
    y_pred = lp_classifier.predict(X_test)
  3. Подход с использованием цепочек классификаторов.
    Подход с использованием цепочек классификаторов расширяет метод Label Powerset за счет рассмотрения порядка меток в задаче с несколькими метками. Каждый классификатор в цепочке обучается на основе входных признаков и всех предыдущих меток в цепочке. Этот метод может обрабатывать как целевые индикаторы с несколькими метками, так и целевые объекты с несколькими классами.

    from skmultilearn.problem_transform import ClassifierChain
    from sklearn.linear_model import LogisticRegression
    # Create a Logistic Regression classifier
    lr_classifier = LogisticRegression()
    # Create an instance of the ClassifierChain classifier
    cc_classifier = ClassifierChain(lr_classifier)
    # Train the classifier
    cc_classifier.fit(X_train, y_train)
    # Make predictions
    y_pred = cc_classifier.predict(X_test)

Это всего лишь несколько методов, которые могут обрабатывать как целевые объекты с несколькими индикаторами, так и мультиклассы. В зависимости от вашей конкретной проблемы вам, возможно, придется изучить и поэкспериментировать с другими методами.