随机森林填充怎么使结果为离散型数据
从百度CV的代码呈现出的使连续型数据,怎么呈现出离散型的啊代码:
```python
target=train['price']
sortindex = train[['bodyType','fuelType','gearbox']].isnull().sum().sort_values().index
sortindex = list(sortindex)
sortindex
for i in sortindex:
#构建新特征和新标签
df = train
fillc = df.loc[:,i][]()
df = pd.concat(,target],axis=1)
# target 标签
#在新特征中,对有缺失值的列,用0填补 df_0:数组类型
df_0 =SimpleImputer(missing_values=np.nan,strategy='constant',fill_value=0).fit_transform(df)
# 找出训练集和测试集
# 找出当列非空的值
Ytrain = fillc
# 找出当列空的值
Ytest = fillc
# 根据非空值找出一整行数组
Xtrain = df_0
# 根据空值找出一整行数组
Xtest = df_0
#⽤随机森林回归来训练预测
rfc = RandomForestRegressor(n_estimators=50) #n_estimators弱学习器的最大迭代次数
rfc = rfc.fit(Xtrain, Ytrain)
Ypredict = rfc.predict(Xtest)
#将填补好的特征返回到我们的原始的特征中
train.loc.isnull(),i] = Ypredict[]([]([]()))
```
结果:train['fuelType'].unique()
array([0., 1., 1.26, 0.4 , 2., 3., 0.04, 0.76, 0.16, 0.22, 0.08,
0.06, 0.94, 0.56, 0.2 , 0.38, 0.3 , 0.5 , 0.9 , 0.7 , 0.98, 0.84,
0.86, 0.02, 0.6 , 0.48, 0.14, 0.78, 0.36, 0.74, 0.28, 1.08, 0.42,
0.24, 0.32, 0.52, 0.8 , 0.88, 0.12, 0.18, 0.26, 0.92, 0.96, 0.46,
0.34, 0.1 , 0.64, 0.54, 4., 0.44, 1.06, 0.58, 1.02, 5., 1.8 ,
1.28, 0.66, 0.62, 0.82, 0.68, 1.36, 1.32, 1.38, 1.14, 1.48, 6.,
0.72, 1.24, 1.1 , 1.6 , 1.68, 1.16, 1.12, 3.02, 1.42, 1.3 , 1.4 ,
1.7 , 2.26, 1.72, 1.04, 1.22, 1.86, 1.2 , 2.12, 1.96, 1.74, 1.5 ,
2.74, 2.28, 1.64, 1.62, 1.18, 2.32])
想要的结果:bodyType是0-7的离散型,fuelType是0-6的离散型数据,gearbox是0/1的离散型数据
感谢感谢
如果需要数据可以加我qq:1394292124
麻烦老哥们了 能说说这些随机森林啊,决策树啊,需要哪些数学知识吗? z5560636 发表于 2021-12-14 10:53
能说说这些随机森林啊,决策树啊,需要哪些数学知识吗?
俺也不懂啊,都是百度现学现用{:5_104:} 15588686105 发表于 2021-12-15 12:45
俺也不懂啊,都是百度现学现用
不老实,自己去问百度。
页:
[1]