What's Cook Kaggle - 改进模型

数据挖掘 多类分类 卡格尔
2022-02-28 10:20:27

我正在参加 Kaggle 比赛“烹饪什么”我们的目标是根据某些成分了解我们有哪些美食。所以这是一个多类分类问题。我有一个现有的模型,我一直在尝试改进它 2 周,但没有结果。我正在使用 scikit learn,我现有的模型是

pipelineLR = Pipeline([
('vect', CountVectorizer(max_df=0.75)),
('lr', LogisticRegression(C=0.4,solver='lbfgs',multi_class='ovr',fit_intercept=True,warm_start=True)),
])

这真的很基本。但是这个数据集的问题是我们有不平衡的数据。由于 CountVectorizer,我们还有一个巨大的稀疏矩阵。我尝试了很多不同的模型,有和没有 TF-IDF,这个模型是我能得到的最好的。我也有混淆矩阵、分类报告和学习曲线。

我能注意到的是它具有高方差。我想我可以通过预处理数据来做一些事情,但我真的被卡住了。我不知道我的模型是否足以改进,或者我是否必须找到一种全新的方法。另外,我可以从分类报告中得到的是,该模型对于我有大量数据的类运行良好,但对于数据较少的类,它会犯很多错误。

我对数据科学很陌生,我正在努力自学。但我认为我真的需要对这个问题有另一种看法,因为我无法设法提高我的分数。

分类报告 学习曲线

1个回答

但是这个数据集的问题是我们有不平衡的数据

我认为解决问题的方法是使用 SMOTE 之类的东西或其变体之一。(我最喜欢的是 SMOTE-ENN,但选择最有效的)。这是一个可用于修复类不平衡的实现我不知道这是否会解决您的具体问题,但值得一试。