【发布时间】:2020-07-22 18:25:36
【问题描述】:
我正在尝试做多标签分类;数据集主要是标题列包含帖子的标题,标签列包含标签。帖子的标签数量不固定。数据集是这样的:
而我写的代码是:
X_train, y_train = train['title'].values, train['tags'].values
X_val, y_val = validation['title'].values, validation['tags'].values
##I did some preprocessing on the data(eg.lowering, removing stop words etc.) then:
tfidf=TfidfVectorizer(ngram_range=(1,2),min_df=2,max_df=.9,token_pattern='(\S+)').fit(X_train)
X_train=tfidf.transform(X_train)
X_test=tfidf.transform(X_test)
X_val=tfidf.transform(X_val)
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer(classes=sorted(tags_counts.keys()))##tags_counts.keys are all the tags contained in the dataset
y_train = mlb.fit_transform(y_train)
y_val = mlb.fit_transform(y_val)
model=OneVsRestClassifier(LogisticRegression(C=10)).fit(X_train_tfidf, y_train)
y_val_predicted_labels_tfidf = classifier_tfidf.predict(X_val[0])
这个预测给了我一个全零的数组,这意味着它没有预测这个记录中的任何标签,当我使用逆向获取标签时,如下所示:
我得到了预测空白[()]。有什么想法吗?
【问题讨论】:
标签: python nlp logistic-regression predict multilabel-classification