全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 学道会
1111 0
2020-01-08
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import LabelEncoder

#给object型变量编码
encode=LabelEncoder()
table.uid=encode.fit_transform(table.uid)
table.roomid=encode.fit_transform(table.roomid)
X_missing_reg=table.copy()

#提取有缺失值字段的索引
sortindex = np.argsort(X_missing_reg.isnull().sum(axis=0))[::-1].values

for i in sortindex:
    #构建我们的新特征矩阵和新标签
    df = X_missing_reg
    fillc = df.iloc[:,i]
    df = df.iloc[:,df.columns != i]
   
    #在新特征矩阵中,对含有缺失值的列,进行0的填补
    df_0 =SimpleImputer(missing_values=np.nan,
                        strategy=\'constant\',fill_value=0).fit_transform(df)
   
    #找出我们的训练集和测试集
    Ytrain = fillc[fillc.notnull()]
    Ytest = fillc[fillc.isnull()]
    Xtrain = df_0[Ytrain.index,:]
    Xtest = df_0[Ytest.index,:]
   
    #用随机森林回归来填补缺失值
    rfc = RandomForestRegressor(n_estimators=100)
    rfc = rfc.fit(Xtrain, Ytrain)
    Ypredict = rfc.predict(Xtest)
   
    #将填补好的特征返回到我们的原始的特征矩阵中
    X_missing_reg.loc[X_missing_reg.iloc[:,i].isnull(),X_missing_reg.columns] = Ypredict

table=X_missing_reg.copy()
table.isnull().sum()
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群