训练集和测试集的划分
Ytrain:指的是缺失值那行所对应的有值的部分
Ytest:指的是缺失值,需要预测的部分(一般的监督学习不会预测Ytest,因为我们是预测该缺失的数据,所以Ytest不用做比较,直接进行预测填补缺失值)
Xtrain:指的是未缺失部分所对应的特征值
Xtest:指的是缺失部分所对应的特征值
决策树预测缺失值的方法(两种情况):
第一种情况:只预测一行缺失值
1.构建新的特征矩阵
2.划分训练集和测试集
3.用随机森林来预测
4.将预测的数值对原数据进行覆盖
1 def fill_missing_rf(x, y, to_fill): 2 df = x.copy() 3 fill = df.loc[:, to_fill] 4 df = pd.concat([df.loc[:, df.columns != to_fill], pd.DataFrame(y)], axis=1) 5 6 Ytrain = fill[fill.notnull()] 7 Ytest = fill[fill.isnull()] 8 Xtrain = df.iloc[Ytrain.index, :] 9 Xtest = df.iloc[Ytest.index, :] 10 11 rfr = RandomForestRegressor(n_estimators=100) 12 rfr = rfr.fit(Xtrain, Ytrain) 13 Ypre = rfr.predict(Xtest) 14 return Ypre
第二种情况:预测多列缺失值
1.找出多列缺失值,将缺失值按照数值由小到大进行排列。(因为预测的情形需要有少到多,准确率更高)
2.构建新的特征矩阵
3.划分训练集和测试集
4.用随机森林来预测
5.将预测的数值对原数据进行覆盖
标签:Ytest,rfr,机器,预测,df,决策树,缺失,fill From: https://www.cnblogs.com/future-panda/p/16808717.html