【问题标题】:Correlations of feature columns in TensorFlowTensorFlow 中特征列的相关性
【发布时间】:2020-05-13 13:46:49
【问题描述】:

我最近开始为自己探索 TensorFlow 的功能专栏。

如果我对文档的理解正确,特征列只是在将数据拟合到模型之前进行进一步转换的“框架”。所以,如果我想使用它,我会定义一些特征列,从中创建 DenseFeatures 层,当我将数据放入模型时,所有特征都会通过该 DenseFeatures 层,转换然后适合我的 NN 的第一个 Dense 层。

我的问题是,是否有可能以某种方式检查转换后的特征与我的目标变量的相关性?

例如,我有一个分类特征,它对应于一周中的某一天(周一/周二.../周日)(例如,我将其更改为 1/2..7)。它与我的目标特征的相关性与分类特征列(例如指标)的相关性不同,因为模型不理解 7 是可能序列的最大值,但在类别的情况下,它将是具有精确边界的 one-hot 编码特征。

如果一切都清楚,请告诉我。

将不胜感激!

【问题讨论】:

    标签: python tensorflow deep-learning tensorflow2.0


    【解决方案1】:

    Tensorflow 没有像 Sklearn 为 XGBoost 提供的那样提供 feature_importance 功能。

    但是,您可以这样做来测试您的特征与 TensorFlow 中目标特征的重要性或相关性,如下所示。

    1) 将与要测试的目标特征相关的特定特征的值打乱。比如,如果你的特征是fea1df['fea1'][0] 的值变成df['fea1'][4] 的值,df['fea1'][2] 的值变成df['fea1'][3] 的值等等。

    2) 现在将模型拟合到修改后的训练数据,并使用验证数据检查准确性。

    3) 现在,如果您的准确率急剧下降,则意味着您的特征与目标特征具有高度相关性,否则如果准确率变化不大,则意味着该特征不是很重要(高错误 =重要性高)。

    您可以对您在训练数据中引入的其他功能执行相同的操作。 这可能需要一些时间和精力。

    【讨论】:

    • 您好,感谢您的回复!是的,这绝对应该有效,但不适合我。问题是我有大约 50 个特征,我需要它们的成对相关性(最好是 Pearson 和 Spearman),或者至少每个特征与目标的相关性——这将需要很长时间来手动测试它们中的每一个。所以,我宁愿要求一些方法或一堆方法可以帮助我:)
    猜你喜欢
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2019-12-12
    • 2019-03-09
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多