阶段性小结(一)---R语言回归案例实战&算法比较

这篇博客是关于R语言的阶段性复习,重点比较了多元线性回归和随机森林在预测用户消费总额上的应用。通过数据预处理,包括删除无关列、处理缺失值和转换变量类型,建立了训练集和测试集。结果显示,虽然多元线性回归的解释率为4.6%,但随机森林在增加树的数量后,预测效果有所提升。然而,整体拟合效果仍然不佳,可能因为自变量都是分类变量,适合使用分箱或插入二次项的方法来改善模型。
摘要由CSDN通过智能技术生成

R的阶段性复习小结–回归

1. 数据说明

  • User_ID:用户ID Gender:
  • 性别,M为男性,F为女性
  • Age:年龄段,划分为0-17、18-25、26-35、36-45、46-55、55+共六个年龄段
  • Occupation:职业,已转换为数字标签,共有21类职业
  • Stay_In_Current_City_Years:所在城市居住年份,分为0、1、2、3、4+五个类别
  • Marital_Status:婚姻状况,0为未婚,1为已婚
  • 件数:本次消费所购买的商品数目
  • 消费总额:该用户本次消费所支出的总金额,单位为美元

首先读入数据,file.choose()可以跳出窗口选择文件,输出文件所在位置,超级好用!!!

#install.packages(“Rserve”)
library(“Rserve”)
Rserve()
Starting Rserve…
“C:\Users\LENOVO\DOCUME1\R\WIN-LI1\3.3\Rserve\libs\x64\Rserve.exe”
#R与tableau连接
file.choose()
[1] “F:\新建文件夹 (6)\黑色星期五\book233用户信息.csv”
#读取文件位置
user=read.csv(“F:\新建文件夹 (6)\黑色星期五\book233用户信息.csv”)`
#查看数据结构
str(user)
‘data.frame’: 1047 obs. of 8 variables:
$ User_ID : int 1000001 1000003 1000005 1000006 1000015 1000019 1000020 1000022 1000024 1000033 …
$ Gender : Factor w/ 3 levels “”,“F”,“M”: 2 3 3 2 3 3 3 3 2 3 …
$ Age : Factor w/ 8 levels “”,“0-17”,“18-25”,…: 2 4 4 7 4 2 4 3 4 6 …
$ Occupation : int 10 15 20 9 7 10 14 15 7 3 …
$ Stay_In_Current_City_Years: Factor w/ 6 levels “”,“0”,“1”,“2”,…: 4 5 3 3 3 5 2 6 5 3 …
$ Marital_Status : int 0 0 1 0 0 0 0 0 1 1 …
$ 件数 : int 34 29 106 46 116 144 12 155 76 215 …
$ 消费总额 : int 333481 341635 821001 379450 1047124 1457938 185747 1279678 720850 1940043 …

2. 数据预处理

(1) 删除第一列的用户ID,在利用用户个人信息对用户消费总额进行拟合的过程中,用户ID显然是不能作为自变量的。(唯一属性并不能描述事件本身的分布规律)
(2)删除用户购买商品的数量,由于缺少用户购买商品的具体信息(购买了哪一类商品,不同类别购买商品的数量等),所以将其作为自变量难以描述分布规律。
(3)缺失值处理,经过检测缺失值数量很少,直接删除比较有效。

> #install.packages("mice")
> library("mice")
> md.pattern(user)  #缺失值检测
     Gender Age Stay_In_Current_City_Years 件数 消费总额 User_ID Occupation Marital_Status  
1045      1   1                          1    1        1       1          1              1 0
   1      1   1                          1    1        1       0          0              0 3
   1      1   1                          1    0        0       0          0              0 5
          0   0                          0    1        1       2          2              2 8
> users=na.omit(user)#缺失值删除
> md.pattern(users)
     User_ID Gender Age Occupation Stay_In_Current_City_Years Marital_Status 件数 消费总额  
[1,]       1      1   1          1                          1              1    1        1 0
[2,]       0      0   0          0                          0              0    0        0 0
> #可以看到已经没有缺失值啦
> users_1=users[,-7]
> users_12=users_1[,-1]
> #删除1、7 列
> str(users_12)
'data.frame':	1045 obs. of  6 variables:
 $ Gender                    : Factor w/ 3 levels "","F","M": 2 3 3 2 3 3 3 3 2 3 ...
 $ Age                       : Factor w/ 8 levels "","0-17","18-25",..: 2 4 4 7 4 2 4 3 4 6 ...
 $ Occupation                : int  10 15 20 9 7 10 14 15 7 3 ...
 $ Stay_In_Current_City_Years: Factor w/ 6 levels "","0","1","2",..: 4 5 3 3 3 5 2 6 5 3 ...
 $ Marital_Status            : int  0 0 1 0 0 0 0 0 1 1 ...
 $ 消费总额                  : int  333481 341635 821001 379450 1047124 1457938 185747 1279678 720850 1940043 ...

(4)变量类型转换,可以发现表示职业以及婚姻状况的分类变量被自动录入为整数型变量,对二者进行变量类型的转换。
(5)异常值的查看与处理

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值