无法为多标签分类器进行堆叠

乔尔

我正在研究多标签文本分类问题(目标标签总数90)。数据分发具有长尾和类不平衡以及大约10万条记录。我正在使用OAA策略(一个反对所有人)。我正在尝试使用Stacking创建一个合奏。

文本特征:(特征HashingVectorizer数目2 ** 20,字符分析器)
TSVD以减少维数(n_components = 200)。

text_pipeline = Pipeline([
    ('hashing_vectorizer', HashingVectorizer(n_features=2**20,
                                             analyzer='char')),
    ('svd', TruncatedSVD(algorithm='randomized',
                         n_components=200, random_state=19204))])

feat_pipeline = FeatureUnion([('text', text_pipeline)])

estimators_list = [('ExtraTrees',
                    OneVsRestClassifier(ExtraTreesClassifier(n_estimators=30,
                                                             class_weight="balanced",
                                                             random_state=4621))),
                   ('linearSVC',
                    OneVsRestClassifier(LinearSVC(class_weight='balanced')))]
estimators_ensemble = StackingClassifier(estimators=estimators_list,
                                         final_estimator=OneVsRestClassifier(
                                             LogisticRegression(solver='lbfgs',
                                                                max_iter=300)))

classifier_pipeline = Pipeline([
    ('features', feat_pipeline),
    ('clf', estimators_ensemble)])

错误

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-41-ad4e769a0a78> in <module>()
      1 start = time.time()
----> 2 classifier_pipeline.fit(X_train.values, y_train_encoded)
      3 print(f"Execution time {time.time()-start}")
      4 

3 frames
/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py in column_or_1d(y, warn)
    795         return np.ravel(y)
    796 
--> 797     raise ValueError("bad input shape {0}".format(shape))
    798 
    799 

ValueError: bad input shape (89792, 83)
文卡塔恰兰

StackingClassifier目前不支持多标签分类。通过查看fit参数的形状值(例如here),您可以了解这些功能

解决方案是将OneVsRestClassifier包装器StackingClassifier放置在各个模型之上

例:

from sklearn.datasets import make_multilabel_classification
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.svm import LinearSVC
from sklearn.ensemble import StackingClassifier
from sklearn.multiclass import OneVsRestClassifier

X, y = make_multilabel_classification(n_classes=3, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                                    test_size=0.33,
                                                    random_state=42)

estimators_list = [('ExtraTrees', ExtraTreesClassifier(n_estimators=30, 
                                                       class_weight="balanced", 
                                                       random_state=4621)),
                   ('linearSVC', LinearSVC(class_weight='balanced'))]

estimators_ensemble = StackingClassifier(estimators=estimators_list,
                                         final_estimator = LogisticRegression(solver='lbfgs', max_iter=300))

ovr_model = OneVsRestClassifier(estimators_ensemble)

ovr_model.fit(X_train, y_train)
ovr_model.score(X_test, y_test)

# 0.45454545454545453

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自定义分类器通过GridSearchCV和OneVsRestClassifier进行多标签分类

来自分类Dev

创建lmdb进行多标签分类

来自分类Dev

Tensorflow中的多标签分类器

来自分类Dev

使用 Caffe 进行多类和多标签图像分类

来自分类Dev

Tensorflow 中的多标签多类分类器

来自分类Dev

使用TensorFlow进行多标签文本分类

来自分类Dev

从标签生成向量矩阵以进行多类分类(向量化)

来自分类Dev

对多标签分类进行交叉验证时出错

来自分类Dev

多标签分类实施

来自分类Dev

无法为堆叠条形图设置标签

来自分类Dev

Sklearn Linear SVM无法训练多标签分类

来自分类Dev

使用WEKA在多标签设置中使用kNN分类器

来自分类Dev

为 HOG 特征分配标签以训练 SVM 分类器

来自分类Dev

在两个自动编码器之上堆叠全连接层以进行分类

来自分类Dev

R中的多标签分类

来自分类Dev

NLTK-多标签分类

来自分类Dev

NLTK-多标签分类

来自分类Dev

tensorflow 多标签分类 mnist

来自分类Dev

如何在Caffe中获取每个类别进行多标签分类的概率

来自分类Dev

进行多标签分类时的准确率和 F1 分数相同

来自分类Dev

将参数传递给多标签分类中的较低级XGBoost估计器

来自分类Dev

使用keras模型解决多标签问题的scikit学习链分类器的拟合方法错误

来自分类Dev

SKLearn多类别分类器

来自分类Dev

要素是否必须为浮点数才能通过决策树进行多类分类?

来自分类Dev

如何修复ValueError:分类指标无法处理模型的多类目标和多标签指标目标的混合?

来自分类Dev

多标签图像分类与目标检测

来自分类Dev

用于多标签分类的Vowpal Wabbit预测

来自分类常见问题

pytorch多标签分类网络不训练

来自分类Dev

scikit学习文本的多标签分类

Related 相关文章

热门标签

归档