我正在处理其中类别变量已经为LabelEncoded的数据集。所以,我的问题是,即使其中一些值为0或1,我也将它们全部转换为伪变量吗?

一些变量具有值:(-1、0、1)和(1、2、3、4 ...)

傻瓜会给我二进制值,但如上所述,我已经拥有一些分类特征的二进制值。将它们转换为假人有什么意义吗?

另外,我拥有的分类特征属于int64类型。我应该先将它们转换为object类型,然后创建假人,还是应该将它们保留为int64然后创建假人。

我目前正在使用熊猫的get_dummies()制作假人,与OneHotEncoder有什么不同吗?如果是这样,那么哪个更可取?

这是数据集的头:

 custid         region  townsize    gender  age agecat  birthmonth  ed  edcat   jobcat  ... owncd   ownpda  ownpc   ownipod owngame ownfax  news    response_01 response_02 response_03
 3964-QJWTRG-NPN    1   2.0         1       20  2       September   15  3           1   ...     0       0       0       1       1       0   0       0           1           0
 0648-AIPJSP-UVM    5   5.0         0       22  2       May         17  4           2   ...     1       1       1       1       1       1   1       0           0           0
 5195-TLUDJE-HVO    3   4.0         1       67  6       June        14  2           2   ...     1       0       0       0       0       0   1       0           0           0
 4459-VLPQUH-3OL    4   3.0         0       23  2       May         16  3           2   ...     1       0       1       1       1       0   1       1           0           0
 8158-SMTQFB-CNO    2   2.0         0       26  3       July        16  3           2   ...     1       0       1       0       1       0   0       0           1           0


我想为LinearRegression模型准备此数据集。

最佳答案

我猜想此数据准备工作的最终目标是ML算法。因此,您需要从该算法的先决条件中查看数据。通常,对于大多数算法,如果您的数据是数字编码的,不管您使用的是什么数据预处理算法,无论是Label Encoder还是One Hot Encoder,都可以。

在更精细的规模上,哪种算法更可取,将取决于算法,您的数据和手头的数据量。

无论如何,要说出哪个更适合您的任务和数据-Label EncoderOne Hot Encoder(或来自熊猫的get_dummies),唯一的方法是通过交叉验证对不同的数据进行预处理来运行算法。

为了给您的选择增加更多考虑,一些算法,例如KNNdeep learning,可能需要数据规范化。

10-08 04:28