此数据集是否需要一个热编码?

2024-05-23 19:01:29 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是UCI数据存储库中的数据集。我想建立一个回归模型,将血小板计数作为因变量(y),其余作为特征/输入

Heart_failure data set from UCI repository

然而,在数字形式的数据集中,很少有分类变量,如贫血、性别、吸烟和死亡事件

我的问题是:

  1. 在建立回归模型之前,我应该对这些变量执行“一次热编码”吗
  2. 此外,我观察到这些值在不同的范围内,所以我是否应该在应用回归模型之前缩放数据集

Tags: 数据模型编码事件分类数字特征形式
3条回答

如果这些是真正的二进制类别,你不需要一个热编码。它们已经被编码了

1.Should I perform 'one-hot encoding' on these variables before building a regression model?

是的,你应该对分类变量进行热编码。您可以像下面这样使用:

columns_to_category = ['sex', 'smoking','DEATH_EVENT']
df[columns_to_category] = df[columns_to_category].astype('category') # change datetypes to category
df = pd.get_dummies(df, columns=columns_to_category) # One hot encoding the categories

2.If so, only one hot encoding is sufficient or should I perform even label encoding?

我想一个热编码就足够了

3.Also, I observe the values are in various ranges, so should I even scale the data set before applying the regression model?

是的,您可以使用StandardScaler()MinMaxScaler()获得更好的结果,然后反向缩放预测。此外,请确保您单独缩放测试和训练,而不是合并,因为在现实生活中,您的测试将无法实现,因此您需要相应地缩放以避免此类错误

您不必使用一个热编码,因为这些列已经有了数值。虽然如果这些数值实际上是string而不是int或float,那么您应该对它们使用一种热编码。关于缩放数据,变化是相当大的,因此您应该缩放它以避免回归模型偏向于高值

相关问题 更多 >