热线电话:13121318867

登录
2020-05-30 阅读量: 1598
随机森林如何填补缺失值?

随机森林填补缺失值具体代码为:

 def fill_missing(data,to_fill): 
'''
data:传递的数据集
to_fill:需要填补的列名'''

df = data.copy() # 复制原表,防止操作错误
columns = [*train_data.columns] #特征
columns.remove(to_fill)
columns.remove('NumberOfDependents')
columns.remove('SeriousDlqin2yrs')

# 提取特征和预测标签
X = df.loc[:,columns]
Y = df.loc[:,to_fill]
# 划分数据集:训练集是没有缺失值的样本,测试集是缺失的样本
Xtrain = X.loc[df[to_fill].notnull()]
Xpred = X.loc[df[to_fill].isnull()]
Ytrain = Y.loc[df[to_fill].notnull()]

# 建模
model = RandomForestRegressor(random_state=0,
n_estimators=100,
max_depth=3,
n_jobs=-1)
model.fit(Xtrain,Ytrain)

#预测
pred = model.predict(Xpred).round()

#填充
df.loc[df[to_fill].isnull(),to_fill]=pred
return df


train_data = fill_missing(train_data,'MonthlyIncome')
27.3521
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子