看到一位财务同事分享的一篇技术文章,讲的是用blorr
来诊断逻辑回归模型。虽然本人离机器学习已越来越远,但文中提到包里构建了shiny app引起了兴趣,于是体验了一下。
本文拿我当年的《逻辑回归模型预测股票涨跌》作为对照,来对比一下用产品建模与代码建模的差异。
安装环境配置
先install.packages("blorr")
,包装好后再blorr::blr_launch_app()
,中间会提出提示需要安装依赖环境,一路选1即可。
配制数据源
第1步依然是配制数据源,支持2种方式,一种是从本地导入数据,另一种是直接用R里的sample数据。

本地导入数据
可以看到支持常见的csv、excel、json等数据类型;其中csv还贴心地允许用户指定分割符和引用符,excel可指定sheet页,防止数据读入异常。

选择sample数据
都是一些R里常见的数据集,也是各机器学习教材里用得比较多的教学示例数据。

第一次使用时用的是sample数据,后来发现这个产品用起来坑太多。所以这里用文件上传的形式上传ISLR
包里的Smarket
数据集。
数据处理
常用的数据处理都可以界面化完成:
- 可以给字段起别名(alias)
- 可以自定义字段格式(cast)
- 可以筛选部分字段(select)
- 并对数据进行筛选(filter)。不过这里很尴尬的一点就是,
Direction
明明默认是个factor
,operator还只是大于、小等这些,连个不等于都没有,更别说IN 和 NOT IN了
这里我们什么都不改,保持默认即可。



缺失率校验
数据信息好配制好了后,会自动对各字段进行NA校验。可以看到,iris样本数据各字段都没有缺失值。

划分训练集与测试集
数据集配制好了后,接下来就准备建模。首先得划分训练集和测试集。选择按80%的比例抽样作为训练集即可,还支持导出训练集与测试集的数据。

点击Start Modelling
就意味着完成数据处理阶段,开始步入建模阶段了。
模型构建
建模的模块包含以下几块,下面一个个试验一下。

Bivariate Analysis
描述性统计分析是建模前的准备工作,以便对数据有基本的认识。
不过这个模块应该是有bug的,无论怎么选,总是报错。如果我们不去debug源码,根本不知道这个object 0是啥(但显然没有时间和兴致做这个),那就直接跳过这步吧。略尴尬。

回归建模
回归
我们直接用上次文章里的结论:Direction~Lag1+Lag2
扔进去。讲真,如果不是具备用R建模的经验,谁能想得到这种蜜汁写法。

p值都不显著,跟上次结果一样。

Adjusted R2灰常小,略尴尬。不过在意料之中。

算了,已经看不懂这些统计指标了。
特征选择
前向选择
向前选择只选择了Lag1
一个变量,略尴尬。

反向选择
同样一个建模语句直接copy过来,前面可以,这里报错。十分尴尬。

逐步回归
再次报错,再次尴尬。

算了,我们跳过,当无事发生过。
模型验证
混淆矩阵
又报错……看错误信息应该是测试集数据问题,然而前面不是自动进行测试集划分的吗?!

Hosmer Lemeshow Test
依然报错……鬼知道这个width
是什么?

诊断曲线
下面4个是对应的诊断曲线,只能看懂ROC曲线——比瞎蒙好不了多少,符合预期。




后面是几个不明觉厉的残差诊断,倒没有再报错了,图就不放了。
然后就没了……
产品体验
显然,这是一款面对专业数据挖掘人员的产品,完全不适合小白。尽管如此,槽点还是不少:
- 鲁棒性差,动不动就报个错,而且报得莫名奇妙
- 就算报错,好歹用人话转义一遍,总不能让用户去debug
- 只是罗列模型诊断的结果,不能再此基础上直接给一个评断或者优化建议
- 模型建好之后还需要有predict,在上面没有体现
综上,这只不过是给建模人员一个界面化窗口来简化繁琐代码的工具,并不具备一个完备产品的闭环逻辑。不过,它依然能够为机器学习类数据产品设计提供借鉴。
网友评论