逻辑回归的替代方案

数据挖掘 机器学习 神经网络 深度学习 分类 机器学习模型
2021-09-23 01:22:37

我有 15000 名受试者的年龄、性别、身高、体重和其他一些类似参数。我还有一栏显示他们是否有健康状况(大约 20% 的受试者存在)。我现在想分析对医疗状况影响最大的因素。通常对此的测试是逻辑回归分析。但是,这假设关系是线性的。对于此类数据,我还可以为此目的应用哪些其他机器学习测试?感谢您的洞察力。

4个回答

如果您选择基于树的模型的替代方案,那么与所有其他线性/逻辑回归等相比,您在此处确实具有优势。

人们通常将Co-relation, Co-variance and heat maps.. etc其用作一个过程,该过程通常会生成比原始数据更多的距离表,但Dendrograms实际上简化了我们对数据的理解。

物体之间的距离可以通过许多简单而令人回味的方式来可视化,其中之一是Hierarchial Clustering..

什么是层次聚类?

层次聚类是您构建一个聚类树(树状图)来表示数据的地方,其中每个组(或“节点”)链接到两个或多个后继组。这些组被嵌套并组织为一棵树,理想情况下最终成为一个有意义的分类方案。

那么现在,什么是树状图?

树状图是一种显示层次聚类的树形图——相似数据集之间的关系。它们在生物学中经常用于显示基因或样本之间的聚类,但它们可以表示任何类型的分组数据。

叶子同一分割下的柱子之间或多或少有一定的关系或具有相似的属性..这就是我们试图探索和加深理解以减少冗余特征....

样本树状图看起来像这个......

在此处输入图像描述

所以让我们试着解释一下现在的图表,

删除冗余功能

使变量难以解释的一件事是似乎有些变量具有非常相似的含义(冗余特征......)

让我们尝试删除其中一些相关特征,看看是否可以在不影响准确性的情况下简化模型。

def get_oob(df):
    m = RandomForestRegressor(n_estimators=30, min_samples_leaf=5, max_features=0.6, n_jobs=-1, oob_score=True)
    x, _ = split_vals(df, n_trn)
    m.fit(x, y_train)
    return m.oob_score_

这是我们的基线。

get_oob(df_keep)
0.88999425494301454

现在我们尝试一次删除每个变量......

for c in ('saleYear', 'saleElapsed', 'fiModelDesc', 'fiBaseModel', 'Grouser_Tracks', 'Coupler_System'):
    print(c, get_oob(df_keep.drop(c, axis=1)))

输出

saleYear 0.889037446375
saleElapsed 0.886210803445
fiModelDesc 0.888540591321
fiBaseModel 0.88893958239
Grouser_Tracks 0.890385236272
Coupler_System 0.889601052658

看起来我们可以尝试从每个组中删除一个。让我们看看它有什么作用。

to_drop = ['saleYear', 'fiBaseModel', 'Grouser_Tracks']

即使在删除了一些列之后看起来也不错....

参考 -:

编辑 - (只是为了使答案完整)

我们在使用 RF 时也有一些称为部分依赖的东西,这也是进一步探索的非常有用的见解......

任何自然提供特征重要性的分类器都可以在这里应用。例如,看看决策树随机森林。

对于不提供此类信息的其他算法(例如 KNN 和神经网络),您可以进行(前向/后向/双向)特征选择。例如,选择一个特征子集,训练一个模型并使用任何首选指标对其进行评估(最好使用引导或交叉验证)。如果有特征,请选择另一个子集,然后重试。经过多次试验,您可以找到具有最佳预测能力的子集。这是雾贡献特征的集合。

请注意,不同的技术/措施可能会给您带来不同的结果。

除了关于机器学习方法的明显想法,例如基于树的方法(例如 xgboost),我会注意到逻辑回归不限于线性效应。例如,可以很容易地应用基于样条的方法(有关更多详细信息,请参见 Frank Harrell 的“回归建模策略 - 应用于线性模型、逻辑和序数回归以及生存分析”)。还有广义的加法模型,这可能是另一种选择。在这样的模型中,解释不同变量的贡献可能比在基于树的方法中更容易,这可能有点困难。

我现在想分析对医疗状况影响最大的因素

如果这是您的目的,我建议您为输入特征绘制协方差矩阵。通过这样做,您将能够看到您的特征之间的相关性。这可以帮助您减少冗余的相关特征1此外,您可以绘制结果与每个特征的相关性以查看它们的关系。这可以帮助您确定哪些特征与结果相关或不相关。

PCA帮助您找到描述现象所需的主要组件2神经网络对于制作可以预测标记数据集的模型很有用。对于您的情况,我没有看到任何论文,但可能有。