【发布时间】:2020-08-02 14:09:04
【问题描述】:
我正在尝试构建一个分类模型,而我的目标不是二元的。 我的特征与我的目标的相关性都很弱(大部分为 0.1)。我已经预处理了我的数据并应用了我使用的所有算法(我使用的算法是svm, knn, naivebayes,logistic regression, decision tree,gradient boosting, random forest)。我用sklearn metrics.accuracy_score 评估了所有模型,只是想知道它们在我的数据上的表现有多好,但它们都得分为 0.1~0.2 。目标是productline 列。
我的问题
- 怎么会这样?
- 如何解决这个问题?
- 还有其他算法可以取得更好的分数吗?
【问题讨论】:
-
准确度用于分类,但您似乎在进行回归,因此您必须使用不同的指标。常见的选择有均方误差、Pearson 相关、R 平方、Matthews 相关系数等。
-
但我要分类的是预测的产品类型(如家居、食品、运动、健康、电子产品等)是不是分类?
-
对不起,完全误解了你的问题!比较训练集和测试集的损失,如果它们非常不同,那么你就过拟合了,必须进行更多的正则化
-
@BlackBear 存在过度拟合,我还没有对其进行正则化.. 恐怕即使在正则化之后,模型准确率也只有大约 60%.. 我仍然对需要多少分数感到困惑说这个模型足够“好”。但性能不佳是不是相关数据非常不相关造成的?
-
@potatostudent:如果你确定你过拟合并且引用了你的测试准确度(而不是训练准确度),那么添加正则化就可以了。如果使用得当,它会降低训练准确率,但会提高测试准确率。要查看它是否是“好”分数,您需要将您的结果与其他一些默认模型进行比较。您说您使用的任何 ML 模型都不适合您,因此请选择一个简单的模型,例如 (a) 随机选择,(b) 选择最频繁的标签,或 (c) 选择与其频率成比例的随机标签。跨度>
标签: python machine-learning classification data-science