【问题标题】:Handling small dataset of categorical data in Binary classification problem [closed]在二进制分类问题中处理分类数据的小数据集[关闭]
【发布时间】:2022-01-02 07:02:05
【问题描述】:

我有一个包含大约 37 个特征的疾病数据集,除了“Age”和“Age_onset”两个之外,它们都是分类变量。条目数为 219。 我正在开发一个二元分类模型来预测患者是否患有这种疾病。

我目前面临的问题是根据数据的分类性质和数量决定选择什么合适的模型。

现在分类变量不是高基数,即使在应用 one-hot 编码后,变量的数量也从 37 个增加到 81 个,因此它仍然被认为是低维数。因此不需要特征选择方法。

此外,数据在条目数(219)和维度(81)方面并不大,因此无需使用神经网络或集成方法等复杂模型。 这排除了大量模型,到目前为止,我认为最好的候选者是 Logistic 回归分类模型。

我的问题:这种推理方式有效吗?还是我应该尝试使用复杂的模型,通过反复试验,我可以在性能和结果方面达到最佳模型?

我已经阅读了许多关于在分类问题中处理分类数据的文章和论文,但是,我的数据不包含连续变量(两个除外),并且基数不高,这意味着所有分类变量都有两个或三个可能的答案(应用 one-hot 编码后的特征数量突出显示为 81)。所以我不确定这些文章中讨论的解决方案是否适用于我的问题。

【问题讨论】:

    标签: python scikit-learn classification prediction categorical-data


    【解决方案1】:

    由于数据集很小,我认为采用简单的方法并使用不同类型的模型进行网格实验不会有问题!

    这个推理是否有效

    不建议使用记录数少的复杂模型,因为它很容易导致高方差(过拟合)

    但是您可以尝试使用不同的方法来处理数据的大小,具体取决于您的数据缺少什么。

    如果您决定保持数据不变,可以肯定地说,决策树和逻辑回归是不错的选择,因为它们简单且可解释。如果您对不可解释的模型没问题,您还可以尝试使用 SVM 内核(线性或高斯)和朴素贝叶斯。

    【讨论】:

      【解决方案2】:

      这种推理方式有效吗?

      您的变量数量不多。这个变量数量可能被认为很高,尤其是考虑到您的条目数量很少。您可能知道,scikit-learn 是为处理大量条目、大型数据集而构建的。我推测(不是假设)您的条目数量很少,因为您清理了太多数据。您可以尝试另一种插入缺失值的清理方法。

      纯粹从统计学和后来的数据科学研究的学术角度来看,我建议你可以收集更多数据,甚至比清洗插值更好。

      另一方面,不,推理无效(见上文)。

      我是否应该尝试使用复杂的模型,并通过反复试验,才能得出性能和结果方面最好的模型?

      在您的位置上,我会尝试使用尽可能多的不同参数的所有模型。

      【讨论】:

      • 澄清一下,我不是收集这些数据的人,但我的主管提到收集数据的人必须手动完成,因为来源是结构化和非结构化数据的混合,因此,它已经被清理了。所以219个条目是我所有的。此外,我在一篇文章中读到,如果变量的数量少于 100 个变量,则不能将其视为高维数据集。因此,降维技术的使用被否定了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2012-07-05
      • 1970-01-01
      • 2019-07-13
      • 2018-09-13
      • 2021-06-30
      • 2019-05-21
      相关资源
      最近更新 更多