在二进制分类问题中处理分类数据的小数据集

Handling small dataset of categorical data in Binary classification problem

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

我目前面临的问题是决定使用什么合适的模型 select 给出我的数据的分类性质和数量。

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

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

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

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

Is this line of reasoning valid?

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

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

另请注意,不,推理无效(见上文)。

Should I attempt to use complex models and through trial and error I can arrive at the best model in terms of performance and results?

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

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

is this line of reasoning valid

不宜使用记录数少的复杂模型,容易造成高方差(过拟合)

但是你可以尝试使用不同的方法来处理数据有多小,这取决于你的数据缺少什么。

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