我正在处理其中类别变量已经为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 Encoder或One Hot Encoder(或来自熊猫的get_dummies),唯一的方法是通过交叉验证对不同的数据进行预处理来运行算法。
为了给您的选择增加更多考虑,一些算法,例如KNN
和deep learning
,可能需要数据规范化。