tableau集成R----boosting模型

关于tableau与r的连接配置参考我的这篇博客
https://blog.csdn.net/weixin_41744624/article/details/105634247

需要了解boosting模型可以看一下这篇文章https://www.jianshu.com/p/11083abc5738

tableau

函数

关于tableua中集成R语言,涉及到以下四个:

  • SCRIPT_BOOL----返回布尔结果
  • SCRIPT_INT----返回整数结果
  • SCRIPT_REAL----返回数字结果
  • SCRIPT_STR----返回字符串结果

下面来针对一个案例进行tableau中的boosting模型建立:

离职率分析

关于离职率分析:
相应变量(y)对应的字段是:人员状态
预测变量(x)对应的字段是(为了简单仅选择三个):专业职级、入职日期、工作地点

我们期望的返回结果是【在职】、【离职】;所以选用的tableau中的函数是返回字符串的SCRIPT_STR()

字段语句:

创建计算字段

SCRIPT_STR(
     "
     library(adabag); 
     predict(boosting(.arg1~.,data.frame(.arg1,.arg2,.arg3,.arg4)),
                        data.frame(.arg1,.arg2,.arg3,.arg4))$class;
     ",
        ATTR([人员状态]),
       ATTR ([工作地点]),
        ATTR([专业职级]),
       ATTR ([入职日期])
)

在这里插入图片描述

函数解释

  • library(adabag) :调用R语言总的adabag包(要保证R中安装了adabag包,并且在安装后重新运行Rserver服务器)
  • data.frame(.arg1,.arg2,.arg3,.arg4):boosting模型中需要对data.frame结构下的结果做预测分析,而tableau是以表中数据列的形式向R传递参数的,所以需要先形成data.frame结构。(其中:.arg1/.arg2/.arg3/.arg4)对应(ATTR([人员状态])/ATTR ([工作地点])/ ATTR([专业职级])/ATTR ([入职日期]))
  • boosting(.arg1~.,data.frame(.arg1,.arg2,.arg3,.arg4)):表示boosting模型中是以data.frame中除了.arg1以外的内容来预测.arg1的
  • predict(生成的boosting模型,预测数据)$class:返回使用boosting模型预测的数据中的class项(也就是预测结果)

tableau结果

部分涉及个人信息,不给大家看了…
在这里插入图片描述

返回指标重要性结果

根据上述的几个指标,我们预测了boosting回归模型的结果,在模型中有一个重要的指标,importance可以帮助我们了解各个指标在建立模型中的影响重要程度。

R中显示:
在这里插入图片描述

因为importance是一个列表,其中结果是计算的,而tableau只能返回相应的单个值,所以下方的代码我们返回第一个值,也就是地点的影响程度,相应可修改 i m p o r t a n c e [ 2 ] , importance[2], importance[2]importance[3]

SCRIPT_REAL(
     "
     library(adabag); 
     a<- boosting(.arg1~.,data.frame(.arg1,.arg2,.arg3,.arg4))$importance[1];
     a;",

        ATTR([人员状态]),
       ATTR ([工作地点]),
        ATTR([专业职级]),
       ATTR ([入职日期])
)

注意事项

  • boosting模型在R中不处理情况下,预测变量十几个,可预测的内容大概在几W级别,在tableau中会更低,数据量是一个限制
  • tableau中计算字段会逐步输出数据,所以建议将所有的内容写在一行内输出,毕竟计算字段的原理就是输出同一维度下内容(可参照下方讲解的R中代码和tableau中的不同)
  • tableau中因为使用了ATTR()处理了聚合文字字段,所以当使用了多少个维度,这些维度都应该展示在看板上,如果不展示就会出现多条内容对应一个而报错(表关系是这样的),度量也同理

R

下面看一下boosting模型在R的运行

上述例子代码

library(adabag)
d<-read.csv("工作簿1.csv")
# 人员状态设置为因子
d[,"人员状态"]<-factor(d[,"人员状态"])
# 设置种子使得实验可重复
set.seed(4410)
# 垃圾回收清空占用空间
gc()
# boosting模型
m<-boosting(人员状态~.,d)
# 预测
p<-predict(m,d)
# 将训练集中的人员状态(实际)与测试集中的class(预测结果)放置对比
table(d$人员状态,p$class)
print(table(d$人员状态,p$class))
# m$importance是各个变量所占模型预测的重要比例(本例:专业职级、入职日期、工作地点)
m$importance
barplot(m$importance)
# 可做排序绘制
sort(m$importance)
barplot(sort(m$importance))

在这里插入图片描述
在这里插入图片描述

结论

tableau中可以集成R做数据,但是对于boosting模型来说,一方面因为传递变量时文本类型;一方面是tableau的输入输出内容局限性,所以进行方式不如在R中直接进行boosting模型有效

但是对于一些局部的指标,如果业务部门需要定期tableau查看,可以在tableau书写固定计算字段方便业务进行

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值