特征向量的缺失值处理

 

作者:离散梦

欢迎大家给出宝贵的建议!

 

 

 

特征向量的缺失值处理

 

1.缺失值较多,直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成影响。

别人的经验:

(1)数据量很小用贝叶斯,适中较大用xgboost,或神经网络。

(2)避免使用距离度量相关的模型,如Knn和SVM,因为计算两点距离。所以缺失值比较重要,处理不当会导致效果很差。

2.缺失值较少,其余的特征缺失值都在10%以内。

(1)把NAN直接作为一个特征,假设用0表示;

(2)用均值填充;

(3)用随机森林等算法预测填充;(我的理解是用同一列已知数据做回归预测)

(4)用插值法填充;

#插值法就是两点(Xo,Yo),(X1,Y2)估计中间点的值。data_train.interpolate()

(5)用上下数据进行填充;

### Stata 中处理缺失值的方法 在数据分析过程中,缺失值是一个常见问题。为了有效应对这一挑战,Stata 提供了一系列命令和工具来识别、管理和填补这些缺失值。 #### 使用 `codebook` 描述数据集中缺失值的情况 此命令能够快速查看各个变量中的观测数量以及存在的任何特殊编码形式的缺失值情况[^1]。 ```stata codebook varname ``` #### 利用 `misstable` 报告并总结缺失模式 该命令仅提供了有关单个变量内有多少观察具有未定义条目的信息,还可以展示多个字段之间共同丢失记录的关系结构[^3]。 ```stata misstable summarize varlist, by(groupvar) ``` #### 创建指示是否存在遗漏的新列 通过 `egen` 函数创建一个新的二元标志位向量,当原始特征含有NA时取值为真(即等于1),否则假(0)[^2]。 ```stata egen miss_flag = anymiss(varlist), missing ``` #### 将特定数值重新分类成系统认可的形式 对于那些被标记为代表未知状态但实际存储着非标准码字(比如-9,-87等)的情形下特别有用的是 mvdecode 指令[^5]。 ```stata mvdecode varlist, mv(-9=-9 .d=.m) ``` #### 应用插值法估算连续型属性上的空白处 针对有序排列的时间序列或是面板资料集而言,ipolate 可以基于前后相邻两点之间的线性关系预测中间位置上可能应有的合理估计值[^4]。 ```stata sort id time by id: ipolate value time, gen(predicted_value) ``` 以上就是在 Stata 中处理缺失值的一些基本技巧。每种方式都有其适用场景,在具体操作前应当先理解自己所面临的数据特点再做选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值