python机器学习之随机森林案例——用随机森林填补缺失值(波士顿房价数据)

该博客探讨如何利用随机森林算法在波士顿房价数据集中填补缺失值,通过对比0、均值填充方法,展示随机森林的填充效果,并通过图像呈现模型拟合情况,指出随机森林虽然拟合程度高,但须警惕过拟合风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用随机森林填补缺失值

这里呢,首先将波士顿数据进行填空,然后在对含有空值的数据进行,0、均值、随机森林回归填充,并比较其好坏,并以图像视之。

首先导入所需要的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_boston#数据集
from sklearn.impute import SimpleImputer#填补缺失的类
from sklearn.ensemble import RandomForestRegressor

获取数据,并查看数据

dataset = load_boston()#数据
dataset.data.shape#查看数据结构

在这里插入图片描述
确定样本和标签数量

n_samples = x_full.shape[0]#样本数量
n_features = x_full.shape[1]#标签数量

确定缺失值

#首先确定我们希望放入的缺失值数据的比例,在这里我们假设是50%,那就要有3289个数据缺失

rng = np.random.RandomState(0)
missing_rate = 0.5
n_missing_samples = int(np.floor(n_samples * n_features *missing_rate))


取出将赋值为空值的索引

#np.floor  向下取整 
#所有数据要随机遍布在数据集的各行各列当中,而一个确实的数据会需要一盒行索引和一个列索引
#如果能够创造一个数组,就可以利用索引来赋空值

#用0,均值,随机森林来填写这些缺失值,然后查看这些回归结果
missing_features = rng.randint(0,n_features,n_missing_samples)
missing_samples =rng.randint(0,n_samples,n_missing_samples)

#randint(上限,下限,n) 请在下限和上限之间取出n个整数

#我们现在采样了3289个数据,远远超过了我们的样本量,所以可以使用随机抽取的函数randint

将数据赋值为nan

#但是如果我们的数据量小于我们的样本量506,那我们可以采用np.random.choice,choice会随机抽取不重复的随机数
##因此可以帮助我们让数据更加分散,确保数据不会集中在一些行中


                
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎明之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值