楼主: uukoala
1461 3

[问答] 分类预测输出的不是类别而是一些连续性的数字 [推广有奖]

  • 0关注
  • 0粉丝

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
56 点
帖子
4
精华
0
在线时间
6 小时
注册时间
2017-3-3
最后登录
2017-3-14

楼主
uukoala 发表于 2017-3-9 13:32:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有一个训练数据集trainSetstr(trainSet)
'data.frame':        40091 obs. of  9 variables:
$ Region        : int  2 7 2 5 8 3 9 7 4 3 ...
$ Date          : int  1 1 1 1 1 1 1 1 1 1 ...
$ Weekday       : int  2 2 2 2 2 2 2 2 2 2 ...
$ Apartment.Room: int  1 1 0 1 1 1 1 0 1 1 ...
$ Beds          : int  1 4 1 1 1 1 2 2 1 1 ...
$ Review        : num  4.91 4.93 3.45 3.8 3.02 ...
$ Pic.Quality   : num  0.778 0.569 0.938 0.803 0.984 ...
$ Price         : num  419 511 337 317 280 ...
$ Accept        : int  0 1 0 0 0 1 0 0 1 0 ...

现在采用randomforest预测Accept(是否被接受)
modelofrf <- randomForest(Accept ~ ., data = trainSet, ntree = 2000,
                          importance = TRUE, proximity = FALSE)

但是得到的预测值不是0,1而是
            1             2             3             4             5             6
-2.950523e+00 -1.118509e+00 -3.199625e+00 -2.603652e+00 -2.689188e+00 -1.594579e+00
            7             8            10            11            14            15
-1.794545e+00 -1.851133e+00 -2.312016e-01 -1.639166e+00 -1.504383e+00 -7.678315e-01
           16            17            18            20            21            22
-1.176839e+00 -2.590223e+00 -2.506254e+00  4.390140e-02 -2.916865e+00 -5.731201e-01
           23            24            26            27            29            32
-1.452550e+00 -2.885675e+00 -2.638527e+00 -2.151004e+00 -2.924910e+00 -3.743366e+00

这样的连续数据
我需要自己转换成分类还是我输入的代码有问题?新手一枚,请大神指教。

二维码

扫码加我 拉你入群

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

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


沙发
uukoala 发表于 2017-3-10 10:41:54
使用逻辑回归同样得到的预测值有正有负
modeloflr <- glm(Accept ~ ., data = trainSet, family = binomial(link='logit'))
            1             2             3             4             5             6
-2.950523e+00 -1.118509e+00 -3.199625e+00 -2.603652e+00 -2.689188e+00 -1.594579e+00
            7             8            10            11            14            15
-1.794545e+00 -1.851133e+00 -2.312016e-01 -1.639166e+00 -1.504383e+00 -7.678315e-01
           16            17            18            20            21            22
-1.176839e+00 -2.590223e+00 -2.506254e+00  4.390140e-02 -2.916865e+00 -5.731201e-01

藤椅
AlexYoung757 在职认证  学生认证  发表于 2017-3-10 17:58:27
数据能截图展示下嘛 ?  可以这样做 ifelse(accpet.predict >0.5,1 ,0 )

板凳
uukoala 发表于 2017-3-14 10:05:49
AlexYoung757 发表于 2017-3-10 17:58
数据能截图展示下嘛 ?  可以这样做 ifelse(accpet.predict >0.5,1 ,0 )
问题已解决,输出预测的时候用语句
pre <- predict(modelofrf, data = trainSet, type = 'response')
将type选择成response即可
多谢指导

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 10:39