重磅 | iView 发布 3.0 版本,以及开发者社区等 5 款新品

Markdown

7 月 28 日,我们成功地举办了 iView 3.0 暨神秘新品发布会,这可能是前端开源圈第一次举行线下+线上的发布会。现场座无虚席,线上直播也有超过 2 万人观看。

Markdown

iView 3.0到底有哪些重要更新?5款神秘新品又是什么?接下来就为你揭秘……

View 3.0:更轻量的设计,更强大的组件和功能

我们设计了全新的 iView Logo,维持了原先 i 和 v 的造型,并让颜色更立体:

Markdown

3.x 的版本代号依然沿用 iOS 优秀独立游戏的名称,3.0 的版本代号为两周前刚发布的 RPG 游戏 Battleheart。

全民彩蛋计划

Markdown

为庆祝 iView 两周岁生日,以及 3.0 版本的发布,我们在 iView 文档 (https://www.iviewui.com)中放置了三枚彩蛋,它们埋藏在不同的页面里,可能是一段隐藏的代码,或是一段需要破解的密码等等,总之,聪明的你一定会找到并破译它们。当然,找到三枚彩蛋,你并不能继承 iView 作者的遗产!彩蛋可以兑换大量的 IO 币,详见下文开发者社区(https://dev.iviewui.com)。

设计

许多用户选择 iView,很大的原因是认可 iView 的设计,所以在 iView 3.0 里,我们对 UI 进行了进一步的优化。

iView 的 icon 采用开源项目 ionicons 提供的图标,这次也是将 ionicons 图标库从 2.0 升级至 3.0。 3.0 的图标库在命名上更加的规范,只分为 ios ,md, logo 三种,图标也比以前丰富和好看。 3.0 还新增了属性 custom,可以自定义图标。

Markdown

整体的设计风格趋向于简洁、轻量,去掉了冗余的设计,部分颜色做了调整,看起来更加醒目,比如:

Markdown

Markdown

新组件

iView 的组件是全球同类产品里数量最多,功能最丰富的,3.0 更是增加了 5 个全新的组件。

相对时间组件 Timehttps://www.iviewui.com/components/time

锚点组件 Anchorhttps://www.iviewui.com/components/anchor

面板分割组件 Splithttps://www.iviewui.com/components/split

分割线组件 Dividerhttps://www.iviewui.com/components/divider

单元格组件 Cellhttps://www.iviewui.com/components/cell

相对时间组件 Time 用于表示几分钟前、几小时前等相对于此时此刻的时间描述。相比一个固定的日期时间,它更能体现出最近的状态。

Markdown

锚点组件 Anchor 可以快速跳转到页面指定的位置,经常用于导航文章或文档中的目录结构,随着页面的滚动,它可以自动定位当前浏览区域所对应的标题,点击对应的标题,页面也会跳转到对应的位置。

Markdown

面板分割组件 Split 可将一片区域,分割为可以拖拽调整宽度或高度的两部分区域,并支持嵌套使用。

Markdown

分割线组件 Divider,常用于对不同章节的文本段落进行分割,或者对行内文字/链接进行分割,例如表格的操作列。

Markdown

单元格组件 Cell 在手机上比较常见,在 PC 上则常用于固定的侧边菜单项。Cell 可以是一个简单的菜单项,也可以跳转到其它页面,或者跟 徽标 Badge 或 开关 Switch 等组件一起使用。

Markdown

新特性

iView 3.0 有超过 40 项新特性及功能的优化。 首先是全局配置——

https://www.iviewui.com/docs/guide/global),使用 iView 3 时,可以进行全局配置组件的一些属性。目前只支持配置 transfer 和 size 两个属性。组件会优先使用 prop 设置的属性,如果未设置,再使用全局配置。

transfer:所有带浮层的组件,是否将浮层放置在 body 内,默认为不设置,详见各组件默认的 transfer 值。可选值为 true 或 false。

size:所有带有 size 属性的组件的尺寸,默认为不设置,详见各组件默认的 size 值。可选值为 default、small 或 large。

用法如下:

Vue.use(iView, {

transfer: true,
size: 'large'

});

Button 是 iView 最基础,也是最常用的组件。看似再简单不过的一个组件,其实里面有很多学问。 iView 3 废弃了 type=”ghost”,而是新增了布尔选项 ghost,定义按钮为幽灵按钮,幽灵按钮的背景是透明的,常用于有色背景上面。

Markdown

还新增了 3 个用于跳转的 props:to、replace、target:

Markdown

添加 to 属性后,按钮会以 标签的形式渲染,点击可直接跳转,也支持传入一个 vue-router 对象,iView 会做智能判断。如果使用了 vue-router,会以前端路由的形式跳转,否则会用传统的方式跳转。 replace 属性开启后,跳转不会保存历史记录。 target 的行为和 a 标签类似,比如设置在新窗口打开。 支持 跳转 的组件,除了 按钮组件 Button,还有面包屑组件 Breadcrumb、菜单组件 Menu、以及单元格组件 Cell,这些组件都具有 to、replace 和 target 三个属性,体验也完全一致。后续还会支持到更多组件,比如 Dropdown。

Markdown

router 的编程式导航跳转方便的太多,并且会渲染为带有链接属性的 a 标签,在 SEO 上也更友好。

所有支持跳转的组件,都支持了键盘按键(Mac 为 command,Windows 为 ctrl)加鼠标左键在新窗口打开的特性(无论是否设置 target=”_blank”,这种组合行为都会在新窗口打开,与浏览器原生体验完全一致)。

对话框组件 Modal 新增了三个属性:

fullscreen 全屏

draggable 拖拽

mask 是否隐藏遮罩层

开启全屏属性 fullscreen 后,会铺满整个屏幕,并且只有内容区域可滚动。 开启拖拽属性 draggable 后,会默认隐藏遮罩层,此时拖动 Modal 的标题栏就可以移动了,可以支持同时开启多个 Modal 进行拖拽。

表格组件 Table 新增了两个属性

indexMethod

tooltip

当设置列有 type=”index” 时,可以使用 indexMethod 进行自定义序号了。 给某一列设置属性 tooltip=”true” 时,当该列内容过长,一行无法显示时,鼠标经过会以 Tooltip 的形式显示完整内容。

Markdown

其余的更新内容可以到 3.0 更新日志查看。

开发者社区 iView Developer

这是发布会最劲爆的一款产品了。过去的两个多月里,我们一直在投入社区的开发中,目的就是彻底解决开发者的问题,更好地服务开发者。 社区地址:https://dev.iviewui.com/

一对一提问

遇到编程问题,怎样才能有效解决呢?

QQ / 微信群

SegmentFault / Stackoverflow 等技术社区

问同事

每个人都期望加入大群,但都在小群活跃。QQ / 微信群是程序员很活跃的地方,iView 也组建过官方的 QQ 群,累计有 5000 人左右,每天都沉淀了大量的讨论,虽然我不会一一过目,但偶尔也会快速浏览一下。其中一部分问题是文档中已有的,一部分是比较基础的用法,还有一些相对综合的问题。提问的人很多,解答的人缺少,因为群里的人,绝大多数都是和“你”一类的用户,他们加群也是想解决问题来的,但事实上,并没有得到很好和及时的解决。

Stackoverflow 就不说了,这是一个门槛较高的程序员社区,不过对于高级程序员来说,是寻找答案最好的地方。我们来说说国内的技术社区。以 SegmentFault 为例,我们以往也一直鼓励除了 bug 反馈,都到 SF 提问,因为 GitHub 只适合处理 bug 本身的问题,对于如何使用不适合在上面探讨。

至于问同事和朋友嘛,首先你得有一个懂你的领域问题的同事或朋友,而且,对方得有时间和耐心。

为什么得不到有效解决?

其实理由很简单:

“你”问的圈子的人,也都跟“你”一样,是主动提问型的。

专业问题(比如 iView / Vue.js),不是所有人都知道。

能解决你问题的人,一般都是大牛,而大牛都很忙,根本没空理你。

说的很露骨,但却一针见血。

怎样才能解决问题

如果你想问 iView 的问题,那这个世界上谁对 iView 最了解?当然是 iView 作者本人了,那自然也对 Vue.js 的问题了如指掌。如果作者解决不了的,但基本也没什么人能解决,所以,要想彻底解决问题,就是直接向 iView 作者提问。

所以,一对一提问,是 iView Developer 最核心的功能,也是最能解决你痛点的。

Markdown

高级示例

针对 Vue.js 及 iView,精心编写了大量业务中的高级示例,对 iView 官方文档作补充。比如 Table 的服务端分页及服务端排序、过滤;Upload 的手动上传及七牛云的集成。所有示例都有详细说明、源码及演示,并可以收藏。高级示例会不断增加。

高级示例也是 iView Developer 另一重要的板块,里面会陆续更新丰富而针对性的实例,以 iView 和 Vue.js 为主。高级示例具体到某个详细的问题,比如 Table 组件和 Page 组件联合使用并做服务端的分页、排序、过滤。大量的最佳实践和详尽的代码讲解、浏览体验,对于 iView 使用者来说是很好的补充。

Markdown

每周都会更新一些示例,并提示您,并且可以对示例进行收藏。

除此之外,还有独家写作、商城等功能,期待你的探索!

iView Run:随时随地运行 iView 示例

iView Run 是一个集成了 iView 环境的在线运行 iView 示例的工具,左边写代码,右边预览,可以直接编写一个 .vue 文件,它包含了 template、script、style 三部分。 编写好的示例保存后,会生成一个链接,并可以预览,链接可用于提交 bug,或分享示例给他人参考。

地址:https://run.iviewui.com/

Markdown

iView Run(beta)目前仅支持 iView 环境,暂不支持 Less 和部分 ES6 语法,这取决于你的浏览器。未来将逐步支持,并提供示例共享平台,你可以分享或浏览别人分享的优秀示例。 并且 iView 的文档未来也会集成 iView Run,文档中所有的示例未来都可以直接在 iView Run 中运行。

iView Editor:简约而不简单的 markdown 编辑器

因为在 iView Developer 中,我们开发了一个使用起来还不错的 markdown 编辑器,所以把它单独开源出来。 iView Editor 参考 Github 的设计风格,可以在 markdown 和预览之间进行切换,当然,你喜欢实时预览的话,也是支持的。

地址:http://editor.iviewui.com/

GitHub:https://github.com/iview/iview-editor

Markdown

iView Weapp 2.0

我们在一个多月前发布了微信小程序 UI 组件库 iView Weapp,这次发布会我们带来了它的 2.0 版本。 2.0 文档:https://weapp.iviewui.com/ GitHub:https://github.com/TalkingData/iview-weapp

iView Weapp 2.0 新增了 7 个全新的组件: 索引选择器 Index

吸顶容器Sticky

滑动菜单 Swipeout

倒计时 CountDown

分隔符 Divider

折叠面板 Collapse

页底提示 LoadMore

扫描小程序码,立即体验 iView Weapp 2.0:

Markdown

iView Admin 2.0

iView Admin 2.0 也进行了一波大的升级:

基于 Vue Cli 3.0 重构所有代码 重写重要组件 全新权限方案 多级菜单路由 Mock 请求模拟 全局配置 清晰数据流

体验iView Admin 2.0: https://iview.github.io/iview-admin

GitHub:https://github.com/iview/iview-admin

7月28日也是 iView 的两周岁生日,发布会结束后,我们举行了生日会。特别定制的蛋糕太萌了,大家纷纷拍照留念。

Markdown

以上就是本次 iView 3.0 发布会的核心内容,完整的发布会视频之后会在 iView Developer 发布。

简明数据科学 第八部分:回归模型中的定性变量

Markdown

TalkingData 张永超

在之前的文章中,我们讨论了回归模型。费尔南多选择了最好的模型,他建立了一个多元回归模型,该模型的具体形态如下:

价格 = -55089.98 + 87.34 x 发动机大小 + 60.93 x 马力 + 770.42 x 宽度

该模型构建了一个根据发动机的大小、车辆的马力和宽度的函数,来预测或评估车辆的价格。而且该模型中所有的预测因子都是数值型的。

但是,如果有定性变量呢?定性变量是如何用来增强模型?定性变量又改如何解释呢?

这篇文章我们将针对定性变量进行讨论。费尔南多得到了两个类似的定性变量:

  • fuelType:燃油的种类。该值可以是汽油或者柴油;
  • driveWheels:驱动的种类。有三个可能的值,4轮驱动、前轮驱动和后轮驱动,分别表示为4WD、RWD、FWD。

Markdown

费尔南多希望找出这些定性变量对汽车价格的影响。

概述

定性变量是哪些非数值型的变量。适合用于将数据分类,也称为分类变量或者因素。此类变量带有一定的层级,而层级是特定定性变量的特殊值。

燃油种类由两个独特的值,汽油和柴油。这意味着燃料类型有两个因素。

驱动有三个独特的值。四驱、后驱和前驱。这意味着驱动有三个因素。

当回归模型使用定性变量的时候,需要将定性变量转变为虚拟变量,也就是简单的0和1。例如,样本数据中有5辆车的数据,每辆车都有柴油或汽油的燃油类型。

Markdown

燃料类型是一个定性变量。它有两个级别(柴油或天然气)。统计软件创建一个虚拟变量,创建一个名为fuelTypegas的虚拟变量,该变量需要0或1个值。如果燃料类型是汽油,那么虚拟变量是1,否则它是0。

写成数学形式如下:

  • xi = 1 如果燃油类型时汽油
  • xi = 0 如果燃油类型时柴油

接下来看看定性变量在回归模型中的表现,当只有价格和燃油类型的时候,简单回归模型可以提供如下的参数系数:

Markdown

只有一个系数斜率和一个截距,回归模型为定性变量的因子值(在此种情况下为汽油)创建虚拟变量。

如果虚拟变量为0,即汽车的燃油类型是柴油,则 价格= 18348 + 0×(-6925)= $18348;

如果虚拟变量为1,即汽车的燃油类型是汽油,则 价格 = 18348 + 1 x (-6925) = $11423。

处理双因素水平的定性变量的方式是明确的,即构建虚拟变量,其值非0即1。但是当具有多余两个以上级别的变量该如何进行处理呢?例如下例。

驱动方式是一个具有三个因素的定性变量。在这种情况下,回归模型会创建两个虚拟变量,假设样本数据有4辆车:

Markdown

两个虚拟变量会被创建:

driveWheelsfwd:如果驱动方式是前驱,则为1,否则为0

driveWheelsrwd:如果驱动方式是后驱,则为1,否则为0

数学形式如下:

  • 如果驱动方式为前驱,xi1 = 1 ,否则 xi1 = 0
  • 如果驱动方式是后驱,xi2 = 1 ,否则 xi2 = 0

需要注意的是,4驱并不存在于虚拟变量中。

那么他们最终是如何在回归模型中表现出来呢?回归模型对待此类虚拟变量的方式如下:

Markdown

首先,回归模型为价格估算创建了一个基准线,基线中并不包含定性变量对应虚拟变量的均值,此时的结果为截距值,基线方程为4驱方式的平均价格;

对于前驱:车辆的平均价格被估算为 基线 + 前驱系数,即 价格 = 7603 + 1 x 1405 + 0 x 10704 = $9008,意味着,前驱车辆的价格比四驱高出1405美元;

对于后驱:车辆的平均价格被估算为 基线 + 后驱系数,即 价格 = 7603 + 0 x 1405 + 1 x 10704 = $18307,意味着,后驱车辆的价格比四驱高出10704美元。

所有具有两个以上因子值的定性变量和具有双因子值的定性变量处理方式类似。

模型构建

有了对定性变量的处理方式的了解,费尔南多开始将这些定性变量应用在他的模型中,他的原始模型为:

价格 = -55089.98 + 87.34 x 发动机大小 + 60.93 x 马力 + 770.42 x 宽度

他添加了两个定性变量到模型中,燃油类型和驱动方式,于是模型被改写为:

价格 = β0 + β1.发动机大小 + β2.马力 + β3.宽度 + β4.燃油类型 +β5.前驱 + β6.后驱。

于是费尔南多尝试进行了一些训练工作,得到了如下的系数:

Markdown

模型现在为:

价格 = -76404.83 + 57.20 发动机大小 + 23.72 马力 + 1214.42 宽度 – 1381.47 燃油类型 -344.62 前驱 + 2189.16 后驱

这里有定量和定性变量的混合,这些变量是彼此独立的。

从结果中可以看到,调整的R平方为0.8183,意味着模型可以解释训练数据中81.83%的数据异动。但是并不是说所有的定性变量都有意义,在某些情况下定型变量对模型并没有任何意义。

结语 这个模型并不比原始模型好,但是也能够完整的完成工作,我们理解定性变量在回归模型中解释方式,显然,马力、发动机大小和宽度为因子的原始模型更好,但是这些因子是独立处理的。费尔南多思考:

马力、发动机大小和宽度之间有什么联系?

他们之间的联系是否可以模型化?

在下篇文章中将解决这些问题,将解释回归模型交互的作用和局限问题。

相关阅读:

简明数据科学 第一部分:原则与过程

简明数据科学 第二部分:统计学习的关键概念

简明数据科学第三部分:假设检验

简明数据科学 第四部分:简单线性回归模型

简明数据科学 第五部分:多元回归模型

简明数据科学 第六部分:模型选择方法

简明数据科学 第七部分:对数回归模型

Markdown

活动回顾|《数驱·营销闭环 助力品牌增长》全国巡演北京站

Markdown现场认真听讲的同学们

7月24日,TalkingData在北京成功举办了《数驱·营销闭环 助力品牌增长》全国巡演第五站营销主题的线下沙龙。在本次沙龙中,我们诚意邀请到TalkingData数据分析高级总监 王鹏、谷歌中国大客户行业总监 曹静、爱奇艺高级产品运营师 周超和凤凰网商业产品技术负责人 王思涵 ,为大家分享营销案例和经验。现在,我们一起回顾下在本次沙龙中嘉宾们分享了哪些营销干货。

一、《数据助力营销 闭环驱动增长》

Markdown分享人:王鹏 TalkingData 数据分析高级总监

TalkingData数据分析高级总监王鹏把本次分享内容分为4个模块:1.势:数据洞察行业趋势;2.道:厘清营销模式流程;3.术:数据构建营销策略;4.器:产品助力营销闭环。

我们在本篇中带大家主要回顾第1-3部分。

1.势:数据洞察行业趋势

趋势一:使用习惯逐渐固化,竞争从流量转型运营;趋势二:数字营销推广作弊态势持续激增;趋势三:信息流广告独占鳌头,地位难以撼动;

趋势四:HTML5 WebApp推广进入爆发阶段;趋势五:线上线下全面融合,或成为下一个营销增长点;趋势六:数字营销走向数据营销;

2.道:理清营销模式流程

王鹏表示行业关注和需要解决的问题为以下三个方面:

  • 流量质量是广告主关注焦点

流量反欺诈、流量层过滤、私有交易流量使投放更加精准,而且使流量得到保证,解决数字营销中“流量”这个关键性问题;

  • 数据为数字营销提供基础

数字营销离不开「数据」,利用数据对受众静态属性、动态属性、各种行为习惯的分析,使精准营销成为可能;

  • 闭环营销让效果持续提升

通过对用户广告行为的持续学习,实现效果的不断优化,利用机器的试错、总结、学习,逐步完成迭代式优化,基于效果投相似效果。

3.术:数据构建营销策略

王鹏把在数据构建营销策划环节,拆分成:产品定位用户研究、数据助力策略制定、灵活通联数据准备、闭环监测效果优化这4个闭环模块。

  • 需求分析–产品定位及用户研究

王鹏根据以往的汽车和游戏案例具体阐述了,真正明智的广告主是不会自定义客户的样子,而是应该从数据的角度去定义。TalkingData的海量数据可支撑广告主全面深度研究用户,助力广告主挖掘用户特征和产品趋势,优化广告主公司业务,持续保持行业领先位置。

  • 投放策略–多维数据助力策略制定

在以往投放策略里,通常我们只能考虑一些简单的像人口属性、区域等这样的维度。但是现在,可用更多维度,做投放策略支持。

Markdown

  • 数据准备–灵活联通,定向筛选,多维组合

营销策略和数据准备是可以通过TalkingData的TDID打通的,灵活使用种子人群数据和把线上线下数据进行融合,变通的结合客群研究和产品定位制定投放策略。在数据准备时可以从标签、终端属性、线上、线下、时间,这些维度去组合考虑。

Markdown

  • 闭环监测–效果优化,分群分析

在策略投放完成后,可通过TalkingData的Ad Tracking进行效果监测。广告主可通过广告监测对投放效果和媒体质量进行评估,媒体可通过广告监测做实时结算依据。

二、《AI让营销更智能》

Markdown分享人: 曹静 谷歌中国大客户行业总监

在本场沙龙中曹静以猜画小歌、谷歌翻译和AlphaGo等案例,为现场同学分享了人工智能学习技术和神经网络的机器学习系统。并阐述了“不是说机器战胜了人,而是一群人战胜了一个人。因为机器背后是一群人设计了逻辑、算法,让机器能够学习到这些东西,去做这样的事情”这一观点。

在广告投放层面,以前的广告投放,可以拿到的广告数据具有局限性。现在虽有大量的像搜索词条、位置、时段等非常多的数据。但此时,数据的多样性和复杂度已经超越人工处理的极限。所以谷歌已于去年制定了,把所有应用下载的广告投放全部由机器学习来进行的策略。

完整分享内容,请点击文末原文链接。

三、《视界TOUCHALL-2018爱奇艺效果推广趋势分享》

Markdown分享人:周超 爱奇艺 高级产品运营师

爱奇艺 高级产品运营师 周超为现场同学分享了信息流广告营销生态中三方需求:

  • 广告主,更高效地与消费者沟通,不一起反感,让目标受众可见,尽可能广覆盖,实现更高ROI;
  • 用户,不想被广告主打扰,受众每天被动接触到广告繁多,但对广告接受意愿低;
  • 平台,因为用户习惯和用户时间均像移动端转变,各平台需要移动端转型,迎合时代潮流。

更多分享内容与案例,点击文末原文链接。

四、《行业垂直数据在广告投放中的应用》

Markdown分享人:王思涵 凤凰网 商业产品技术负责人

在本次分享中,王思涵为现场同学分享了他的工程经验与经营意识:

  • 采用先进的技术架构

提升开发效率的同时又能保障工程质量,仅用4个月的时间就完成了广告系统的重构;

  • 大数据计算技术创新

海量广告实时数据的多维度计算秒级响应,在反作弊与算法预估的应用上的效率处于行业领先;

  • 布局移动办公

推出出凤羽移动端APP,抓碎片化的时间,随时随地操作账户提升效率;

  • 突破超越

工程经验只能迅速的帮你达到天花板,而经营意识才是突破天花板的利器。

完整分享内容,点击文末原文链接。

完整视频回放:https://lnk0.com/dEZBN1

技术专栏丨集合管道模式(上)

TalkingData 李冰心:

近来想深入了解下 Java 流底层的实现机制,于是搜索各种资源,最后发现 Martin Fowler 发表的一篇关于集合管道模式的一篇文章,有幸得以拜读,关于集合管道有其独到的见解,看过之后深感佩服,由于原文是英文,索性将其翻译,和大家一起分享,翻译不合理的地方敬请指出。

集合管道

集合管道是一种编程模式,将一些计算转化为一系列操作,通常情况下每个操作的输出结果是一个集合,同时该结果作为下一个操作的输入,常见的操作主要有filter、map和reduce。这种模式常见于函数式编程语言中,因为有了lambdas,这种模式在面向对象语言中也很常见。如果你不熟悉这种模式,通过本文关于构造管道事例的讲解,你会理解其核心概念,从一种语言联想到另外一种语言。

在软件中,集合管道是一种最常见、最令人酣畅淋漓的模式。在 unix 黒与白的命令行中,在面向对象设计语言万物皆对象的类中,在函数式编程语言第一等公民的函数中,都可以发现它们的身影。 不同环境有着不同的表现形式,共通操作有着不同的名称,但是一旦你熟悉了它,你会发现根本离不开它。

初见

第一次接触到这种模式,应该是使用 Unix 的时候。接下来会介绍一些 Unix 的事例,设想下如何在 bliki/entries 目录下查找文件内容包含文本 “nosql” 的文件列表,可以使用grep这样操作:

grep -l ‘nosql’ bliki/entries

每个文件出现单词 “nosql” 的次数:

grep -l ‘nosql’ bliki/entries/* | xargs wc -w

根据次数排序:

grep -l ‘nosql’ bliki/entries/* | xargs wc -w | sort -nr

排序后取top3

grep -l ‘nosql’ bliki/entries/* | xargs wc -w | sort -nr | head -4 | tail -3

不管之前还是以后,和其他环境的命令行工具相比,这种方式都是无可比拟的。

在开始使用Smalltalk时,发现了相同的模式。 假设有一个文章列表 someArticles,列表中的每篇文章 article 定义了很多标签,同时又统计了单词数量,如果想查找哪些文章包含标签 “nosql”:

someArticles select: [ :each | each tags includes: #nosql]

其中 select 方法使用了Lambda表达式来定义:每篇文章 article 作为输入参数,同时验证标签集合中是否包含 “nosql”。该方法会作用于文章列表的每篇文章,最后输出匹配的结果。

为了排序,扩展了上面的代码

(someArticles
      select: [ :each | each tags includes: #nosql]) 
      sortBy: [:a :b | a words > b words]

sortBy 方法同样使用了Lambda表达式定义:文章互相比较,最终返回一个排序后的文章列表。继续其他操作:

((someArticles 
      select: [ :each | each tags includes: #nosql])
      sortBy: [:a :b | a words > b words]) 
      copyFrom: 1 to3

与 unix 管道最核心的相似之处在于:涉及的所有操作例如 select、sortBy 和 copyFrom 输入输出都是集合。unix 中集合是一行行记录构成的流,而Smalltalk集合是对象,但基本概念是相同的。

最近,使用Ruby进行了很多开发,改进后的语法可以更加便捷的操作管道。

some_articles
  .select{|a| a.tags.include?(:nosql)}
  .sort_by{|a| a.words}
  .take(3)

在面向对象语言中,使用方法链构造集合管道是一种很自然的方式。同样也可以使用嵌套函数。

回顾一些基础知识,看看如何使用 lisp 构造类似管道,我会定义存储所有文章的结构体 articles:其中可以通过方法 article-words 和 article-tags 获取内部字段。

基于现有的文章列表 some-articles,获取标签集合中包含 nosql 的文章:

(remove-if-not
   (lambda (x) (member 'nosql (article-tags x)))
   (some-articles))

为了排序,再次使用了lambda:

(sort
   (remove-if-not
      (lambda (x) (member 'nosql (article-tags x)))
      (some-articles))
   (lambda (a b) (> (article-words a) (article-words b))))

使用方法 subseq 获取top3

(subseq
   (sort
      (remove-if-not
         (lambda (x) (member 'nosql (article-tags x)))
         (some-articles))
      (lambda (a b) (> (article-words a) (article-words b))))
 0 3)

看啊,那就是管道,通过我们一步步的构造,看起来是多么完美。然而最终的表达式是否清晰自然,有待商讨。对于 unix、smalltalk 和 ruby 下管道执行的顺序依赖于内部方法的线性排序。 在你的头脑中应该很容易虚拟化这种场景:左上角的数据经过过滤,最后从右下角输出。 同样可以在 Lisp 中使用嵌套函数,但是你需要掌控函数的嵌套层级。

最近流行的 lisp,Clojure 避免了嵌套层级:

(->> (articles)
     (filter #(some #{:nosql} (:tags %)))
     (sort-by :words >)
     (take 3))

符号 “->>” 是一个线程宏,通过使用 lisp 强大的语法宏功能将每个表达式结果作为下一个表达式的输入。 你可以使用提供的库将嵌套函数转化为线性管道,只需要遵循约定即可。

对于大多数函数开发者来说,可以游刃有余的处理函数的嵌套,线性化无足轻重,所以这就是为什么经过了这么长的时间,lisp才支持操作符 “->>” 。

这些天常听到函粉对于集合管道的赞赏之声,夸奖函数式编程语言的强大,而又感叹面向对象设计语言的不足。这种说法其实非常片面,因为对于众多的 Smalltalk 开发者来说已经广泛的使用了集合管道。而集合管道在面向对象语言中例如 C++、Java 和 C# 中没有被支持的原因,有人说没有借鉴 Smalltalk 的 lambda,此外缺少足够丰富的集合操作。以至于很多面向对象开发人员栽进了集合管道里。 Java 大行其道时不支持lambdas,对于像我这样 Smalltalk 开发者常常会抱怨,但是又不得不忍受。 在 Java 中如何构造集合管道,有过各种尝试,而每种尝试都需要大量的代码来实现,使得即使技术熟练的人也被迫放弃。 在2000年左右我开始使用Ruby,重要原因是因为Ruby支持集合管道。有时候我会感概在我的 Smalltalk 时代,错过了很多有价值的东西。

lambdas 由于短小实用赢得了很多关注,C# 已经支持很多年,现在 Java 也开始支持。 如今你可以在许多语言中使用集合管道。

简明数据科学 第七部分:对数回归模型

Markdown

作者丨Pradeep Menon

原文丨 https://towardsdatascience.com/data-science-simplified-part-7-log-log-regression-models-499ecd1495f0

译者丨TalkingData 张永超

在本系列的内容中,我们已经讨论了简单线性回归模型,以及多元回归模型和选择正确模型的方法。

费尔南多现在已经构建了一个很好的模型。

Markdown

price = -55089.98 + 87.34 engineSize + 60.93 horse power + 770.42 width

但是,费尔南多依然有一下考虑:

  • 如何使用常见的比较单位来估算价格变化?
  • 关于发动机尺寸、马力和宽度的对应价格有多少弹性变化?

在本篇内容中,我们将解决这些问题。本文将介绍对数回归模型

概述 为了了解对数回归模型,首先需要理解导数、对数、指数的概念,进而理解弹性的概念。

**导数: ** 导数是一种表示变化的方式 —- 一个函数在一个给定点上的变化量。

如一个变量y是x的函数,则将y定义为:

y = f(x)

则在y上关于x的导数,表示为:

dy/dx = df(x)/dx = f'(x)

而这种表示的含义如下:

y相对于x变化的变化,即,如果x变化,y会有多少变化?

这正是费尔南多所需要的,他想知道的价格正是相对于变量的变化。

之前多元回归模型的一般形式如下:

Markdown

也就是说费尔南多建立以下模型:

price = β0 + β1 . 发动机大小 i.e. 价格是一个关于发动机大小的函数。

费尔南多所构建的模型主要的目标是预测汽车的价格,而其价格方面取决于发动机的大小,其模型也正好表达了发动机大小的变化对应价格的变化的规律。

然而,可能并非如此,线性模型是假定数据是线性关系的,如下:

y = mx + c

如果计算y上的导数,则会给出如下的结果:

dy/dx = m . dx/dx + dc/dx

相对于发动机本身的变化,其值始终为1,例如dx/dx = 1

一个常数相对于任何东西的变化其导数始终为0,因为它是一个常数,例如dc/dx = 0

那么公式就变成了:

dy/dx = m

在发动机大小上应用价格导数将只会关联与发动机大小的系数。

面对这种情况,必须想办法来改变它,那么接下来就看看指数和对数。

指数:

指数是一个具有两个运算符的函数,基(b)和指数(n),被定义为b^n,其形式如下:

f(x) = b^x

基数可以使任何的正数,欧拉数(e)是统计中最为常用的基数。

在几何上,指数关系具有以下的结构:

Markdown

  • x的增加不会导致y的相应增加,直到到达某个阈值
  • 到达阈值后,x每增加一小部分,y会急速的上升

对数

对数是一个有趣的符号。在回归模型中,对数有着个性化的特质,对数的基本属性是它的基数,对数典型的基数是2、10和e。

如下例:

  • 多少个2相乘等于8?2 x 2 x 2 = 8 答案是 3
  • 也可以表示为 log2(8) = 3

可以读作 以2为底的8的对数为3

对数还有另一个共同的基数,被称为欧拉数(e),其近似值为 2.71828,在统计学中被经常使用。以e为低的对数称为自然对数。

对数也有很好的变革能力,对数可以将指数关系演化为线性关系。例如下图显示了y和x之间的指数关系:

Markdown

如果对数应用于x和y,则log(x)和log(y)之间的关系是线性的。它看起来像这样:

Markdown

弹性:

弹性是衡量一个经济变量对另一个经济变量的响应程度。假设我们有一个函数:Q = f(P)那么Q的弹性定义为:

E = P/Q x dQ/dP

dq/dP是P中Q变化的平均变化

**结合在一起: ** 现在让我们把这三个数学角色放在一起,导数、对数和指数。他们的结合规则如下:

e的对数是1,即log(e)= 1

指数的对数是指数乘以基数

log(x)的导数是:1 / x

设想一个函数y表示,如下:

y = b^x

=> log(y) = x log (b)

那么这是否意味着是线性回归模型?我们可以做数学演化以利用导数、对数和指数吗?我们是否可以重写线性模型方程来找出x的变化率呢?

  1. 首先,让我们将y和x之间的关系定义为指数关系。
  2. y = α x^β
  3. 首先将其表示为log-log的函数:log(y)= log(α)+β.log(x)
  4. 方程y = α x^β看起来并不像是回归模型:Y =β0+β1,其中β0= log(α),β1=β。这个等式现在可以重写为:log(y)=β0+β1.log(X1)

但是如何表达弹性关系呢?我们取log(y)和x的导数,得到如下结果:

  • d. log(y)/ dx = β1. log(x1)/dx
  • => 1/y . dy/dx = β1 . 1/x => β1 = x/y . dy/dx
  • β1的方程是弹性。

构建模型

搞清楚了这些概念后,费尔南多重新构建了一个模型,如下:

Markdown

log(价格) = β0 + β1. log(发动机大小) + β2. log(马力) + β3. log(宽)

他希望根据发动机尺寸,马力和宽度的变化来估算汽车价格的变化。

费尔南多最终得到了如下的参数:

Markdown

该模型的方程是:

log(价格) = -21.6672 + 0.4702.log(发动机大小) + 0.4621.log(马力) + 6.3564 .log(宽)

以下是该模型的解释:

  • 所有系数都很重要
  • 调整的R平方为0.8276,说明该模型解释了数据变化的82.76%
  • 如果发动机尺寸增加4.7%,那么汽车价格将上涨10%
  • 如果马力增加4.62%,那么汽车价格将上涨10%
  • 如果汽车的宽度增加6%,那么汽车的价格将增加1%

模型评估

费尔南多现在已经建立了对数回归模型。他评估模型在训练和测试数据上的表现。

回想一下,他已经将数据分成了训练和测试集,训练数据用于创建模型,测试数据是不可见的数据。测试数据的性能是真正的考验模型的地方。

Markdown

在训练数据上,模型表现相当好,调整的R平方为0.8276,说明该模型可以解释82.76%的训练数据变化。为了使模型可以最终被接受,还需要在测试数据方面表现良好。

费尔南多测试测试数据集的模型性能,该模型计算测试数据的调整R平方为0.8186。这意味着即使对于看不见的数据,模型也能解释81.86%的变化。

请注意,该模型估计log(价格),而不是汽车的价格。要将估计的log(价格)转换为价格,需要进行转换。

转换是将log(价格)作为基础e的指数。e^log(价格)= 价格

结语

统计学习奠定了基础,假设检验讨论了空假设和替代假设的概念,简单的线性回归模型使回归简单,然后,进入多元回归模型的世界,然后讨论模型选择方法。在这篇文章中,讨论了对数回归模型。

到目前为止,构建的回归模型只有数值独立变量。下一篇文章将讨论相互作用和定性变量的概念。

相关阅读:

简明数据科学 第一部分:原则与过程

简明数据科学 第二部分:统计学习的关键概念

简明数据科学第三部分:假设检验

简明数据科学 第四部分:简单线性回归模型

简明数据科学 第五部分:多元回归模型

简明数据科学 第六部分:模型选择方法

Markdown

简明数据科学 第六部分:模型选择方法

Markdown

作者丨TalkingData 张永超

在上一篇(本系列其他文章见文末)文章中,我们介绍了多元回归模型,费尔南多构建了一个多元线性回归模型,接受五个参数来预测汽车的价格。

Markdown

从最后的结果来看,费尔南多的确构建了一个很好的模型,但是他还想选择出最佳的输入参数。那么这篇文章我们将讨论模型的选择方法

基本概念

模型选择方法的思路其实比较直观,只要回答了下面的问题即可:

如何为最优模型选择正确的输入变量?

开始之前,我们需要了解如何定义最佳模型?

Markdown

最佳模型是适合评估指标最佳值的数据模型。

模型的评估有很好的指标,而调整R平方是多元回归模型的最好评价指标。

对于选择最佳参数集来说,有三种方法,他们是:

最佳子集法 前向逐步选择法 后向逐步选择法

接下来分别对这三种方法进行介绍。

Markdown

如上图所示,假设我们有k个变量,那么最佳子集法的过程如下:

  1. 从空模型开始,即没有预测器的模型,我们称之为M0;
  2. 用1个变量找出最佳模型,此时,该模型是一个简单的单一变量回归模型,只有一个独立变量,称之为M1;
  3. 用2个变量找出最佳模型,该模型是一个只有两个独立变量的回归模型,称之为M2;
  4. 用2个变量找出最佳模型,该模型是一个有三个独立变量的回归模型,称之为M3;
  5. 重复这些步骤,只到找出最佳模型的所有预测变量的组合。 对于k个变量,我们需要从下面的模型中找出一组表现最佳的模型:
  • M1: 具有1个预测器的最优模型;
  • M2: 具有2个预测器的最优模型;
  • M3: 具有3个预测器的最优模型;
  • Mk: 具有k个预测器的最优模型。

然后选择M1…Mk中最优的模型,也就是最适合的模型。 最佳子集法是一个复杂的处理过程,不仅需要梳理了预测变量的列表,而且还需要选择最佳的变量组合。最佳子集法虽然看似简单,但是它有着子集的困难和挑战。

最佳子集法为每个预测变量及其组合创建一个模型,这意味着我们正在为每个变量组合创建模型。模型的数量可以是一个非常大的数字。

如果有2个变量,那么有4个可能的模型,如果有3个变量,那么有8个可能的模型。一般来说,如果有p个变量,那么就有2 ^ p个可能的模型,这是相当多的模型可供选择。想象一下,有100个变量(很常见)。将会有2 ^ 100个可能的模型。令人难以置信的数字。

在费尔南多的情况下,只有5个变量,他将不得不创造和选择2 ^ 5个模型,即32个不同的模型。

向前逐步选择法

Markdown

至此,对最佳子集法已经有了一个了解了,但是它需要很多的计算能力,也相对比较耗时,而前向逐步选择法试图环节这种困难。

依然,假设我们有k个变量,则逐步前进选择法的步骤如下:

  1. 从空模型开始,即没有预测器的模型,我们称之为M0。将预测变量添加到模型中,一次仅添加一个;
  2. 用1个变量找出最佳模型,此时,该模型是一个简单的单一变量回归模型,只有一个独立变量,称之为M1;
  3. 在M1的基础上,增加一个变量,用2个变量找出最佳模型,称之为M2;
  4. 在M2的基础上,增加一个变量,用3个变量找出最佳模型,称之为M3;
  5. 重复这些步骤,只到找出最佳模型Mk,即有k个变量的模型。

对于k个变量,我们需要从以下一组模型中选择最优模型:

  • M1: 具有1个预测器的最优模型;
  • M2: 具有2个预测器的最优模型,该模型是M1 + 一个额外的变量;
  • M3: 具有3个预测器的最优模型,该模型是M2 + 一个额外的变量;
  • Mk: 具有k个预测器的最优模型,该模型是Mk-1 + 一个额外的变量。

再次选择M1 …

Mk中的最佳模型,即具有最佳拟合的模型

与最佳子集法相比,前向逐步选择法法创建更少的模型。如果有p个变量,那么将会有大约p(p + 1)/ 2 + 1个模型可供选择,远低于最佳子集方法中的模型选择。假设有100个变量,则基于前向逐步法创建的模型的数量是100×101/2 + 1,即5051个模型。

在费尔南多的情况下,只有5个变量,他将不得不创建和选择5 6/2 + 1*模型,即16个不同的模型。

后向逐步选择法

Markdown

现在我们已经理解了模型选择的前向逐步选择过程,接下来看看后向逐步选择法,这是前向逐步选择法的反向。前向逐步选择从没有变量的模型即空模型开始,相比之下,后向逐步选择是从所有变量开始的。后向逐步选择法的过程如下:

假设我们有k个变量,则逐步前进选择法的步骤如下:

  1. 从一个完整的模型开始,即包含所有预测变量的模型,我们称这个模型为Mk。从完整模型中删除预测变量。一次一个;
  2. 用k-1个变量找出最优模型,从Mk中删除一个变量。计算所有可能组合模型的性能。选择具有k-1个变量的最佳模型。我们称这个模型为Mk-1;
  3. 用k-2个变量找到最优模型,从Mk-1中删除一个变量。计算所有可能组合模型的性能。选择具有k-2个变量的最佳模型。我们称这个模型为Mk-2;
  4. 重复这些步骤,只到找出最佳模型M1,即有1个变量的模型。

对于k个变量,我们需要从以下一组模型中选择最优模型:

  • Mk:具有k个预测值的最优模型;
  • Mk-1:具有k-1个预测变量的最优模型。这个模型是 MK – 一个额外的变量;
  • Mk-2:具有k-2个预测变量的最优模型。这个模型是 MK – 两个额外的变量;
  • M1:具有1个预测器的最优模型。

模型构建

了解了模型选择的方法之后,让我们回到费尔南多的问题,回想一下前一篇文章,费尔南多有6个变量发动机大小,马力,峰值RPM,长度,宽度和高度,他想通过创建一个多元回归模型来估算汽车价格。他想保持模型的平衡并选择最佳的模式。

于是,费尔南多准备使用前向逐步选择法,统计软件包计算出了所有可能的模型以及输出M1到M6的结果。

Markdown

让我们解释上述结果:

  • Model 1:只有一个预测器,仅使用发动机的大小作为变量,调整的R平方为0.77;
  • Model 2:仅有两个预测器,使用发动机大小和马力作为变量,调整的R平方为0.79;
  • Model 3:仅有三个预测器,使用发动机大小、马力和宽度作为变量,调整的R平方为0.82;
  • Model 4:仅有四个预测器,使用发动机大小、马力、宽度和高度作为变量,调整的R平方为0.82;
  • Model 5:仅有五个预测器,使用发动机大小、马力、宽度、高度和峰值RPM作为变量,调整的R平方为0.82;
  • Model 6:仅有六个预测器,使用发动机大小、马力、宽度、高度、高度和峰值RPM作为变量,调整的R平方为0.82。

最终,费尔南多选择了最好的、最简单的模型。在上述结果中,Model 3 使用发动机大小、马力和宽度作为变量,该模型能够得到0.82的调整R平方,即说明该模型可以解释82%的训练数据变化,其他Model 4、5、6虽然使用了更多的变量,但是得到的调整R平方依然是0.82,相对于Model 3却更加的复杂。

在费尔南多的统计软件包中,同样输出了如下的系数结果:

Markdown

根据发动机尺寸,马力和宽度估算价格。

价格 = -55089.98 + 87.34 发动机大小 + 60.93 马力+ 770.42 * 宽度

模型评估

费尔南多选择了最好的模型,该模型将使用发动机尺寸,马力和汽车宽度估算价格。他希望评估模型在训练和测试数据上的表现。

之前,他已经将数据分成了训练集和测试集,费尔南多使用训练数据训练模型,对于模型来说此时测试数据是不可见的数据。费尔南多评估模型在测试数据上的表现。

Markdown

在训练数据上,模型表现相当好,调整的R平方为0.815,说明该模型可以解释81%的训练数据变化。但是,对于该模型来说,在测试数据集上的表现更为重要。

Markdown

费尔南多测试了模型在测试数据集上的表现性能,得到该模型在测试数据中的调整的R平方为0.7984。这意味着即使对于看不见的数据,模型也可以解释79.84%的变化。

结语

现在,费尔南多有了一个简单而且有效的模型来预测汽车的价格。但是,发动机大小,马力和宽度的单位是不同的。于是他想到了如下的几个问题:

如何使用常见的比较单位来估算价格变化?

关于发动机尺寸、马力和宽度的对应价格有多少弹性变化?

下一篇文章我们将讨论转换多元回归模型以及计算弹性的方法。

相关阅读:

简明数据科学 第一部分:原则与过程

简明数据科学 第二部分:统计学习的关键概念

简明数据科学第三部分:假设检验

简明数据科学 第四部分:简单线性回归模型

简明数据科学 第五部分:多元回归模型

从数据运营到数据变现,TalkingData证券行业实战分享研讨会在深圳召开

2018年7月11日下午, TalkingData在深圳举行了证券行业数据运营实战研讨会,华南地区证券行业的科技部门与网络金融部门的相关负责人参加了本次研讨会,参会者覆盖了华南地区90%以上的证券公司。此次会议以“数据运营实战分享”为主题,探讨了数据场景变现的整体思路,从业务运营指标建设、数据场景变现、精准营销案例、大数据和人工智能应用等方面,面向证券行业用户介绍行业成熟案例和解决方案。

TalkingData从多年的证券行业实战角度出发,认为证券行业的数据运营要升级现有的思路,从客户视角转向用户视角,从获客发展转向存量经营,从产品关注转向用户关注,从投资通道转向财富管理。通过养数据、看数据、用数据的方式,打通内外部数据和行为数据,实现数据资产的统一视图。通过业务运营指标体系建设,帮助证券公司关注用户转化旅程、提升运营效率、降低运营成本、发现数据变现的机会。建设数字营销闭环缩短用户转化旅程,提升客户活跃度和客户价值。

MarkdownTalkingData高级副总裁 支宝才

TalkingData高级副总裁支宝才出席了本次会议。他在开场演讲中指出,现阶段是证券行业实现业务转型的关键时间点。中国证券行业已经完成了体系、指标的建设,在今天,大家更关注如何通过数据运营获得实际的业务收入。随着客户互联网使用习惯的改变,未来的获客、经营、资产提升、业务收益都将更多地转向移动互联网平台,领先的券商已经把移动互联网变成客户运营的主战场。

Markdown国海证券的数据运营专家 蒋愉

作为第一个重量级嘉宾,国海证券的数据运营专家蒋愉分享了国海证券建设指标体系的历程。通过证券行业指标体系的建立和分析来发现业务问题背后原因,根据数据分析结果制定运营策略,建立数据监测优化的闭环式模型,帮助国海证券实现从短期KPI实现到长期目标达成,再到数字化战略部署的提升。蒋愉表示,国海证券的数据化运营分为三个阶段:即探索、实践和精细化运营,而数据指标体系及平台的搭建是从实践到精细化运营阶段的重要基石,其可以帮助证券公司实现从指标洞察到运营优化提升。

国海证券与TalkingData合作搭建的指标系统投入生产之后,其使用率达到了80%以上,有效地帮助产品、运营各线完成了数字化运营的策略制定到落地实施。蒋愉指出,在推进该平台的使用过程中,国海证券通过OKR指标分解和领导层驱动提升了用户使用指标体系平台的频率,通过数据人员对指标价值的案例梳理和演示让大家进一步理解指标价值和应用方法,并通过收集客户需求及敏捷迭代提升了用户体验。

MarkdownTalkingData证券行业咨询总监 赵博

TalkingData证券行业咨询总监赵博从多年证券行业数据运营实战角度,分享了证券行业数字化运营体系建设的思路和案例,主要覆盖券商互联网转型、数据化运营体系建设思路、数据智能平台三大方面。赵博认为证券行业流量已趋于饱和,大型券商仍在跑马圈地布局年轻人群;中小型券商急于在同质化的服务中寻求自己的差异,投资者教育会是新的流量来源。市场上逐渐出现了产品、功能、内容满足客户所有需求的产品,行业垄断态势逐步显现。通过运营平台的建设完成精准服务、提升客户粘性成为未来主旋律。

赵博提出,指标体系是指导运营的底盘,应从指标体系中挖掘用户动向、探索运营场景,并反馈回指标体系持续监控形成业务闭环。有效的指标体系能够连接前端互联网行为数据和后端商业需求,数据运营是全局概念,是数据、运营、产品、推广等部门的多方协作,是一个全策全力的作战体系。证券公司需要建立数据运营和营销中台、以客户为中心进行数据化运营,具备同互联网企业一致的数据运营能力,将流失预测模型与客户体系分类有机结合,使数据和营销产生联动,让营销结果最大化。 Markdown广发证券大数据总监 王永强博士

华南地区领先的证券公司广发证券出席了本次研讨会。广发证券大数据总监王永强博士以“大数据和人工智能助力证券业务创新”为主题,结合自身互联网巨头和证券行业的从业经验,分享了人工智能和大数据发展趋势和广发证券的实践。 王永强博士指出,人工智能在国外的券商业务中已经有典型的应用场景,并从智能证券业务、智能监管以及数据化运营三方面显示了其巨大的价值和潜力。广发证券通过建立数字化平台和大数据平台,展开不同维度的数据分析和与模型分析,利用用户画像和指标分析来完善客户综合体系评估,实现公司的数字化运营能力的提升。最后王永强博士从损益、诊断、风控等多个方面介绍了广发证券在大数据和人工智能方向的探索。

MarkdownTalkingData高级产品总监 刘彬

在接下来的分享中,TalkingData高级产品总监刘彬指出数字化运营已经成为现今互联网业务或偏向互联网业务的核心方法论。现有交易类APP已无法满足O2O的传播和时效性,证券行业数据体量的消化能力、数字化处理能力都亟待提升, 未来需要从用户概念、场景(情景)感知、营销及归因、分析诊断四大方向着手,通过数据的驱动做到自动化业务的闭环。刘彬表示TalkingData的AE系列产品和数字营销闭环平台是为证券行业数据运营开发设计,可以作为证券行业的数据运营和营销的中台,洞察用户行为,优化产品功能,建立营销场景,分析营销活动的ROI,迭代营销方案,实现数据营销闭环。利用数据和模型进行数据试验,不断尝试、试错、总结、学习,最后完成精细化运营。

MarkdownTalkingData首席布道师 鲍忠铁

会议的主持人TalkingData首席布道师鲍忠铁则在分享中强调了数据增长对于企业的重要意义,他提出了证券行业数据增长的组织建设、工具建设、体系建设、数据增长营销平台建设的方法和建议,并总结了证券行业数据增长的八条经验:

  • 数据增长是个系统工程,必须所有团队参与,领导全力支持;
  • 产品是数据增长的基础,产品优化是数据增长首要任务;
  • 多次数据实验才可以形成标准营销方案,经验需要延续;
  • 电商的五次曝光理论仍然成立,单个用户的营销推送不要超过5次/天;
  • 初次数据实验的成功率在三分之一,转化率为1%是一个可以接受的结果;
  • 场景(事件)营销的转化率最高,业务规则和模型应用同样重要;
  • 指标建设是数据增长的基础工作,指标分析的目的 是from insight to action;
  • 营销中台是数据增长和提高产能的有效工具,建立自我强化的闭环。

研讨会上设置了问答环节,证券行业的同仁积极向演讲嘉宾提出疑问、进行互动,深入讨论了证券行业数据运营中的实际困难和解决方法。TalkingData今后也将继续举办此类活动,分享行业实战经验,与企业共同探索、携手成长。

Markdown

简明数据科学 第五部分:多元回归模型

Markdown

作者:张永超

上一节中,我们讨论了费尔南多的故事,一个数据科学家想买一辆车,于是他构造了一个车辆的价格和发动机大小的简单的回归模型来预测。

Markdown

费尔南多创建的回归模型预测了基于发动机大小的车辆价格。仅使用一个自变量来预测因变量的模型。

该简单的线性回归模型可以被表示为:

price = β0 + β1 x engine size

Markdown

按照最终的模型结果,车辆的价格可以被简单预估为:

price = -6870.1 + 156.9 x engine size

该模型从两方便进行评估:

  • 健壮性 – 使用假设检验
  • 准确度 – 使用确定系数例如R平方检验
  • 回想一下,R平方的度量解释了模型预测值与真实值之间的平均方差分数,位于[0,1]之间,越高的分值表示该模型能够更好的解释方差。而费尔南多的模型最终的到的R平方为0.7503,也就是在训练集上得到75.3%的分值,预示着该模型可以解释超过75%的变化。

然而,费尔南多想要更好的结果。

他考虑到: 如果我可以用更多的数据来送给模型?它会提高准确性吗? 于是,费尔南多决定通过给模型提供更多的输入数据,即更多的自变量来增强模型。他现在进入了多变量回归模型的世界。

基本概念 线性回归模型提供了一个监督学习的简单方法,其简单但是有效。

回想一下,线性意味着如下的含义:数据点几乎排列在一条直线或者近乎直线的附近,并一直延伸。线性表明,自变量和因变量之间的关系可以用直线来表示。

直线的方程式是y = mx + c,其中一维是y轴,另一维是x轴,可以在二维平面上绘制出来:

Markdown

如果将这种关系进行泛化,则得到:

y = f(x)

其意思是:将y定义为x的函数。例如将自变量定义为独立变量的函数。

如果因变量需要用一个以上的自变量来表示呢?广义函数变为:

y = f(x, z)

即将y定义为一些函数或者组合多个参数的函数。

此时便是三维的了,包含x轴、y轴、z轴,绘制出来类似下图:

Markdown

现在,我们有多个维度,我们需要将y定义为组合x和z的函数。

对于简单线性回归模型来说,直线表示y是x的函数,现在我们有一个额外的维度z,如果将z附加二维平面会发生什么呢?它会变成一个平面。

Markdown

该平面是将y表示为x和z的函数。推断线性回归方程,可以表示为:

  • y = m1.x + m2.z+ c
  • y是因变量,即需要评估和预测的变量
  • x是第一个自变量,即可控的变量,也是第一个输入
  • m1是x的斜率,决定了线x的倾斜角度
  • z是第二个自变量,即可控的变量,是第二个输入
  • m2是z的斜率,决定了线z的倾斜角度
  • c是截距,当x和z为0时确定y值的常数 这是多元线性回归模型的起源,有多个输入变量用于估计目标,具有两个输入变量的模型可以表示为:

y = β0 + β1.x1 + β2.x2 + β3.x3

多变量回归模型的广义方程可以是:

y = β0 + β1.x1 + β2.x2 +….. + βn.xn

模型构建

现在熟悉多元线性回归模型的概念,让我们回到费尔南多。

费尔南多向他的朋友伸出更多的数据,他要求他提供有关汽车其他特性的更多数据。

Markdown

以下是他已有的数据点:

  • make: 车辆品牌
  • fuelType:所使用的动力燃料
  • nDoor:车门数量
  • engineSize:发动机大小(马力)
  • price:最终的价格
  • 他有拿到了一些新的数据点:
  • horsePower:马力
  • peakRPM:最大功率输出时的转速
  • length:车辆长度
  • width:车辆宽度
  • height:车辆高度 费尔南多现在想建立一个模型,根据附加数据点预测价格。

他制定的多元回归模型是: 根据engineSize、horsePower、peakRPM、length、width和height估算价格。

定义的函数形如:price = f(engine size, horse power, peak RPM, length, width, height)

代入多元线性方程为:price = β0 + β1. engine size + β2.horse power + β3. peak RPM + β4.length+ β5.width + β6.height

费尔南多将这些数据输入到软件统计包中,来计算和预测相关的参数,最终得到如下的结果:

Markdown

多元线性回归模型为价格估算提供以下等式:

price = -85090 + 102.85 engineSize + 43.79 horse power + 1.52 peak RPM – 37.91 length + 908.12 width + 364.33 height

模型解读

多变量模型的解释提供了每个独立变量对因变量(目标)的影响。

上述等式提供了对价格平均值的估计。每个系数的解释与所有其他预测因子保持不变。

Engine Size:如果发动机尺寸增加一个单位,则平均价格将增加102.85美元。 Horse Power: 如果马力增加一个单位,平均价格增加43.79美元。 Peak RPM:如果Peak RPM增加一个单位,平均价格增加1.52美元。 Length:如果长度增加一个单位,则平均价格下降37.91美元(长度具有-ve系数)。 Width:如果宽度增加一个单位,平均价格增加908.12美元。 Height:如果高度增加一个单位,则平均价格增加364.33美元 模型评估 该模型已建成。它被解释。所有的系数都很重要吗?哪些更重要?模型解释多少变化?

Markdown

回想关于t-stat,p值和决定系数的定义的讨论。这些概念也适用于多元回归模型。该模型的评估如下: coefficients:所有系数都大于零。这意味着所有变量对平均价格都有影响。

t-value: 除长度外,所有系数的t-value均显着高于零。对于长度来说,t-stat是-0.70。这意味着汽车的长度可能不会影响平均价格。

p-value: 除长度之外,其他变量的p值的概率非常低。长度的p值是0.4854。这意味着观察到的t-stat偶然的概率是48.54%。这个数字相当高。

回想一下关于R平方如何帮助解释模型变化的讨论。当更多变量添加到模型中时,R平方不会减小,它只会增加。但是,必须有一个平衡。经过调整的R平方努力保持这种平衡。调整后的R平方是R平方的修改版本,它已根据模型中预测变量的数量进行了调整。调整的R平方补偿变量的增加,并且只有在新术语增强模型时才增加。

调整后的R-squared:R平方值是0.811。这意味着该模型可以解释训练数据中81.1%的变化。这比以前的型号(75.03%)要好。 结语 费尔南多现在有更好的模型。但是,他感到困惑。他知道汽车的长度不会影响价格。

他想知道: 如何选择模型构建的最佳变量集?有什么方法可以选择最佳的变量子集吗?

下一节,我们将讨论变量选择方法。

相关阅读:

相关阅读:

简明数据科学 第一部分:原则与过程

简明数据科学 第二部分:统计学习的关键概念

简明数据科学 第三部分:假设检验

简明数据科学 第四部分:简单线性回归模型

数字化场景助力区域银行客户经营

Markdown

作者:TalkingData 韩娟

互联网金融的崛起,使得客户金融交易途径不再受制于网点、ATM、POS机刷卡等传统渠道。头部各大行纷纷从坐等客户上门,转向主动围绕客户生活、工作、出行等方面挖掘金融服务需求,投入大量资源、人力、成本构建了外场到内场的客户经营生态场景。

对区域银行来说,随着息差收窄、监管趋严、金融科技跨界渗透,迫于生存转型需求更加迫切。但受制于资产规模、业务区域化、资源能力等因素,一来无法像大行一样构建全面的客户经营生态圈,二来如按照大行的客户经营建设路径,必须花费大量精力去解决面临的实际问题:

  • 数据质量:相比大行而言,业务数据缺失和口径不一致等问题较为严重,而且在业务办理时,有些数据没有获取来源,质量提升没有着力点;
  • 工具能力:虽然陆续建立了大数据中心、AI研究中心等,但普遍缺乏对先进技术的理解和搭建经验,需要匹配大量专业人士和借鉴行业经验;
  • 生态场景:区域银行根植当地,熟悉区域经济环境,与当地各机构的优先合作是其优势,但如何在可控成本下找到最优的合作机构是各区域银行头疼的事情。很多城商行和农商行在自己的生态圈内有很多同质的合作机构,如本地同等规模的商超,但迫于市场费用有限以及没有有效衡量投入产出的标准,只能凭经验一家一家试错;线上场景和流量基本被BATJ互联网巨头抢占,互联网巨头为了获取价值高的客群更愿意与大行合作,留给区域银行的操作空间较少,而且对比大行需要付出更高的成本。

因此,客户经营转型中,如何利用自身有限的资源,在可衡量效果的情况下撬动较大的客户市场,是区域银行迫切需要解决问题。那么,区域银行要以较小的成本解决该问题势必要借助外部金融科技力量,同时需要精准地回答四大问题:寻找哪些目标客群?在什么场所寻找?精准匹配什么服务?在什么交互触点下提供服务且保证服务效果?

回答这些问题离不开工具及数据能力的建设和运营方式的沉淀。而数字化场景正是基于专业的工具能力,将客户、产品和交互触点进行量化,快速且轻量投入的应对以上四大问题,构建有效的客户经营路径,在成本可控情况下精准挖掘金融服务场景,真正意义上解决了区域银行当前的痛点。

如何数字化场景

数字化场景是对场景化营销的有效量化,利用数据和工具精准识别场景中的目标客群、产品/服务、触达渠道和服务策略。

Markdown

区域银行想赢得客户和未来市场,更需要将有限的资源集中在其优势区域,这与各城商行、农商行的区域金融服务定位相一致。要达成此目标,就必须深入了解和精准识别客户的金融需求场景,充分重视和利用交互行为数据。在以往的案例中,通过复购行为挖掘业务场景,对复购客群精准的短信资讯推送,留存率提升在30%以上。

No.1 行为数据助力线上客群、产品和触点差异化识别

随着客户交易行为线上转移,很多业务不在柜台面对面办理,无法第一时间知晓客户需求和体验。所以,“三端一微”的移动端行为数据便代表了其产品和体验的核心竞争力。行为端数据包含客户交易前、交易中和交易后的浏览和点击行为,可通过页面和事件埋点进行采集分析。

然而,对于区域银行,因面临客户群体偏老龄的问题,对移动端渠道不敏感,天然认为线上用户量较少,但实际是线上用户量可观。原因在于实际老龄客群会由客户经理帮助做线上操作,而剩余部分才是真正线上用户。在某一实际案例中,在对手机银行用户行为数据分析时,发现活跃客群中有将近50%的行为信息是由客户经理操作,且客群年纪偏大。因此,线上行为数据的分析可按照两类客群进行。

真正线上用户,是区域银行未来的潜力客群,对其金融需求和用户体验的了解,依赖于线上渠道的行为数据。通过使用APP中点击按钮和浏览页面数据,并通过时间、渠道、交易方式、地理位置等维度分析,可真实反映客户偏好哪些产品、哪些活动、哪些优惠措施、以及线上触点时间和触发事件等。

例如,可以通过分析APP的点击热力图、留存时间、打开次数等行为数据,来了解客户偏好功能和偏好程度,可做前置性服务预测。如历史有购买理财产品、近期多次浏览过理财购买页面的客群,可作为理财产品售卖的Top1的潜在转化人群。在某一城商行案例中,该类客户成为新理财客群的实际转化率在30%左右。通过分析客户访问频次、访问时段、访问事件、交易频次、交易周期,交易业务类型、参与活动类型,明确客户与移动端渠道的固有交互触点,形成线上客群的产品/服务层级、交互触点细粒度以及触发策略。如:在中午12:00-13:30推送短信活动信息或者APP内活动信息,比上午9:00-10:00期间推送的有效触达率提高一倍。此外,地理位置分布统计,能够较为精准地知道已有客群在分/支行网点的周边分布情况,从而对于各分/支行特色的产品/服务可以直接推送APP内消息、短信触达或引流至线下场所。

对于代操作客群,本身不是移动端敏感客户,主要对其偏好办理的业务品类和交互触点规则进行分析,从客户经理代操作的周期、频次、业务类型,对该群体进行产品/服务分级和交互触点(网点位置、到访时间、办理业务类型)预判。如新上线一款理财产品,希望在网点做活动售卖,可以根据客群的经常办理业务类型、网点位置、到访时间进行活动位置和时间设计,活动触达客户群体数量可以提高1~2倍。

基于行为数据分析的公认价值,是针对产品迭代和用户体验提升。对区域银行而言,受制于产品同质性化、业务流程合规性,可撬动资源有限,无法像大行和互联网巨头一样以多样性、收益高、效率快作为竞争优势。所以,与交易数据相比,有些弱相关关系的行为数据的作用更多在于,帮助线上/线下渠道进行客群分层前置性服务趋势判断。

当然,了解真正线上用户的客户体验和产品差异性偏好同样具有重要意义,是区域银行为未来潜客更好提供服务的基础衡量标准,必须要重视起来。

No. 2 发力线下优势精准挖掘线下渠道场景和交互触点

区域银行优势在于覆盖地方区域,且网点分布较多,尤其是乡镇地区布点广泛。区域银行大量客群居于线下,那么线下客群如何洞察?合作资源如何有效选择?交互触点有哪些不同?回答了这些问题就能解决如:区域银行信用卡冷启动发卡,即使是虚拟卡发行,最有效的触达方式依然是线下MGM活动方式,但投入了大量的成本和资源,该如何选择活动区域、如何设计活动激励措施、什么时段开展、怎么定位客群、后续转化如何监测等问题。

  • 线下客群洞察

可以采用特定区域地理围栏、入口处安装WiFi探针、人脸识别设备等方式采集线下客群数据,将线下客群行为数据化:如明确定义出何时到访、办理何种业务、出入频次、参与线下活动类型、生活消费需求触点等。结合一方交易数据,基于产品/服务偏好、常出入场所、喜欢的触点渠道和营销激励,形成线下to线上经营的闭环路径。

如某农商行的真实案例中,利用所覆盖区域市民的公交出行普遍需求,在其手机银行端上线了优惠出行的服务产品:通过APP端电子公交卡支付公交车费,可享受大力度额优惠,同时还配有抽红包等活动,这次活动在3个月左右时间将手机银行用户量从30W左右增加到60W。这就是一个很好的结合线下人群出行需求洞察+线上支付+区域资源的场景,场景定位好后并没有用特别高大上的启动营销活动,而是由客户经理到公交站派发产品宣传单。所以,线下客群洞察能够支撑丰富并量化场景定义中交互触点,例如购买线上流量、出行服务、教育缴费等触点,并可以通过客群画像量化哪些触点优先有效。

  • 线下合作场选择

通过对各网点、合作商场、商户、超市、覆盖社区、学校等场所的客流行为轨迹、客流画像、网点交叉区域、周边配套设施(如社区类型、交通枢纽等)、竞品情况等进行量化打分,同时结合历史线下营销活动类型、效果信息,给出各合作机构的选择画像(如下),进而对后续营销活动选择区域、预估目标客群、营销产品匹配提供衡量标准。

Markdown

Markdown

真实的活动场景中,区域银行往往是活动举办完成后,才能发现A商场比B商场带来的客户转化高,其实完全可以基于已成熟的算法工具(如上),输入要合作商场位置和历史活动信息,输出评分值和洞察画像,预测投入产出效果和转化客户群体目标数量,一方面指导活动目标设计;另一方面在落地合作场所选择上提供有力的依据。

No.3 线上线下数据链路建立数字化场景运营体系

通过线上、线下行为数据和业务数据的打通,进行数字化场景的定义。定义场景中,业务侧数据主要定义客群特征和业务周期、产品/服务差异匹配;行为侧数据则为交互触点定义提供依据,如:固定缴费行为、触发活动事件(生日事件、开学事件、社保缴纳等)、常出入场所等。

定义过程可参考如下示例,对区域银行中等资产的中年人群:基础金融服务(消费支付、缴费、转账、短期储蓄等),以线上渠道为主,结合线下活动触发辅助;中端金融服务以线下事件触发为主,转线上服务。

Markdown

但要真正实现数字化场景构建,离不开工具搭建和数据能力补充,需要有支撑线上、线下行为数据获取分析、与业务数据打通、客群视角场景定义、合作场选择、转化活动事件效果跟踪等的平台工具和经营体系。如下所示:通过搭建线上/线下数据采集、分析和效果跟踪工具,构建客群场景化经营体系,实现手机银行APP客群+线下网点接触+线下活动转化的经营场景路径。

Markdown

No.4 区域银行该如何做?

通俗的讲,建立数字化场景运营体系首先是采集到用来量化场景的数据,其次是将各类数据串连起来构建有用的场景,最后是对场景落地效果进行监测和迭代。整体建设路径可以分两部分进行。

一是线上/线下运营平台并行建立:实现产品、客群、交互触点的行为量化数据采集和运营体系的建立。

TalkingData移动统计分析平台,采用SDK方式实现对手机银行、直销银行、微信银行等线上平台从访客、到用户再到客户的全行为周期交互数据的采集和分析,同时嵌入3A3R的互联网运营指标衡量体系和场景洞察方式。实现从行为数据侧识别场景,沉淀量化运营指标。

区域银行传统经营区域更接近客群,地域性情感认同更高,对线下运营需求高,通过客流运营平台/智选搭建,对到网点客流的人本行为交互数据进行采集,实现对线下网点运营能力的监测、合作场所洞察选择和客群线下交互触点的捕捉量化能力。

二是线上与线下链路打通,搭建场景定义和落地效果监测工具,并建立行之有效的运营体系。

以设备TDID+客户标识ID作为打通线上/线下业务和行为交互数据的关联纽带,形成全渠道视角的用户运营平台,利用标签的形式有效地给场景定义提供了量化的客群构建、产品/服务匹配和触点结合。

区域银行客群体量与大行相比差距并不大,以大体量农信来说,线上客群可以高达600W左右。为了基于定义的场景快速的落地获客/活客,应搭建营销闭环平台,从业务视角实现各类活动流程可视化设计、活动目标设定、多活动并行实施、活动效果监测和迭代。

此外,基于多年的行业经验,TalkingData已有成熟的客户经营闭环体系,能够帮助团队快速搭建运营体系,形成客户构建-场景定义-活动设计-效果跟踪迭代的场景落地路径。

总体而言,区域银行不适合模仿大行或互联网巨头砸重金挖掘场景,也不适合简单模仿较好区域银行的场景,而是应该结合其区域化的金融服务优势和客群特征,以数据驱动和工具利用构建有效的、差异化的线上线下融合场景,做好区域客户经营,提升业务目标。希望通过本文的分享能够给大家提供一些解决问题的思路。

推荐阅读:

券商转型互联网财富管理的三大核心方向

智慧商业,数据之选

证券行业移动App行为数据研究的商业价值

Markdown

重磅丨2018世界杯热点报告

作者:TalkingData

刚刚结束的俄罗斯世界杯为全世界球迷带来了四年一度的足球狂欢。与往届世界杯相比,移动直播应用的参与为球迷观看比赛提供了新的平台,而看球时点一份外卖则成为了很多球迷夜宵的新选择。在《2018世界杯热点报告》中,TalkingData与美团、网易新闻合作,盘点本届世界杯对于移动应用的影响,描绘移动直播平台观赛人群画像,梳理世界杯下的球迷生活变化。

Markdown

世界杯开赛刺激移动直播应用用户增长

作为2018俄罗斯世界杯中国地区转播版权方,央视旗下两款直播应用——央视影音、CCTV5在世界杯开赛后迎来用户数迅猛增长,CCTV5应用周覆盖指数连续两周增速超过50%,而新媒体版权方咪咕视频应用周覆盖指数增速同样超过10%。

在开赛两周后,世界杯直播应用周覆盖指数告别快速增长,用户规模趋于稳定。

Markdown

广告虽然略显洗脑但是有用

本届世界杯的一大热点话题是移动应用也玩起了洗脑广告无限轰炸的套路,知乎、马蜂窝旅行、Boss直聘都在世界杯转播中进行了广告投放。虽然广告内容引发吐槽,但是大规模的广告投放对于应用用户增长仍然起了正面作用,三款应用周覆盖指数整体保持正增长态势。

Markdown

冷门迭出引爆关注,日本队自带流量

德国、西班牙两队分别爆冷输给韩国、俄罗斯的对决是半决赛前最受关注的比赛,两场比赛战报在网易新闻客户端中浏览量最高。日本队虽然止步十六强,但其击败哥伦比亚的比赛位居赛事关注度第三,而出局后整洁的更衣室又引发网友大讨论,关于日本队更衣室的讨论在世界杯新闻内容中热度最高。

Markdown

85后、90后男性是世界杯观赛人群主力

在俄罗斯世界杯移动端观赛人群中,26-35岁男性是占比最高的群体。足球仍然是男人的浪漫,世界杯观赛球迷人群中男性占比是女性人群的2.5倍。年龄分布中,26-35岁人群占比为49.9%,构成了观赛人群的主体。

Markdown

OPPO、vivo是世界杯观赛人群最常用安卓品牌

在世界杯观赛人群安卓设备品牌分布中,OPPO、vivo、华为居于前三位,OPPO、vivo品牌占比合计超过48%。安卓设备价格分布中,100-1999元是最受世界杯观赛人群欢迎的设备价位。

Markdown

德国队三十年老球迷占比最高

在阿根廷、巴西、德国等强队观赛人群中,英格兰队、巴西队最受女球迷青睐,法国队最受“钢铁直男”球迷欢迎。在各年龄段偏好中,19岁以下年轻球迷更喜欢西班牙、英格兰,而46岁以上老球迷更偏爱德国、巴西这两支传统豪强球队,86年的桑巴军团、90年的德意志战车是老球迷们永远的美好回忆。

Markdown

英格兰、法国比赛观众消费娱乐更为活跃

除视频、通讯社交外,游戏、金融理财、餐饮等类别应用在英格兰、法国比赛观众中覆盖率要高于其他球队。而在线下消费中,英格兰、法国比赛观赛人群在各消费类别中的活跃度也要明显高于其他球队观赛人群。

Markdown

搜索热度:看球、彩票、世界杯等关键词搜索量大涨700%+,毛豆、啤酒搜索量上涨超过40%,酒吧成为最热看球场所

Markdown

在家看球:比赛时段内送往住宅楼的外卖订单较平日上涨18%,男生最爱点炸鸡、烤串,女生则偏爱小龙虾、卤味

Markdown

梅西、内马尔等超级球星比赛的场次,夜间外卖较平日上涨17%

Markdown

酒吧看球:酒吧订单较平日上涨15%,清吧最受消费者欢迎,订单较平日增加18%

Markdown

出行+消费:世界杯期间,夜间周末出行订单较平日上涨18%,去往酒吧、KTV等娱乐场所的订单上涨14%

Markdown