如何处理少量标记样本?

人工智能 机器学习 半监督学习 数据标签 标记数据集 未标记数据集
2021-11-16 00:53:53

我正在尝试通过练习 Kaggle“不要过度拟合”数据集(Traget_Practice 提供了所有 20,000 个目标)来培养处理非常少量标记样本(250 个标记/20000 个,200 个特征)的技能。我已经阅读了大量关于这个主题的论文和文章,但我尝试过的一切都没有改善简单的正则化 SVM 结果(最佳准确度为 75,AUC 为 85)或任何其他算法结果(LR、K-NN、NaiveBayes ,射频,MLP)。我相信结果会更好(在排行榜上,他们甚至超过了 AUC 95)

我没有成功的尝试:

  • 删除异常值 我尝试使用 EllipticEnvelope 和 IsolationForest 删除 5%-10% 的异常值。

  • 特征选择我试过 RFE(有或没有 CV)+L1/L2 正则化 LogisticRegression 和 SelectKBest(有 chi2)。

  • 半监督技术我尝试使用两种互补算法和:100-100:分割特征的不同组合进行联合训练。我也尝试过LabelSpreading,但我不知道如何提供最不确定的样本(我尝试了其他算法的预测,但有很多错误标记的样本,因此不成功)。

  • 集成分类器StackingClassifier 与所有可能的算法组合,这也没有改善结果(最好的与 SVM 精度 75 和 AUC 85 相同)。

任何人都可以就我做错了什么或尝试什么给我建议吗?

1个回答

在该特定比赛中,您可以尝试使用 GAN 生成新数据或向现有数据添加噪声。您还可以使用 K-means 算法。您可以尝试使用较小的网络并消除偏见。可能您可以使用逻辑回归来比较结果。您也可以使用 PCA 方法。