评估在Python中对数据集进行labelencode或get_dummies()的特征



我正在用python做Kaggle的心脏病分析。我是一个初学者,我试图弄清楚是否仍然有必要对这些功能进行单热编码或LableEncode。我看到很多人为这个项目编码值,但我很困惑,因为所有东西看起来都已经缩放了(除了年龄,thalach, oldpeak和slope)。

年龄:年龄(以年计)

性:(1 =男性;0 =女)

cp:序数1-4

thalach:达到的最大心率

exang:(1 =是;0 = no)

oldpeak:运动诱发抑郁

坡:运动峰斜率

ca:值(0 - 3)

需要:序数0-3

目标:0=机会少,1=机会多

你会说它仍然有必要进行单热编码,还是我应该直接使用StandardScaler ?

我见过很多人为这个项目编码整个数据集,但对我来说这样做没有意义。请确认是否只使用StandardScaler就足够了?

当应用StandardScaler时,列的值将在相同的范围内。这有助于模型将权值保持在限定范围内,并且在收敛时梯度下降不会突然爆发。这将有助于模型更快地收敛。

独立地,为了决定Ordinal值和One hot编码,根据它们之间的距离考虑列值是相似还是不同。如果是,则选择序数。如果您知道类别的层次结构,那么您可以手动分配顺序值。否则,您应该使用LabelEncoder。看起来心脏病发作的数据已经用人工分配的顺序值给出了。例如,胸痛加重= 4.

同样,参考性能更好的笔记本也很重要。请看下面这张图作为参考。95%准确率- https://www.kaggle.com/code/abhinavgargacb/heart-attack-eda-predictor-95-accuracy-score

最新更新