Scikit learn 基于scikit学习的多标签预测

Scikit learn 基于scikit学习的多标签预测,scikit-learn,pipeline,multilabel-classification,Scikit Learn,Pipeline,Multilabel Classification,我有一个scikit学习管道的多标签预测。它在内部测试和获取每个标签预测的指标方面工作正常。但是,我很难获得正确的数据输出结构。当我对看不见的/外部数据运行代码时,它显然会运行每个标签的预测,但会替换同一列中的值。所以我只得到一列预测 该数据集涉及20多个标签(类别),是NLP模型的一部分。每个标签都是二进制的(0或1)。我是新来的,非常感谢你的帮助。谢谢大家! 代码包括三个部分:(1)管道,(2)使用拟合/预测对测试/验证数据进行循环,以及(3)尝试对外部数据的预测函数进行编码 1) 管道:

我有一个scikit学习管道的多标签预测。它在内部测试和获取每个标签预测的指标方面工作正常。但是,我很难获得正确的数据输出结构。当我对看不见的/外部数据运行代码时,它显然会运行每个标签的预测,但会替换同一列中的值。所以我只得到一列预测

该数据集涉及20多个标签(类别),是NLP模型的一部分。每个标签都是二进制的(0或1)。我是新来的,非常感谢你的帮助。谢谢大家!

代码包括三个部分:(1)管道,(2)使用拟合/预测对测试/验证数据进行循环,以及(3)尝试对外部数据的预测函数进行编码

1) 管道:

SVC_pipeline = Pipeline([
                ('tfidf', 
TfidfVectorizer(tokenizer=LemmaTokenizer(), min_df=8)),
                ('clf', OneVsRestClassifier(LinearSVC(), n_jobs=6)),
            ])
2) For循环:

for category in categories:
    print('processing {}'.format(category))
    # train
    SVC_pipeline.fit(X_train, train[category])
    # test
    prediction = SVC_pipeline.predict(X_test)
    print('Test accuracy is               
{}'.format(accuracy_score(test[category], prediction)))
3) 预测外部数据:

doctext = sampdf['doc_text']
pred = SVC_pipeline.predict(doctext)
我也试过:

for category in categories:
    print('... Processing {}'.format(category))
    svcpredict = SVC_pipeline.predict(testthis)
    np.savetxt("/Users/.../Dropbox/.../svcpredicts.csv", svcpredict)
我还尝试了其他一些变体,但它们都有相同的结果。这些指标贯穿了所有标签,并为每个类别提供了不同的指标。但结果只给了我一列预测


谢谢

退房,谢谢。在我的例子中,我已经标记了类别。我正在培训大约20个已知的标签,希望预测符合这些标签。大多数观察都有多个标签。请查看,谢谢。在我的例子中,我已经标记了类别。我正在培训大约20个已知的标签,希望预测符合这些标签。大多数观测都有多个标签。