社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】特征工程:数值特征的缩放与编码

机器学习初学者 • 3 年前 • 419 次点击  

数值特征是结构化竞赛中重要的特征,也是需要处理的特征。一般而言数值特征的操作,包括如下几个方面:

  • 离群点处理
  • 缺失值填充
  • 缩放处理
  • 编码处理

缺失值填充

如果使用非树模型,则需要考虑对数值特征进行填充。缺失值填充的基础方法包括:

  1. 使用统计值填充(均值/中位数/常数)
  2. 最近邻样本填充(行维度)
  3. 基于模型的填充

缩放处理

数值特征在归一化后直接加到深度模型中,直接对原始特征做归一化,或者通过BN层来做归一化。

RankGuass

将数值进行排序,然后将转换到[-1, 1]范围内,然后使用逆误差函数进行转换。

详细案例见:https://zhuanlan.zhihu.com/p/330333894

标准化

最大最小缩放

最大绝对值缩放

鲁邦缩放

计算数值具体的分位点Q1和Q3,

对数转换

分位点转换

计算数值分布的分位点,将分布转为均匀分布或正态分布。

幂变换

将数值转换为更加偏向正态分布的形态

  • Box-Cox 变换
  • Yeo-Johnson 变换

编码处理

原始特征

用原始的数值作为特征,或者在数值上面做一些计算。

二值化/分箱处理

对数值按照大小进行划分,可以直接使用pd.cut实现。

Rank值

统计数值具体大小次序。

离散嵌入

利用分点可以将数值进行离散化,然后作为ID类特征加到模型中,正常参与模型训练。离散化有两个好处:一是引入非线性,二是可以过滤一些异常值。

域嵌入

将一个域内的数值型特征共享一个field embedding,可以理解为使用一个向量来转换。

树编码

通过树模型节点的划分对不同特征值划分到不同的节点,从而对其进行离散化。

往期精彩回顾




本站qq群851320808,加入微信群请 扫码:
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/121347
 
419 次点击