海量特征按照缺失值null/NAN数量异同进行分组归类
有些数据集中,很多特征都有大量的缺失值
如果一些特征的缺失值数量是一致的,那么这些特征可能是重复特征或者是关联特别大的.
代码如下:
########################### Let's find nan groups in V columns#这里是重点#######################
nans_groups = {}
nans_df = pd.concat([train_df, test_df]).isna()#显示每列中是否有null值
# print("nans_df=",nans_df)i_cols = ['V'+str(i) for i in range(1,340)]#所有的相似列名for col in i_cols:cur_group = nans_df[col].sum()#统计该列中的null数量,然后把null数量当做key值if cur_group>0:try:#如果key对应的列表存在nans_groups[cur_group].append(col)#字典,key是cur_group,value是nans_groups[cur_group](类型是list)except:#如果key对应的列表不存在nans_groups[cur_group]=[col]for n_group,n_members in nans_groups.items():print("n_group=",n_group)#打印的是null数量print("n_members=",n_members)print("------------------------------------------------------------")
进行KS检验,检查train和test的某个特定特征的数据的分布是否一致(因为上面的代码仅仅是检测null数量一致而已,null数量一致并不代表分布就一致,所以下面进行重复加检查)
########################### Let's check p values ###########################
features_check = []for col in test_group:features_check.append(ks_2samp(train_df[col], test_df[col])[1])#比较train和test中同一个属性的概率分布是否一致features_check = pd.Series(features_check, index=test_group).sort_values()
print(features_check)
用这些同分布的特征进行建模
########################### Lest try model with these features
if MAKE_MODEL_TEST:remove_features = [col for col in remove_features if col not in test_group]test_predictions = make_test_predictions(train_df, test_df, TARGET, lgb_params)print(metrics.roc_auc_score(test_predictions[TARGET], test_predictions['prediction']))remove_features += test_group
[2]中提到一个观点:
NAN一致的特征都来自同一个数据源
Reference:
[1]https://www.kaggle.com/kyakovlev/ieee-v-columns-pv
[2]https://www.kaggle.com/c/ieee-fraud-detection/discussion/105130#latest-625590
海量特征按照缺失值null/NAN数量异同进行分组归类相关推荐
- fillna填充某一列_pandas学习笔记 -了解数据集基本情况,提取数据,缺失值NULL的判断,删除和补充(dropna,fillna的用法)...
part1 了解数据集基本情况 当我们面对一个很大的数据集的时候,如何快速得到他的行数与列数呢? 举个栗子,我们读取一个nhanes数据集,我们加上一个.shape,输出的结果就是他的行数和列数了. ...
- R语言中的特殊值 NA NULL NaN Inf
这几个都是R语言中的特殊值,都是R的保留字, NA:Not available 表示缺失值 用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容 用 is.null() 来判 ...
- pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan、使用pandas的fillna函数用经验固定值填充缺失值np.nan
pandas使用replace函数将所有的无穷大值np.inf替换为缺失值np.nan(replace all infinities with a missing value).使用pandas的fi ...
- 【数据竞赛】99%情况下都有效的特征筛选策略--Null Importance。
作者:杰少 Null Importance特征筛选 简介 目前数据量越来越大,数据特征维度也越来越高,这不仅对我们的计算存储带来了较大的挑战,与此同时,还会对模型的效果带来较大的损益. 如何既能节省内 ...
- Javascript 中的非空判断 undefined,null, NaN的区别
JS 数据类型 在介绍这三个之间的差别之前, 先来看一下JS 的数据类型. 在 Java ,C这样的语言中, 使用一个变量之前,需要先定义这个变量并指定它的数据类型,是整型,字符串型,.... 但是 ...
- xarray的DataArray查看nan数量
def len_of_nan_in_xarray(xr_data,data_name):#标出nan位置并转为一维location = np.isnan(np.array(xr_data[data_n ...
- 完全解析:使用Faiss进行海量特征的相似度匹配
点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 作者丨Gemfield@知乎 来源丨https://zhuanlan.zhihu.com/p/210 ...
- Python Pandas DataFrame 删除缺失值 None Nan drop dropna 替换缺失值 fillna 重复值删除 duplicate 数值替换 replace apply
一.获取缺失值. 二.剔除缺失值. 三.缺失值补全. 四.重复值剔除(按照行和列). 五.数值转换. 原始数据展示.数据下载链接 https://download.csdn.net/download/ ...
- 特征工程——缺失值显示和填充(集中趋势(众数、平均数、中位数)、缺失值矩阵图、条形图、集中趋势填充)
一.引言 在数据挖掘过程中我们会发现由于各种原因都会存在缺少信息,数据不完整.产生的原因多种多样,主要分为机械原因和人为原因. 二.集中趋势 (1)众数:出现次数最多的变量值(M0):不易受极端值的影 ...
最新文章
- where()函数的用法
- Flot使用文档(转)
- 如何在Windows 10上限制Wi​​ndows Update的下载带宽
- ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动
- 安装Microsoft Visual Studio 2008的时候,经常会出现Microsoft Visual Studio Web创作组件安装失败的情况
- mysql开启中继日志,MySQL复制应用中继日志解析
- 2008社工新书《黑客社会工程学攻击》
- PHP扩展部署之最佳实践
- 第九次作业(杨辉三角)
- scrapy 使用无忧代理IP 需要填写无忧代理IP提供的API订单号(请到用户中心获取) 这个是要钱吗??...
- Mac操作系统-软件安装
- 爱奇艺千亿级数据查询服务实践
- android app wifi密码,无广告查看wifi密码的软件-WiFi密码查看清爽版app下载V999安卓版-西西软件下载...
- Neural-Motifs 源码解读(4):变量名缩写
- 【建议收藏系列】爆肝3w字带你理解什么叫运维~
- BGP的通告和选路规则
- 16.体测成绩判定(c函数调用)
- 【高等数学】一元函数微积分学
- 07年时写给刚入职的同事的一封信
- 区块链技术遇上元宇宙如鱼得水 三鼎发力开启元宇宙时代新篇章 Tycoon Zone新秀锐起 势不可挡
热门文章
- MySql 事务+异常处理+异常抛出
- 关于Response.redirect和Response.End出现线程中止异常的处理
- 解字符串不能超过8000的方法及交叉表的处理
- 安全手册(初稿)[转]
- CTF加解密/编码常用在线网址
- CG-CTF-Web-bypass again
- oracle 运营维护_oracle运维(持续更新)
- python读取文件夹下所有图片_python 读取单文件夹中的图片文件信息保存到csv文件中...
- java实验1_Java程序实验1
- 使用await实现多接口并行调用