15588686105 发表于 2021-12-13 23:49:00

随机森林填充怎么使结果为离散型数据

从百度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:48

能说说这些随机森林啊,决策树啊,需要哪些数学知识吗?

15588686105 发表于 2021-12-15 12:45:03

z5560636 发表于 2021-12-14 10:53
能说说这些随机森林啊,决策树啊,需要哪些数学知识吗?

俺也不懂啊,都是百度现学现用{:5_104:}

z5560636 发表于 2021-12-15 15:23:30

15588686105 发表于 2021-12-15 12:45
俺也不懂啊,都是百度现学现用

不老实,自己去问百度。
页: [1]
查看完整版本: 随机森林填充怎么使结果为离散型数据