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')






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论