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

Python 此数据集是否需要一个热编码?,python,pandas,machine-learning,regression,one-hot-encoding,Python,Pandas,Machine Learning,Regression,One Hot Encoding,下面是UCI数据存储库中的数据集。我想建立一个回归模型,将血小板计数作为因变量,其余作为特征/输入 然而,在数字形式的数据集中,很少有分类变量,如贫血、性别、吸烟和死亡事件 我的问题是: 在建立回归模型之前,我应该对这些变量执行“一次热编码”吗? 此外,我观察到这些值在不同的范围内,所以我是否应该在应用回归模型之前缩放数据集? 1.在建立回归模型之前,我是否应该对这些变量执行“一次热编码” 是的,你应该对分类变量进行热编码。您可以像下面这样使用: columns_to_category = ['

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

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

我的问题是:

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

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

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获得更好的结果,然后反向缩放预测。此外,请确保您单独缩放测试和训练,而不是合并,因为在现实生活中,您的测试将无法实现,因此您需要相应地缩放以避免此类错误。

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

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

如果这些是真正的二进制类别,您不必进行一次热编码。它们已经被编码了。

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

在我看来,即使这些列是数字列,这里也需要一个热编码,因为数字值并不代表任何信息1和0,只是一个类别变量,并不意味着什么。因此,如果该值意义不大,那么预测器就不会真正利用它。它们实际上代表一个人是否患有贫血,或者一个人是否患有糖尿病,如果一个人吸烟与否等等。这些列已经编码。get_dummies函数的作用是为分类字符串数据分配一个二进制0,1值。它将分类字符串值编码为二进制值。当值已经是二进制编码时,使用一个热编码是没有用的。正如我提到的,如果这些数值实际上是字符串,则应该对其进行编码。虽然这样做不会有什么坏处,但在我看来,这不是必须的,即使这些列是数字列,这里也需要一个热编码,因为数字值并不代表任何信息1和0,只是一个类别变量,并不意味着什么。因此,如果该值意义不大,那么预测器就不会真正利用它。它们实际上代表一个人是否患有贫血,或者一个人是否患有糖尿病,如果一个人吸烟与否等等。这些列已经编码。get_dummies函数的作用是为分类字符串数据分配一个二进制0,1值。它将分类字符串值编码为二进制值。当值已经是二进制编码时,使用一个热编码是没有用的。正如我提到的,如果这些数值实际上是字符串,则应该对其进行编码。尽管仍然这样做不会有任何坏处,但这不是必需的。从您的数据样本来看,贫血、性和吸烟的值似乎只有0和1。如果是这种情况,则不必执行一次热编码 看起来贫血、性和吸烟的值只有0和1。如果是这种情况,则不必执行一次热编码。