我正在用python在Kaggle上开发heart attack analysis。我是一个初学者,我试图弄清楚是否仍然有必要对这些特性进行one-hot-encode或LableEncode。我看到很多人在为这个项目编码值,但我很困惑,因为所有东西看起来都已经缩放了(除了年龄、thalach、oldpeak和斜率)。
**年龄:**年龄(岁)
性别:(1 =男性;0 =女性)
**cp:**顺序值1-4
**thalach:**达到的最大心率
exang:(1 =是;0 =无)
**oldpeak:**运动引起的抑郁
**坡度:**峰值练习的坡度
**ca:**值(0-3)
**塔尔:**序数值0-3
**目标:**0=机会较少,1=机会较多
您认为是否仍有必要进行单热编码,或者我应该直接使用StandardScaler?
我见过很多人为这个项目编码整个数据集,但对我来说这样做没有意义。请确认是否只使用StandardScaler就足够了?
1条答案
按热度按时间bjp0bcyl1#
当您应用StandardScaler时,列将具有相同范围内的值。这有助于模型将权重保持在界限之下,并且梯度下降在收敛时不会突然出现。这将有助于模型更快地收敛。
另外,为了在序数值和一个热编码之间做出决定,请根据列值之间的距离考虑列值是否相似。如果相似,则选择序数值。如果知道类别的层次结构,则可以手动分配序数值。否则,你应该使用LabelEncoder。2看起来心脏病发作的数据已经用手动分配的顺序值给出了。3例如,较高的胸痛= 4。
此外,参考性能更好的笔记本电脑也很重要。请看下面的一款笔记本电脑以供参考。95%准确率-https://www.kaggle.com/code/abhinavgargacb/heart-attack-eda-predictor-95-accuracy-score