是否需要将分类值转换为数值才能找到相关性?

数据挖掘 线性回归 相关性 热图
2022-02-14 06:41:49

我有一个包含 1300 个观察 x 20 个特征的小型数据集。它们都是数字的,但一个是分类的;这是独立计算的,并且在任何情况下都与每个观察结果相关。

我现在正试图在我的数据集中找到每个特征的相关性,但是一个简单dataframe.corr()的方法会从计算中省略分类。

据我所知,我有两个选择:

  • 不考虑分类值,但这意味着无法建议采用该特征推断值的内部流程是否是最优的
  • 转换成数字

分类值类似于学校评分系统:

 A: higher
 B: ...
 ...
 E: low

我不认为转换成数字会导致数量级的损失,只要我如何进行转换。但这是我的症结所在。

  • 我应该这样做:A = 1 & E & 5 .. 还是 A = 5 & E = 1?
  • 这两个不同的值最终会影响相关过程吗?

我一直看到最小的差异。例如,在 A 从 1 开始的同一数据集上,我得到的 Rating 与我的 Y 变量相关为 -0.33;当 A 从 5 开始时,它返回 -0.32。我注意到相关性会发生变化,并且随着我对数据集的改进越多,相关性就会变得越积极。

另外,请考虑我也在使用此数据集之后进行一些线性回归,并计算RMSE.

欢迎任何建议。

更新:

我能够进一步使用数据集,并以两种方式对其进行分叉,以两种方式替换评级分数:

  • {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
  • {'A': 5, 'B': 4, 'C': 3, 'D': 2, 'E': 1}

结果不是我所期望的(相反的值),这意味着我现在比以前更加困惑。

在此处输入图像描述

下面的数据集供您测试:

    Index Ranking   Rating Correlation  # Results   Label
    0   1   0.064138    840 PKW_A1
    1   3   0.087673    245 PKW_A1
    2   5   -0.028258   111 PKW_A1
    3   7   0.017542    117 PKW_A1
    4   9   -0.249403   77  PKW_A1
    5   11  -0.138552   51  PKW_A1
    6   13  -0.090198   41  PKW_A1
    7   15  -0.333333   18  PKW_A1
    8   17  -0.076830   17  PKW_A1
    9   19  -0.113594   24  PKW_A1
    10  1   0.027015    840 PKW_A5
    11  3   0.116202    245 PKW_A5
    12  5   0.134111    111 PKW_A5
    13  7   0.094221    117 PKW_A5
    14  9   -0.070592   77  PKW_A5
    15  11  -0.127137   51  PKW_A5
    16  13  -0.275387   41  PKW_A5
    17  15  0.092450    18  PKW_A5
    18  17  0.055994    17  PKW_A5
    19  19  0.081427    24  PKW_A5
1个回答

您的分类特征是序数特征,这意味着它传达了代表它的级别之间的顺序。因此您可以将其转换为数字特征,但是 2 个连续级别之间的差异是未知的,无法转换为数字。

示例:高 - 中 - 低 --> 3 - 2 - 1 或 4 - 2 - 1 或 5 - 2 - 1。看到了吗?顺序被保留,但级别之间的差异是任意的。

此外,您现在应该为您的特征选择值会影响相关性,因为您可以自由选择任何您想要的分类特征值。