该数据集是否需要一种热编码?

时间:2020-07-06 06:39:58

标签: python pandas machine-learning regression one-hot-encoding

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

Heart_failure data set from UCI repository

但是,以数字形式存在的数据集中的分类变量很少,例如贫血,性别,吸烟和DEATH_EVENT。

我的问题是:

  1. 在建立回归模型之前,我应该对这些变量执行“一次性编码”吗?
  2. 此外,我观察到这些值在各个范围内,因此在应用回归模型之前,我还应该缩放数据集吗?

3 个答案:

答案 0 :(得分:2)

1。在建立回归模型之前,我应该对这些变量执行“一次性编码”吗?

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

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。如果是这样,则仅一种热编码就足够了,或者我应该执行 标签编码?

我猜一个热编码就足够了。

3。另外,我观察到这些值在各个范围内,因此在应用回归模型之前,我是否还应该缩放数据集?

是的,您可以使用StandardScaler()MinMaxScaler()获得更好的结果,然后对预测值进行反比例缩放。另外,请确保分别缩放测试和培训,而不要合并训练,因为在现实生活中您的测试将无法实现,因此您需要相应地缩放以避免这种错误。

答案 1 :(得分:1)

如果这些确实是二进制类别,则不必进行热编码。它们已经被编码。

答案 2 :(得分:0)

您不必使用一键编码,因为那些列已经具有数值。尽管如果这些数值实际上是字符串而不是int或float,则应在它们上使用一键编码。关于缩放数据,变化很大,因此应缩放它,以避免回归模型偏向高值。