我正在尝试构建一个神经网络,通过分析书籍的文本来预测书籍的类型。当每本书只有一种类型时,我可以很好地训练网络。但是,当一本书与多种类型相关联时,有没有好的方法来训练网络呢?
我尝试使用了sklearn中的基本SGDClassifier。当数据集中每本书/文本块只与一种类型相关联时,它运作得很好。不幸的是,我不知道如何处理每本书/文本块与多种类型相关联的数据集。
为了提供背景,这里是我正在使用的基本代码:
from sklearn.linear_model import SGDClassifiersgd = Pipeline([('vect', CountVectorizer()), ('tfidf', TfidfTransformer()), ('clf', SGDClassifier('basic parameters')), ])sgd.fit(x_train, y_train)y_pred = sgd.predict(x_test)
有没有人知道解决这个问题的好方法?有没有人能给我链接到某个聪明人已经解决过这个问题的地方?
回答:
这个问题应该在stats.stackexchange.com上提问,但我还是会尝试回答。你这里遇到的是一个多标签“分类问题”。假设你有三种类型A、B和C,你可以将这三种类型的每一种组合视为一个类别,你将得到以下类别[0 0 0], [1 0 0], [0 1 0], [0 0 1], [1 1 0], [1 0 1], [0 1 1], [1 1 1],例如[1 0 1]表示一本书属于A和C类型。
这些链接应该能帮助你理解和处理你的问题
https://towardsdatascience.com/journey-to-the-center-of-multi-label-classification-384c40229bffhttps://towardsdatascience.com/multi-label-classification-and-class-activation-map-on-fashion-mnist-1454f09f5925