用随机森林填补缺失值_QtenYoung的博客-程序员秘密

技术标签: 机器学习  数据挖掘  

#用随机森林来填补缺失值

x_missing_reg = x_missing.copy()
#找出数据集中,缺失值从小到大排列的顺序,并且有了这些特征的索引,填补缺失值一定从小到大开始填补,3.3
sort_index = np.argsort(x_missing_reg.isnull().sum(axis=0)).values
sort_index
for i in sort_index:
    #构建新特征矩阵
    df = x_missing_reg
    
    #新标签
    fillc = df.iloc[:,i]
    
    #新特征矩阵
    df = pd.concat([df.iloc[:,df.columns != i],pd.DataFrame(y_full)],axis=1)
    
    #在新的特征矩阵中对缺失值进行0的填补
    df_0 = SimpleImputer(missing_values=np.nan,strategy='constant',fill_value=0).fit_transform(df)
    
    #找出训练集和测试集
    #被我们选中要填充的特征中(现在是我们的标签),存在的那些值,非空值
    Ytrain = fillc[fillc.notnull()]
    
    #被我们选中要填充的特征中(现在是我们的标签),不存在的那些值,是空值
    #我们并不是需要Ytest的值,需要的是Ytest所带来的索引
    Ytest = fillc[fillc.isnull()]
    
    #由Ytrain和Ytest,不难理解Xtrain和Xtest
    Xtrain = df_0[Ytrain.index,:]
    Xtest = df_0[Ytest.index,:]
    
    #用随机森林回归来填补缺失值
    rfr = RandomForestRegressor(n_estimators=100)
    rfr = rfr.fit(Xtrain,Ytrain)
    Ypredict = rfr.predict(Xtest)
    
    #将填补好的特征返回到原始特征矩阵中
    x_missing_reg.loc[x_missing_reg.iloc[:,i].isnull(),i] = Ypredict
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44931767/article/details/113059347

智能推荐

java stream流实现对list集合去重,根据某一个属性去重,查询重复值操作_会吐水的杰尼龟的博客-程序员秘密_java stream合并list并去重

list集合去重:public List<WmsUserExcelVo> repetitionRepetition(List<WmsUserExcelVo> excelListl) { List<WmsUserExcelVo> newList = excelListl.stream().distinct().collect(Collectors.toList()); return newList; }list集合根据某一个属性

语音信号之基础知识(一)_冬瓜子的博客-程序员秘密

%%感染了一个学年的语音氛围,自己也做了一些这方面的y

Ubuntu:彻底卸载 Python_ssuqin001的博客-程序员秘密_ubuntu 卸载python

▌主要卸载命令:sudo apt-get remove python3▌卸载残留命令:sudo rm -r /etc/py*sudo rm -r /usr/bin/py*sudo rm -r /usr/lib/py*sudo rm -r /usr/local/lib/py*sudo rm -r /usr/share/py*sudo rm -r /usr/share/man/man1/py*▌检测是否有残留命令:python3 --version本文转载自:htt.

android x86 精简版,逆天!Windows7终极纯净版x86,仅239MB | 殁漂遥_玛卡库克的博客-程序员秘密

XP已经被微软抛弃,据说2015年微软也会停止对win7的支持。一直以来,win7的官方iso文件都有2.47GB大小,下载费事,安装费时,很多童鞋子啊网络上下载的ghost版都锁定了浏览器主页或者内置一些推广软件,而且ghost版也不是很稳定,今天分享小殁我正在使用的Windows7终极纯净版,只有239MB大小,基于Windows 7SP1企业版原版封装,功能齐全,完美保留打印机、无线、蓝牙,...

机器人技术(6)AtdRobot语音控制教程_者也之乎的博客-程序员秘密

1 语音识别模块介绍(Xu, Chen et al. 2016)       上一章节我们介绍了如何用无线手柄控制我们的机器人底盘运动。除了手柄的遥控控制,实际使用过程中,我们还有用语音控制机器人底盘运动的需求。因此,我们在机器人底盘中内置了语音识别模块。     本系统争对机器人语音控制内置了四条控制指令:前进,后退,左转,右转。在每条指令被识别后,机器人将会分别回复:我将前进,我将

黑马程序员—Java学习笔记之集合框架(二)_书生流年的博客-程序员秘密

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------一 Set接口Set是Collection子接口,Set接口中的方法和Collection中方法一致的。Set接口取出方式只有一种,迭代器。注意:Set不循序包含重复的元素,也就是元素唯一。|--HashSet:底层数据结构是哈希表,线程是不同步的。无序,高效;    

随便推点

Mockito单元测试学习笔记(2):Mockito的简单案例_大苏打seven的博客-程序员秘密_mockito 单例

本文是自己对学习的一个总结1、基本Mockito测试的编写了解到什么是Mockito,并且配置好Mockito的maven之后,我们就可以开始编写一个最基本的Mockito测试类了。如果对这两个内容不太了解,可以查看这篇文章https://blog.csdn.net/sinat_38393872/article/details/106520371。1.1、确定项目结构1.1.1、 业务代码的结构Mockito是在Spring的框架中使用的单元测试,我们先新建一个Spring的项目,项目结构如下所

virtualbox安装增强功能时【未能加载虚拟光盘】_li4321的博客-程序员秘密

今天自由草在使用Virtualbox中的Ubuntu虚拟机,打算作为微丫头本地测试,结果屏幕分辨率比较低,不方便使用,就想安装增强功能来实现更改分辨率,但是在安装时出错:未能加载虚拟光驱 VBoxsGuestAdditions.iso到虚拟电脑经过折腾,最后通过互联网找到了解决方法:进入系统在侧边找到如图加载的虚拟光驱,右击,点击弹出,然后就可正常安装增强功能了

HDFS中dfs.datanode.du.reserved系统预留容量详解(一)_开始你的表演的博客-程序员秘密_dfs.datanode.du.reserved.pct

目录: HDFS中dfs.datanode.du.reserved系统预留容量详解(一) HDFS中dfs.datanode.du.reserved系统预留容量详解(二) 使用hadoop版本为2.8.4,查看小结可以直接跳转到结尾。1、dfs.datanode.du.reserved介绍 dfs.datanode.du.re...

复合主键和联合主键_我爱呢晴天的博客-程序员秘密_联合主键和复合主键

复合主键:在一个表中,设定多个字段共同作为主键。比如表中字段有:姓名 性别 年龄,把姓名+性别共同作为主键,姓名+性别的组合不能重复。联合主键:多用于关联表中,两个表中的主键组成联合主键。比如user表主键userId,role表主键roleId,关联表为 userRole表,userRole表中设置联合主键 userId+roleId...

XP下使用QEMU虚拟机实战_mephp的博客-程序员秘密

安装QEMU安装版 安装KEMU加速模块,安装完成默认已经启动了KQEMU服务。 如果没有启动就在 (开始→运行→net start kqemu)启动KQEMU服务,这样以后运行虚拟机速度就快多了。 启动QEMU后可以在QEMU控制台输入(info kqemu)来查看KQEMU的运行状态。 进入QEMU的安装目录创建一个 批处理.BAT 文件 (以后编辑QEMU的启动参数就靠它了) qemu-im