我在使用Scikit的Logistic Regression来处理多类别的问题时遇到了麻烦。我正在使用lbgfs solver,并且已经将multi_class参数设置为multinomial。
对于训练模型时如何传递真实的类别标签,我并不清楚。我曾经认为它与随机森林分类器多类别问题相似/相同,可以通过传递[n_samples, m_classes]数据框来实现。然而,在这样做时,我会收到一个错误,指出数据的形状不正确。 ValueError: bad input shape (20, 5) -- 在这个小例子中,有5个类别,20个样本。
检查fit方法的文档后发现,真实值以[n_samples,]的形式传递,这与我得到的错误信息相匹配 - 然而,我不知道如何使用这种方法来训练具有多类别的模型。因此,我的问题是:如何将完整的类别标签集传递给拟合函数?
我无法在互联网上找到相关示例代码,也没有在StackOverflow上看到这个问题...但我确信有人一定知道如何解决!
在下面的代码中,train_features = [n_samples, nn_features],truth_train = [n_samples, m_classes]
clf = LogisticRegressionCV(class_weight='balanced', multi_class='multinomial', solver='lbfgs')
clf.fit(train_features, truth_train)
pred = clf.predict(test_features)