MultiOutputClassifier和OneVsRestClassifier之间的区别

问题描述

我正在创建一个模型,该模型可以根据电影概述来预测电影类型。许多电影具有不止一种类型。例如:戏剧和喜剧。我用 OneVsRestClassifier

实现了 Gradient Boost分类
clf_1vsrest_GB = OneVsRestClassifier(GradientBoostingClassifier(random_state=42))
clf_1vsrest_GB.fit(X_train,y_train)
y_pred_1vsrest_GB = clf_1vsrest_GB.predict(X_test) 

分类报告的结果是:

                      precision    recall  f1-score   support

      genres_Animation       0.80      0.13      0.22       575
         genres_Comedy       0.84      0.13      0.22      3888
         genres_Family       0.68      0.06      0.11       819
      genres_Adventure       0.69      0.04      0.08      1046
        genres_Fantasy       0.53      0.05      0.09       666
        genres_Romance       0.63      0.16      0.25      2034
          genres_Drama       0.65      0.53      0.58      6030
         genres_Action       0.78      0.12      0.21      1974
          genres_Crime       0.65      0.12      0.20      1300
       genres_Thriller       0.61      0.08      0.14      2218
         genres_Horror       0.84      0.16      0.26      1369
        genres_History       0.29      0.04      0.08       438
genres_Science Fiction       0.78      0.24      0.37       883
        genres_Mystery       0.44      0.05      0.09       728
            genres_War       0.57      0.20      0.30       380
        genres_Foreign       0.20      0.00      0.01       491
          genres_Music       0.50      0.16      0.25       479
    genres_Documentary       0.91      0.41      0.57      1190
        genres_Western       0.59      0.21      0.31       326
       genres_TV Movie       0.03      0.01      0.01       231

             micro avg       0.68      0.22      0.33     27065
             macro avg       0.60      0.15      0.22     27065
          weighted avg       0.68      0.22      0.30     27065
           samples avg       0.40      0.26      0.30     27065

和另一个带有 MultIoUtputClassifier

clf_moc_gb = MultIoUtputClassifier(GradientBoostingClassifier(random_state=42))
clf_moc_gb.fit(X_train,y_train)
y_pred_moc_gb = pd.DataFrame(clf_moc_gb.predict(X_test))

分类报告的结果是:

                   precision    recall  f1-score   support

      genres_Animation       0.80      0.13      0.22       575
         genres_Comedy       0.84      0.13      0.22      3888
         genres_Family       0.68      0.06      0.11       819
      genres_Adventure       0.69      0.04      0.08      1046
        genres_Fantasy       0.53      0.05      0.09       666
        genres_Romance       0.63      0.16      0.25      2034
          genres_Drama       0.65      0.53      0.58      6030
         genres_Action       0.78      0.12      0.21      1974
          genres_Crime       0.65      0.12      0.20      1300
       genres_Thriller       0.61      0.08      0.14      2218
         genres_Horror       0.84      0.16      0.26      1369
        genres_History       0.29      0.04      0.08       438
genres_Science Fiction       0.78      0.24      0.37       883
        genres_Mystery       0.44      0.05      0.09       728
            genres_War       0.57      0.20      0.30       380
        genres_Foreign       0.20      0.00      0.01       491
          genres_Music       0.50      0.16      0.25       479
    genres_Documentary       0.91      0.41      0.57      1190
        genres_Western       0.59      0.21      0.31       326
       genres_TV Movie       0.03      0.01      0.01       231

             micro avg       0.68      0.22      0.33     27065
             macro avg       0.60      0.15      0.22     27065
          weighted avg       0.68      0.22      0.30     27065
           samples avg       0.40      0.26      0.30     27065

在两种情况下,如您在上面看到的,我都获得了相同的分数。因此,我想知道MultIoUtputClassifier和OneVsRestClassifier之间是否有任何区别。

有人可以帮助我吗? 问候

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)