技术专栏丨深入解释决策树回归器

无论是在Kaggle这类竞赛中,还是商业环境,决策树回归器都已经是最常用的机器学习算法之一。决策树可用于分类和回归问题。本文介绍了决策树回归器算法以及一些高级话题。

目录

  • 介绍
  • 重要术语
  • 它是如何工作的?
  • 如何为决策树拆分决策?
  • 问答
  • 什么时候不用?
  • 优点和缺点
  • 避免过度拟合的技巧
  • 决策树与随机森林
  • Sklearn决策树的超参数
  • 基于树的模型VS线性模型
  • 决策树模型的可视化
  • 结论
  • 参考

Photo by Todd Quackenbush / Unsplash-

简介

决策树可以用以下要点概括:

  • 决策决策树是使用一组二进制规则来计算目标值的预测模型
  • 每个个体树都是一个简单的模型,有分支,节点和叶子

重要术语

在深入研究之前,让我们看一下决策树的基本术语:

  • 根节点:它代表整个总体或样本,并进一步拆分为两个或更多个同类集。
  • 拆分:将节点划分为两个或更多个子节点的过程。
  • 决策节点:当子节点分裂成更多的子节点时,它被称为决策节点。
  • 叶子/终端节点:不拆分的节点称为叶子或终端节点。
  • 剪枝:删除决策节点的子节点,此过程称为剪枝。可以认为是拆分的反过程。
  • 分支/子树:整个树的子部分称为分支或子树。
  • 父节点和子节点:划分出子节点的节点称为子节点的父节点,而子节点是父节点的子节点。

它是如何工作的?

决策树通过向数据提出一系列问题来实现估计值,每个问题都会缩小可能值的范围,直到模型足够自信地进行单个预测。问题的顺序及其内容由模型决定。此外,提出的问题都是真/假的形式。

这有点难以掌握,因为它不是人类自然思考的方式,也许显示这种差异的最好方法是创建一个真正的决策树。在上述问题中X1,X2是两个特征,它们允许我们通过询问真/假来对目标变量y进行预测。

对于每个真/假的答案,都有单独的分支。无论问题的答案如何,我们最终都会实现一个预测(叶节点)。从顶部的根节点开始,然后在树中继续回答问题。所以给出任何一对X1,X2。

我应该提到的决策树的一个方面是它实际是如何学习的(如何形成’问题’以及如何设置阈值)。作为监督机器学习模型,决策树学习将数据映射到训练模型构建的输出上。

在训练期间,模型将拟合任何与问题域相关的历史数据,以及我们希望模型预测的真实值。该模型将学习数据和目标变量之间的关系。

在训练阶段之后,决策树产生类似于上图所示的树,计算最佳问题以及要求的顺序,以便能够进行最准确的估计。当我们想要进行预测时,应该向模型提供相同的数据格式。预测将是基于训练过的训练数据集产生估计值。

如何为决策树拆分决策

制定拆分的策略会严重影响树的准确性。对分类和回归树来说决策标准不同。决策树回归器通常使用均方误差(MSE)来决定将节点分成两个或更多个子节点。

假设我们正在做二叉树,算法首先会选择一个值,然后将数据拆分为两个子集。对于每个子集,它将分别计算MSE。树将会选择具有最小MSE值的结果的值。

让我们来看一下Splitting如何决定决策树回归器的更多细节。创建树的第一步是创建第一个二元决策。你打算怎么做?

  • 我们需要选择一个变量和要拆分的值,以使两个组尽可能彼此不同。
  • 对于每个变量,对于该变量的可能值的每个可能值,查看哪个更好。
  • 如何判断它是否更好?取两个新节点的加权平均值(mse * num_samples)。

那么我们现在有:

  • 一个表示拆分的效果的数字,是两组创建的平均平方误差的加权平均值。
  • 找到最佳拆分的方法,即尝试每个变量和该变量的每个可能值,并查看哪个变量和哪个值为我们提供了最佳得分的划分。

这是创建决策树回归器的全部内容,并且当满足一些停止条件(由超参数定义)时将停止:

  • 达到要求的限制时(例如max_depth)。
  • 当你的叶子节点中只有一项(可能没有进一步划分,训练的MSE将为零,但是对其他数据集可能会过度拟合 – 不是一个有用的模型)。

问答

是否有划分成3组的情况?

没有必要在一个级别上进行多次划分,因为您可以再进一步拆分它们。

它是如何进行预测的?

给定一个数据点,您可以在整个树中运行它,询问真/假,直到它到达叶节点为止。最终预测是该叶节点中因变量的值的平均值。

因为我们尝试了每个变量和每个变量可能的值来决策一个拆分。训练的计算成本会很高吗?

在这里,我们要记住,当今计算机的CPU性能是以千兆赫兹来衡量的,即每秒数十亿个时钟周期,它有多个核心,每个核心都有一个称为单指令、多数据(SIMD)的东西,它可以一次对每个核心进行8次计算。此外,如果您使用的是GPU,那么这个过程会更快,因为它的性能是以teraflops来衡量的,所以每秒要进行数万亿次浮点运算。所以,这就是设计算法的地方,仅仅是人类很难意识到,考虑到当今计算机的速度有多快,算法应该多么愚蠢。总而言之,有相当多的操作,但是每秒数万亿次的速度几乎注意不到。

每个节点的MSE计算哪个底层模型?

基础模型只是数据点的平均值。对于初始根节点,我们只是预测了所有训练数据点的因变量平均值。另一个可能的选择是不用平均数来使用中位数,或者我们甚至可以运行一个线性回归模型。我们可以做很多事情,但在实践中,平均值非常有效。它们确实存在在随机森林模型中,其中叶节点是独立的线性回归,但应用并不广泛。

给定相同的数据和超参数,深度为n的DT将包含深度为n-1的DT?

因此,如果我们创建一个深度为3的树和另一个我们摆脱最大深度的树,那么没有最大深度约束的树将包含深度为3的树。这假设数据和超参数将是相同的并且没有添加随机性(更深的树将包含不太深的树)。

什么时候不使用?

如前所述,如果提供给划分预测的数据与训练数据无关,决策树将无法做出准确的预测。让我们用一个例子来证明这个论点:

import numpy as npimport matplotlib.pyplot as pltfrom sklearn.tree import DecisionTreeRegressorx = np.linspace(0,1)y = x + np.random.uniform(-0.2,0.2,x.shape)plt.scatter(x,y)复制代码

我们现在要构建一个决策树模型,这实际上是一个时间序列问题。所以我打算将左侧部分作为训练集。并将右侧部分作为我们的验证集。

# train, validation set splitx_trn, x_val = x[:40,None], x[40:,None]y_trn, y_val = y[:40,None], y[40:,None]# fit a modelm = DecisionTreeRegressor(max_depth=6).fit(x_trn, y_trn)复制代码

请注意,决策树回归器期望二维数组,而不是二维数组中的一维数组。

我们现在绘制结果:

plt.scatter(x_val,m.predict(x_val),color='blue',label='Prediction') plt.scatter(x_val,y_val,color='red',label='Actual') plt.scatter(x_trn,m.predict(x_trn),color='blue') plt.scatter(x_trn,y_trn,color='red') plt.legend(loc='upper left')复制代码

如果您不知道决策树如何工作,那么这将使模型无用。换句话说,决策树和基于树的模型通常无法推断出他们以前从未见过的任何类型的数据,特别是未来的时间段,因为它只是平均它已经看到的数据。

简而言之,决策树和基于树的模型一般只做一个聪明的最邻近法。

在这种问题中,任何基于树的算法都没有用,首选模型是神经网络或线性回归模型。原因是当你想要使用一个模型,而它有一个函数或者形状,它可以很好地进行外推。

决策树的一个主要缺点是它们容易过度拟合。这就是为什么很少使用他们,而是使用其他基于树的模型,如随机森林和XGBoost。

总之,决策树和通用基于树的模型是一种监督学习算法(具有预定义的目标变量),主要用于分类问题。如上所述,当且仅当目标变量位于训练数据集中值的范围内时,它们才用于回归问题。

决策树的优缺点

 

优势

  • 它可用于分类和回归问题有时间做的好一点。
  • 易于理解,解释,可视化。
  • 在数据探索中很有用:决策树是识别最重要变量和两个或多个变量之间关系的最快方法之一。借助决策树,我们可以创建新的变量/特征,这些变量/特征具有更好的预测目标变量的能力。
  • 需要更少的数据准备:它不受异常值和缺失值的影响。
  • 数据类型不是约束:它可以处理数值和分类变量。
  • 非参数方法:决策树被认为是非参数方法。这意味着决策树没有关于空间分布和分类器结构的假设。
  • 可以捕获非线性关系。

劣势

  • 过拟合:过拟合是决策树模型最实际的难点之一。通过设置模型参数约束和剪枝(下面详细讨论)可以解决这个问题。
  • 不适合连续变量:在处理连续数值变量时,决策树在对不同类别的变量进行分类时会丢失信息。
  • 无法推断。
  • 决策树可能不稳定:数据的微小变化可能导致生成完全不同的树。这称为方差,需要通过bagging 和 boosting等方法降低。
  • 无法保证返回全局最优决策树。这可以通过训练多个树来弥补,其中特征和样本随替换而随机取样。

避免过度拟合的技巧

通常,您可能会发现您的模型与数据过度匹配,这通常会在引入新数据时损害模型的性能。如果决策树没有限制集,它会在训练集上给你一个零MSE,因为在更糟的情况下,它最终会为每次观察生成一个叶子。因此,在训练决策树时,防止过度拟合非常重要,可以通过以下方式进行:

  • 设置树大小的约束(微调超参数)
  • 树剪枝
  • 使用随机森林

让我们简单地讨论这些方面。

设置树的约束

这可以通过微调树的一些超参数来完成。首先,让我们看一下决策树的一般结构:

通过了解树建模中使用的参数的作用,可以帮助您在R&Python中更好地微调决策树。

节点拆分的最小样本

  • 定义要考虑拆分的节点中所需的最小样本数(或观测值)。
  • 用于控制过度拟合。较高的值会阻止模型学习与树选择的特定样本高度特别的关系。
  • 太高的值会导致欠拟合,因此应该小心微调。

终端节点的最小样本(叶子)

  • 定义终端节点或叶子中所需的最小样本(或观察值)。
  • 用于控制过度拟合,类似于节点拆分的最小样本。
  • 太高的值会导致欠拟合,因此应该小心微调。

树的最大深度(垂直深度)

  • 用于控制过度拟合,因为更高的深度将使模型学习特定样本的关系。
  • 太高的值会导致过度拟合,因此应小心微调。

拆分需要考虑的最大特征

  • 搜索最佳拆分时要考虑的特征数量。这些将是随机选择的。
  • 根据经验法则,特征总数的平方根非常有效,但我们应该检查特征总数的30-40%。
  • 较高的值可能导致过度拟合,但取决于具体情况。

树剪枝

如前所述,设置约束的技术是一种贪婪方法。换句话说,它将立即检查最佳划分并向前移动,直到达到指定的停止条件之一。

决策树算法中出现的问题之一是最终树的最佳大小。太大的树存在过度拟合训练数据的风险,并且很难推广到新样本。小树可能无法捕获有关样本空间的重要结构信息。但是,很难判断树算法何时应该停止,因为无法判断添加单个额外节点是否会显着减少错误。这个问题被称为地平线效应。一种常见的策略是扩展树,直到每个节点包含少量实例,然后使用剪枝来删除不提供其他信息的节点。

剪枝应该减小学习树的大小,而不降低交叉验证集测量的预测精度。在用于优化性能的测量中,有许多不同的剪枝技术。

最简单的剪枝形式之一是减少错误剪枝。从叶子开始,每个节点都用其平均值替换。如果MSE不受影响,则保留更改。虽然有点天真,但减少错误剪枝具有简单和迅速的优点。

使用随机森林

似乎没有多少人真正花时间去剪枝决策树或进行微调,而是选择使用随机森林回归器(决策树集合),它比单个优化树更不容易过度拟合,性能更好。

决策树与随机森林

在随机森林上使用决策树的常见论点是,决策树更容易解释,您只需查看决策树逻辑即可。然而,在一个随机森林中,您不需要研究500个不同树的决策树逻辑。

同时,随机森林实际上是决策树的集合,这使得算法对于实时预测来说缓慢且无效。一般来说,RF可以快速训练,但是一旦训练开始就会很慢地创建预测。这是因为它必须对每棵树进行预测,然后进行平均以创建最终预测。(解决方法可以是同时使用不同树的集群)

更准确的预测需要更多的树,这会导致模型变慢。在大多数实际应用中,随机森林算法速度足够快,但在某些情况下,运行时性能是很重要的,所以会首选其他方法。

最后,决策树确实存在过度拟合问题,而随机森林可以防止过度拟合,从而在大多数情况下得到更好的预测。这是随机森林回归模型事实的一个显著优势,使其对许多数据科学家更具吸引力。

Sklearn决策树的超参数

min_samples_leaf :int,float,optional(default = 1)

它是我们上面讨论的终端节点的最小样本数。

  • 如果是int,则将min_samples_leaf视为最小数字。
  • 如果是float,则min_samples_leaf是一个百分比,ceil(min_samples_leaf * n_samples)是每个节点的最小样本数。

min_samples_split:int,float,optional(default = 2)

它是我们上面讨论的节点拆分的最小样本。

  • 如果是int,则将min_samples_split视为最小数字。
  • 如果是float,则min_samples_split是一个百分比,ceil(min_samples_split * n_samples)是每个拆分的最小样本数。

max_features:int,float,string或None,optional(default =“auto”)

寻找最佳拆分时要考虑的特征数量:

  • 如果是int,则在每次拆分时考虑max_features特征。 – 如果是浮点数,则max_features是百分比,并且在每次拆分时都会考虑int(max_features * n_features)要素。
  • 如果是“auto”,则max_features = sqrt(n_features)。
  • 如果是“sqrt”,则max_features = sqrt(n_features)(与“auto”相同)。
  • 如果是“log2”,则max_features = log2(n_features)。
  • 如果为None,则max_features = n_features。

max_depth :整数或无,可选(默认=无)

  • 树的最大深度。如果为None,则扩展节点直到所有叶子都是纯的或直到所有叶子包含少于min_samples_split样本。

基于树的模型 VS 线性模型

实际上,您可以使用任何算法。这取决于您要解决的问题类型。让我们看一些关键因素,它们将帮助您决定使用哪种算法:

  • 如果依赖变量和自变量之间的关系用线性模型很好地逼近,线性回归将优于基于树的模型。
  • 如果因变量和自变量之间存在高度的非线性和复杂关系,树模型将优于经典的回归方法。
  • 如果你需要建立一个易于向人们解释的模型,决策树模型总是比线性模型做得更好。决策树模型比线性回归更容易解释!

让我们用一个例子证明我们在第1点和第2点的论证:

import numpy as npimport matplotlib.pyplot as pltfrom sklearn.tree import DecisionTreeRegressorfrom sklearn.linear_model import LinearRegressionplt.figure(figsize=(20,10))x = np.linspace(0,2,10000)y = 1+ 3*xplt.scatter(x,y)复制代码

我们现在要构建决策树和线性模型。我们期望线性模型完美拟合,因为目标变量与特征x线性相关。因此,我将对数据进行无序处理,将70%视为训练集,将30%视为验证。

idxs_train = sorted(np.random.permutation(len(x))[:int(0.7*len(x))])idx_test = [i for i in range(0,len(x)) if i not in idxs_train]# train, validation set splitx_trn, x_val = x[idxs_train,None], x[idx_test,None]y_trn, y_val = y[idxs_train,None], y[idx_test,None]# fit a modeldt = DecisionTreeRegressor(max_depth=3).fit(x_trn, y_trn)l = LinearRegression().fit(x_trn, y_trn)复制代码

请注意,两个模型都期望二维数组。我们现在绘制结果:

plt.figure(figsize=(20,10))plt.scatter(x,dt.predict(x[:,None]),color='blue',label='Prediction DT')plt.scatter(x,l.predict(x[:,None]),color='green',label='Prediction Linear')plt.scatter(x,y,color='red',label='Actual')plt.legend(loc='upper left')复制代码

在某种程度上,决策树试图适应 staircase。显然,在这种情况下,线性模型运行得很好,但在目标变量与输入特征不线性相关的其他情况下,DT将是更好的选择,因为它能够捕获非线性。另请参阅以下SciKit学习文档中的另一个示例:

可视化决策树模型

可视化决策树非常简单。让我们绘制上面训练过的决策树。

首先,我们需要导入一些额外的库:

from sklearn.tree import export_graphvizimport IPython, graphviz, re, math复制代码

然后我们可以简单地绘制决策树,如下所示:

def draw_tree(t, col_names, size=9, ratio=0.5, precision=3):    """ Draws a representation of a random forest in IPython.    Parameters:    -----------    t: The tree you wish to draw    df: The data used to train the tree. This is used to get the names of the features.    """    s=export_graphviz(t, out_file=None, feature_names=col_names, filled=True,                      special_characters=True, rotate=True, precision=precision)    IPython.display.display(graphviz.Source(re.sub('Tree {',       f'Tree {{ size={size}; ratio={ratio}',s)))col_names =['X']draw_tree(dt, col_names, precision=3)复制代码

如您所见,我们正在获取数据的子集,并决定进一步划分子集的最佳方式。我们的初始子集是整个数据集,我们根据规则对其进行拆分X<=1.001。然后,对于每个子集,我们执行额外的拆分,直到我们能够正确地预测目标变量,同时遵守约束max_depth=3。

结论

决策树是最广泛使用的机器学习模型之一,因为它们可以很好地处理噪声或丢失的数据,并且可以很容易地进行整合以形成更强大的预测器。此外,您可以直接看到模型的学习逻辑,这意味着它是一个非常受欢迎的模型,适用于模型可解释性很重要的领域。

感谢阅读,我期待着听到你的问题,敬请关注并快乐机器学习。

参考 

https://scikit-learn.org/stable/modules/tree.html

https://en.wikipedia.org/wiki/Decision_tree_pruning

https://stackoverflow.com/questions/49428469/pruning-decision-trees

 

作者:Georgios Drakos

本文转载自: TalkingData数据学堂

点此阅读英文原文

 

营销方案丨让广告投放品效合一,究竟需要什么能力?

​​

随着人口红利的消失,新用户获取成本不断上升,传统的粗犷式投放不再适用。用好数据,在广告投放的策略上精耕细作,控制成本、提升效果,是必然的转型方向。

但如何才能“用好数据”,又该如何“精耕细作”?能够对多源数据进行连接整合、用数据细分人群并指导投放的 DMP(数据管理平台),成为了越来越多广告主的选择。

DMP 的使用方式包括 3 大环节:1. 通过标签等方式构建人群;2. 执行投放;3. 衡量效果。

但这个过程中很容易出现一些问题:

  • 在人群构建阶段,标签和人群的选择主要靠营销人员主观判断,缺乏数据支持;
  • 构建后的人群数据包是静态的,在投放过程中,系统不断收集点击、转化数据,然而这些数据没有实时反馈回算法,无法帮助优化后续的人群策略;
  • 广告主以往营销活动中积累的曝光、点击、下载安装等历史数据,难以得到整合和利用。

为了更好的解决以上问题,帮助广告主进一步提升 ROI,2019年 TalkingData 对旗下的智能营销云(Smart Marketing Cloud,简称SMC)进行了升级,重点提升了以下 3 方面的核心能力:

一、受众洞察, 方位了解你的潜在用户

常规的受众洞察只包含性别、年龄、兴趣等基础画像数据,在 TalkingData 智能营销云中,可以从 “人口属性”、“终端属性”、“商旅分析”、“App 使用分析”、“电商行为分析” 5 大模块全面分析和洞察用户。

这里重点介绍下 “App 使用分析” 和 “电商行为分析” 模块。在 App 使用分析报告中,TalkingData 可以计算处理当前受众在 24 大类、100+ 小类的数万款 App 的覆盖率、活跃率、TGI 的情况,深入了解已有用户或潜在用户的 App 使用偏好。

报告部分截图报告部分截图

电商分析报告中,则全面的统计了当前人群的网购活跃度、购买力、消费偏好等维度的数据。

通过以上详实的数据分析,可以帮助广告主制定针对性的投放计划。

例如,某客户原计划将预算大比例投放在传统信息流广告,但通过人群的洞察和分析,发现潜在用户偏爱某种草类 App,网购活跃度上比大盘高 28%,于是调整预算,加大了 KOL 和种草类 App 的广告投入,后期效果评估,转化成本比常规投放降低了 18.7%。

二、动态人群包, 针对业务模型自动优化

广告计划如果使用了 TalkingData 旗下的 Ad Tracking 或 Brand Growth 对广告曝光、点击、落地页或 App 激活进行监测,这些互动和转化数据会自动回流至智能营销云。

经过反作弊算法等一系列处理后,系统会自动分析互动用户的人群标签,如地域、App 行为等特征属性,自动将具备相似特征的人群附加到原有的人群包中,同时会剔除掉预估 CTR 较低的人群,实现定向人群的动态优化,达到数据实时反哺算法的效果。

在实际投放中,如果同行业的广告一段时间内反复触达同一批用户,广告效果会不断衰减。通过动态优化人群包的策略,长期投放也能做到人群的鲜活。

三、数据资产管理, 数据融合发挥最大价值

数据资产模块支持批量导入广告主过去在其他平台的广告监测数据,同时支持整合 TalkingData 旗下的 Ad Tracking 和 Brand Growth 数据。无论是效果类广告主还是品牌类广告主,都可以将历史数据快速导入到智能营销云中,真正让数据成为支撑长久发展的资产,而不仅仅是工具。

数据导入后,数据之间的连接和融合才最为关键。利用 TalkingData 数据中台的处理能力,能够还原移动设备的完整生命周期历程。

还原用户真实路径后,再做营销生命周期的循环,就可以针对不同的人群,进行触达或排除投放。例如,针对过去 2 周点击过广告但未下载 App 的用户人群进行二次触达;或者拉取高活跃度的用户人群,在智能营销云中进行 Lookalike 拓展,并排除已安装用户,再进行广告投放。

在广告投放之前深入洞察潜在受众、根据受众分布选择匹配度高的标签和媒体,再结合 TalkingData 智能营销云的算法和数据整合能力,真正做好精细化投放。在营销成本不断上涨的今天,也能做到预期可控的 ROI。点击阅读原文,即可申请试用智能营销云。

干货 | 19款好用的数据挖掘工具(值得收藏)

​​来源:IFTNews来源:IFTNews

数据在当今世界意味着价值。随着向基于App的世界的过渡,数据呈指数增长。然而,大多数数据是非结构化的,因此需要一个过程和方法从数据中提取有用的信息,并将其转换为可理解的和可用的形式。

数据挖掘或“数据库中的知识发现”是通过人工智能、机器学习、统计和数据库系统发现大数据集中的模式的过程。

数据挖掘工具包括从完整的模型开发环境如Knime和Orange,到各种用Java、C++编写的库,最常见的是Python。数据挖掘中通常涉及到四种任务:

  • 分类: 将熟悉的结构概括为新数据的任务
  • 聚类: 在数据中以某种方式查找组和结构的任务,而不需要在数据中使用已注意的结构
  • 关联规则学习: 查找变量之间的关系
  • 回归: 旨在找到一个函数,用最小的错误来模拟数据

下面列出了用于数据挖掘的软件工具。


数据挖掘工具

Rapid Miner

Rapid Miner,原名YALE(Yet Another Learning Environment),是一个用于机器学习和数据挖掘实验的环境,用于研究和实际的数据挖掘任务。毫无疑问,这是世界领先的数据挖掘开源系统。该工具以Java编程语言编写,通过基于模板的框架提供高级分析。

它使得实验可以由大量的可任意嵌套的操作符组成,这些操作符在XML文件中是详细的,并且是由快速的Miner的图形用户界面完成的。最好的是用户不需要编写代码。它已经有许多模板和其他工具,让我们可以轻松地分析数据。

IBM SPSS Modeler

IBM SPSS Modeler工具工作台最适合处理文本分析等大型项目,其可视化界面非常有价值。 它允许您在不编程的情况下生成各种数据挖掘算法。 它也可以用于异常检测、贝叶斯网络、CARMA、Cox回归以及使用多层感知器进行反向传播学习的基本神经网络

Oracle Data Mining

Oracle。 作为“高级分析数据库”选项的一部分,Oracle数据挖掘功能允许其用户发现洞察力,进行预测并利用其Oracle数据。您可以构建模型来发现客户行为目标客户和开发概要文件

Oracle Data Miner GUI使数据分析师、业务分析师和数据科学家能够使用相当优雅的拖放解决方案处理数据库内的数据。 它还可以为整个企业的自动化、调度和部署创建SQL和PL / SQL脚本。

Teradata

Teradata认识到,尽管大数据是令人敬畏的,但如果您实际上并不知道如何分析和使用它,那么它是毫无价值的。 想象一下,有数百万的数据点没有查询的技能。 这就是Teradata所提供的。它们提供数据仓库,大数据和分析以及市场营销应用程序方面的端到端解决方案和服务。

Teradata还提供一系列的服务,包括实施,业务咨询,培训和支持。

Framed Data

这是一个完全管理的解决方案,这意味着你不需要做任何事情,而是坐下来等待见解。 框架数据从企业获取数据,并将其转化为可行的见解和决策。 他们在云中训练、优化和存储产品的电离模型,并通过API提供预测,消除基础架构开销。 他们提供了仪表板和情景分析工具,告诉你哪些公司杠杆是驾驶你关心的指标。

Kaggle

Kaggle是全球最大的数据科学社区。 公司和研究人员分享他们的数据,来自世界各地的统计人员和数据挖掘者竞相制作最好的模型。Kaggle是数据科学竞赛的平台。 它帮助您解决难题,招募强大的团队,并扩大您的数据科学人才的力量。

3个步骤的工作 :

  • 上传预测问题
  • 提交
  • 评估和交流

Weka

WEKA是一个非常复杂的数据挖掘工具。 它向您展示了数据集、集群、预测建模、可视化等方面的各种关系。您可以应用多种分类器来深入了解数据。

Rattle

Rattle代表R分析工具轻松学习。 它提供数据的统计和可视化汇总,将数据转换为可以轻松建模的表单,从数据中构建无监督模型和监督模型,以图形方式呈现模型的性能,并对新数据集进行评分。

它是一个使用Gnome图形界面在统计语言R编写的开源数据挖掘工具包。 它运行在GNU / Linux,Macintosh OS X和MS / Windows下。

KNIME

Konstanz信息采集器是一个用户友好、可理解、全面的开源数据集成、处理、分析和探索平台。它有一个图形用户界面,帮助用户方便地连接节点进行数据处理。

KNIME还通过模块化的数据流水线概念集成了机器学习和数据挖掘的各种组件,并引起了商业智能和财务数据分析的注意。

Python

作为一种免费且开放源代码的语言,Python通常与R进行比较,以方便使用。 与R不同的是,Python的学习曲线往往很短,因此成了传奇。 许多用户发现,他们可以开始构建数据集,并在几分钟内完成极其复杂的亲和力分析。 只要您熟悉变量、数据类型、函数、条件和循环等基本编程概念,最常见的业务用例数据可视化就很简单。

Orange

Orange是一个以Python语言编写的基于组件的数据挖掘和机器学习软件套件。它是一个开放源码的数据可视化和分析的新手和专家。数据挖掘可以通过可视化编程或Python脚本进行。它还包含了数据分析、不同的可视化、从散点图、条形图、树、到树图、网络和热图的特征

SAS Data Mining

使用SAS Data Mining商业软件发现数据集模式。 其描述性和预测性建模提供了更好的理解数据的见解。 他们提供了一个易于使用的GUI。 他们拥有自动化的数据处理工具,集群到最终可以找到正确决策的最佳结果。 作为一个商业软件,它还包括可升级处理、自动化、强化算法、建模、数据可视化和勘探等先进工具

Apache Mahout

Apache Mahout是Apache软件基金会(Apache Software Foundation)的一个项目,用于生成主要集中在协作过滤、聚类和分类领域的分布式或其他可伸缩机器学习算法的免费实现

Apache Mahout主要支持三种用例:建议挖掘采取用户行为,并尝试查找用户可能喜欢的项目。 集群需要 文本文档,并将它们分组为局部相关的文档。 分类从现有的分类文档中学习到特定类别的文档是什么样子,并能够将未标记的文档分配给(希望)正确的类别。

PSPP

PSPP是对采样数据进行统计分析的程序。 它有一个图形用户界面和传统的命令行界面。 它用C语言编写,使用GNU科学图书馆的数学例程,并绘制UTILS来生成图表。 它是专有程序SPSS(来自IBM)的免费替代品,可以自信地预测接下来会发生什么,以便您可以做出更明智的决策,解决问题并改进结果。

jHepWork

jHepWork是一个免费的开放源代码数据分析框架,它是为了使用开放源代码软件包和可理解的用户界面创建一个数据分析环境,并创建一个与商业程序相竞争的工具

JHepWork显示数据集的交互式2D和3D图,以便更好地分析。 Java中实现了数字科学库和数学函数。 jHepWork基于高级编程语言Jython,但Java编码也可用于调用jHepWork数值库和图形库。

R programming Language

为什么R是这个名单上免费数据挖掘工具的超级巨星?它是免费的、开源的,并且很容易为那些没有编程经验的人挑选。实际上,有数以千计的库可以集成到R环境中,使其成为一个强大的数据挖掘环境。它是一个免费的软件编程语言和软件环境,用于统计计算和图形。

在数据采矿者中广泛使用R语言进行统计软件和数据分析。近年来,易用性和可扩展性大大提高了R的知名度。

Pentaho

Pentaho为数据集成,业务分析和大数据提供了一个全面的平台。 有了这个商业工具,你可以轻松地融合任何来源的数据。 深入了解您的业务数据,为未来做出更准确的信息驱动决策。

Tanagra

Tanagra是一个用于学术和研究目的的数据挖掘软件。有探索性数据分析,统计学习,机器学习和数据库领域的工具。 Tanagra包含一些监督学习,但也包括其他范例,如聚类,因子分析,参数和非参数统计,关联规则,特征选择和构建算法。

NLTK

自然语言工具包,是一套用于Python语言的符号和统计自然语言处理(NLP)的库和程序。 它提供了一个语言处理工具库,包括数据挖掘,机器学习,数据报废,情感分析和其他各种语言处理任务。 构建Python程序来处理人类语言数据。

本文转载自:CDA数据分析师

封面图来源于网络,如有侵权,请联系删除

营销秘技 | 卡券套路深,连接地球村

说到卡券,你以为我在跟你谈优惠?谈营销?

今天以礼品卡为例,跟大家聊一聊卡券是如何做到连接用户与用户、连接线上与线下之间关系。对了,你如果还不知道什么叫礼品卡,不妨先阅读本系列之前的文章《营销秘技丨人肉地推已经过时了,数字卡劵了解一下?》、《营销秘技|被薅羊毛还能皆大欢喜?卡劵+红包就完事儿了!》。

一个阳光明媚的午后,小明和三五姑娘约在了某知名咖啡店,找到位置请姑娘们落座之后,小明主动去点单:grande Americano、Cappuccino、Latte……没错,小明就是这么有品位。

结账选择微信支付之后,居然出现了下图的情况,身为营(pin)销(qiong)达(diao)人(si)的小明立刻意识到了这个薅羊毛的好机会,毫不犹豫的点开了小程序,果然一大波卡券扑面而来。小心翼翼的分享到了群里之后,小明立刻点了“领取优惠”,便出现下图情况。果然又是秒没了呢!仔细看了一下使用说明,小明感觉这不是一个简单的卡券分享啊……那就来分析一下背后的套路吧。

首先,该卡券的触发机制为线下支付,也就是当一个老用户进行了线下点单购买之后,再通过老用户的社交关系进行了卡券的派发。领取该卡券的用户一定是对该品牌有一定认知的,并且大概率已经是用户,领取卡券之后,限制在了该品牌的小程序(礼品卡售卖小程序)内支付抵扣。如此好的羊毛为什么不薅呢,用户一键直接打开小程序进行了下单支付,丝滑般的体验一个优惠券就实现了转化。

打通了账号、支付和社交关系的小程序(改天咱们再单独聊一聊小程序的生态体系),线上转化就是这么流畅。你以为转化完了就结束了?No no no,刚刚用户通过优惠券+支付产生了一张礼品卡,于是社交的能量再次体现出来了。当同事小红帮了你一个小忙,你该怎么办?说声谢谢有点儿不够诚恳,发个红包又显得过于物质,这个时候礼品卡便向你发出了召唤:咖啡、饮料有需要吗?这里来了解一下!

礼品卡就是如此之方便,像发红包一样直接送给小红一杯咖啡,非常合情合理有木有,又能够彰显出自己不俗的品位。然而该品牌的礼品卡只能在线下核销,于是小红同学带着这张卡券来到了该品牌的门店。熟悉该品牌的同学一定知道,店员针对到店的顾客都会询问一句——会员卡有需要吗?有优惠哦~了解一下!于是这又成为了一个拉新的过程,最后到支付的那一刻,在支付落地页又出现了领取优惠券的小程序,你说你点还是不点?

于是,套路形成闭环,小明觉着这事儿算分析的圆满了,猛然间发现,姑娘们早已走了……研究套路忽略姑娘的小明特意画下了下图,供大家参考。

经过线下支付→优惠券→小程序分享→礼品卡转化→社交传播→线下核销→会员拉新→线下支付,完成了一个套路的闭环。现在的你是不是已经不仅仅把卡券看做是优惠券,而是作为连接的承载体来看待了?

分析完卡券的案例,后面的文章再来跟大家拆解红包的应用。我是小明,一个集才华与美貌于套路中的营销小学生,咱们下篇文章再见!

未完待续

作者:TalkingData岳小明

封面图来源于网络,如有侵权,请联系删除

技术专栏丨踩坑趟雷,抉择实践,开源项目YourView诞生录

一、YourView简介

YourView是一款桌面App,使用Objective-C语言开发,基于Apple SceneKit技术框架,支持将iOS App的View结构进行远端渲染并支持3D显示模式,还能够动态显示View树结构,方便开发者对App UI进行分析和调试。

在上一篇文章《UI分析工具YourView开源—App开发者不可多得的利器!》中,我们列举了一些YourView的特性,以及项目的GitHub地址:https://github.com/TalkingData/YourView 欢迎查看,Star&Fork。

在开发YourView之前,我们也有试用过一些其他的UI分析调试工具,但是这些工具大多数是收费的,而现有开源工具在功能上又难以满足需要。因此我们干脆自行研发并开源了YourView。

二、macOS和iOS通信

在开发之初,我们一直在调研相关的技术实现。也曾经一度跑偏,认为有什么黑科技可以把iOS内存里的UI数据直接dump到macOS中,然后macOS可以直接渲染绘制,所以一直在研究XPC和进程通信。

但后来发现这条路行不通,第一,iOS和macOS分属于ARM架构和X86架构,指令集不一样,直接dump内存到不同架构的设备上是无法兼容的;第二,macOS和iOS的开发框架不同,即使能够dump出内存,还需要做大量的框架桥接代码。所以最后选择了另外一条更为直接的路,把UIView序列化成JSON字符串结构,通过网络协议传输,接收方接受JSON数据后,再反序列化成内存中的对象,然后绘制展示。

01选择哪种网络协议?

网络协议可以使用WebSocket,也可以用HTTP协议。最后选择使用了HTTP协议。原因如下:

第一,WebSocket需要server端的支持,目前OC语言并没有十分好的WebSocket server实现。

第二,这次开发不需要特别高的实时性,所以HTTP协议是一个比较好的选择,而且OC语言已经有比较好的webServer实现——GCDWebServer和CocoaHttpServer。由于CocoaHttpServer最近的维护已经是几年前了,所以我选择了维护更频繁的GCDWebServer作为通信的Server端。

02 Server应该放在哪里?

放在桌面端:由于IP无法固定,每次iOS设备启动的时候需要动态的去配置IP地址,并且如果在iOS端提供输入框或者每次动态配置代码填入IP又太不友好,违背了易用性原则,于是放弃了这个选择。

放在iOS端:在iOS App内启动HTTP Server,有被劫持的风险,如果真的做成商用软件,这样做无疑是很危险的。但是作为一个开源软件来讲,这是OK的,因为在开放的源代码面前,一切都是透明的。如果开发者想开发自己桌面端,可以加上参数校验签名等机制,提升安全性。

03自动连接还是手动连接?

自动连接:iOS提供了BonjourService。Bonjour是法语你好的意思。这里跑题多讲几句。据研究表明(其实是瞎编的),全世界人民都比较喜欢异域文字带来的新奇感,就像会有人起名叫Tony一样,英语语系的人们也喜欢起一些奇怪的德系甚至拉丁语系的名字。所以这个BonjourService,翻译过来其实就是HelloService。字面意思很好理解,就是在局域网里广而告之,和局域网里的所有人SayHello。

这个服务最大的优势就是在局域网里可以自动的获取对方的IP地址,完成通信。现在很多厂商已经内置了BonjourService,特别是打印机厂商。在macOS上则无需知道对方的IP地址,就可以自动完成连接操作,非常方便。

手动连接:所以也考虑过在iOS端开启BonjourService,而且GCDWebServer已经实现了相关的接口。但是实践证明,当在macOS上实现BonjourService Browser之后,虽然能够自动识别设备,但是面对中间的网络异常,比如防火墙导致的网络无法连接等,并没有很好地方法进行提示,在连接不上的时候很容易让人摸不着头脑、不能准确了解状况。这样对开发者其实是不友好的。由于网络只是通信的必要手段,并不是UI查看的重点,所以我们选择把更多的精力放在UI绘制上,而将网络模块尽量做得轻量易于调试,于是放弃了自动扫描的方式。

衡量之下,我们选择在YourView桌面端启动的时候,给用户提供一个IP输入框。用户在输入IP之后,点击连接,如果网络有问题会直接弹框提示。虽然技术上的自动好过手动,但是自动带来的复杂性和不确定性,以及考虑到在实践中的实际表现,最后还是选择了手动连接的方式。想来,这可能和老司机喜欢开手动档车是一样的吧,我们都喜欢操作可控带来的感觉(其实也是因为懒)。

三、UIView的序列化

如果对树的操作不熟悉,那么可以移步LeetCode,先把关于树的操作的问题敲一遍。UIView其实就是一棵多叉树。每个节点具有数据域和指针域,数据域就是自身的属性,指针域就是关系,在UIView中就是subViews。所以理解了这一点,就很容易写出序列化代码了。

01序列化方案一: 非递归平铺树

借助栈或者队列的帮助,对View树进行遍历把每个节点变成一JSONObject,然后把这些Object放到一个数组里。最后整棵树就像被拍平了一样,树变成了列表。把拍平的节点数组作为数据源,驱动TableView显示,然后根据每个节点自身的深度在对应的cell上绘制对应的缩进,用来表示树的层次结构。

这样的做法在UI中可以表现出树的层次结构,但是实际上已经丢失了树的两个重要特征,兄弟关系、父子关系。前驱后继关系丢失之后,对节点的收缩和展开操作就不太方便了。

02序列化方案二:递归关系树

 贴一段简化过的递归代码:
-(NSDictionary*)traversal{    NSMutableArray * subArr = [NSMutableArray array];    for (UIView * v in self.subviews) {        [subArr addObject:[v traversal]];    }    return @{@"sub":subArr};}复制代码

这段代码执行之后,就在JSON结构里保存了UIView的父子和兄弟关系。

03序列化中对数据域的处理

UIView对象

iOS端需要保存UIView对象,为后续的macOS端的操作(比如编辑)做准备。但是随着界面的滚动,UIView可能被释放掉。所以这里选择了用NSMapTable用来做存储容器。

存储的Key就是UIView的内存地址:

-(NSString*)_address{    return [NSString stringWithFormat:@"%p",self];}复制代码

存储的是UIView对象本身,当UIView因为离开屏幕而被释放的时候,使用内存地址取值为空,不会产生野指针。

map引用传递

稍微改造一下我们的递归函数,在递归参数中增加用来记录的map。需要注意这个map是引用传递,递归中的每次调用都指向同一个map。

-(NSDictionary*)traversalWithRecorder:(NSMapTable*)map{    NSMutableArray * subArr = [NSMutableArray array];    [map setObject:self forKey:[NSString stringWithFormat:@"%p",self]];    for (UIView * v in self.subviews) {        [subArr addObject:[v traversalWithRecorder:map]];    }    return @{@"sub":subArr};}复制代码

StepIn对象

1.UIViewController的获取

想获取一个UIView对应的ViewController,可以使用nextResponser属性,直到找到UIViewController停下。假如UIView的平均深度是10,有N个View,那么需要迭代的次数就是N*10。这样会使得时间复杂度提升,所以我们对此进行了一些优化。对于UIView,只找最近一级的nextResponder,如果这个Responder是UIViewController那么选择记录在自己的data域内,并且把这个UIViewController作为递归的参数传递到下一级,否则把递归中父节点的controller作为自己的ViewController。再次改造递归函数:

-(NSDictionary*)traversal:(UIViewController*)vc{    UIViewController * vcToNext = vc;    if ([[self nextResponder]isKindOfClass:[UIViewController class]]) {        vcToNext = [self nextResponder];    }    NSMutableArray * subArr = [NSMutableArray array];    for (UIView * v in self.subviews) {        [subArr addObject:[v traversal:vcToNext]];    }    return @{@"sub":subArr};}复制代码

2.递归

对于UITableViewCell和UICollectionViewCell也是同样的操作,在获取IndexPath的时候,也只向上找一级,否则直接从递归的参数中获取,递归的初始值是默认的section=-1,row=-1。

3.Depth和level的处理

Depth表明的是当前View所在树的深度。Depth可以从当前的View直向上找superview,直到superView为空为止。但是这样的处理也会带来和UIViewController获取同样的问题。所以这个和UIViewController一样的处理策略,每次递归的时候,把当前的depth加1,向下传递。序列化后的view属性:

无论是Depth还是level,抑或ViewController和IndexPath,它们都是从上级递归而来并且在当次递归中拼接自己的参数,所以我们选择把这些属性封装在一个StepIn对象里,并抽象出一个stepin方法。每次递归开始,StepIn对象都会根据当前的view的状态,进行相应的stepin操作。具体的代码可以参考libyourview/serializer/UIView+YVTraversel

截图的处理

由于截图需要在JSON里传输,所以需要把截图的imgData转换成base64编码的string。截图是针对layer的操作,在截图的时候,一定不能带上sublayer。所以在针对每个View进行截图的时候,需要把没有hidden的layer变成hidden状态,并保存在数组中,在截图方法调用完毕之后,需要把数组layer的hidden属性进行restore操作。

四、macOS端的渲染

桌面端一共有三个ViewController:Left、Middle和Right。其中Left负责展示树状结构,Middle负责3D展示,Right负责展示view属性。

Left

由于上文中的序列化操作已经把UIView变成了树状的JSONString,所以直接把序列化之后的string转化为NSDictionary并作为数据源驱动NSOutlineView展示就OK了。

Middle

1.使用SceneKit渲染

用平面SCNPlane来展示UIView的截图。展示的同时需要把UIView的坐标从UIKit坐标系转换到SceneKit坐标系。转换公式如下:

2. 射线检测

鼠标移动的时候需要将鼠标指向的View边框高亮,边框是当前Node的一个subNode,在被指向的时候,将前一个unhover,将当前指向的高亮。选中也是同样的道理,鼠标单击的时候,将射线击中Node的子Node的hidden属性置为No即可。SceneKit提供了类似射线检测的API,直接用point和plane调用hitTest方法,取返回结果的第0个元素即可。

3. Z轴控制

目前YourView共支持三种显示模式。现在大部分开源软件的做法是将所有View拍平之后按照深度优先的顺序每层排列一个,如果View特别多的话,会造成所有z轴特别大,在旋转的时候视觉效果很差。YourView则实现了智能回溯算法,在深度优先的基础上,递归中记录当前被占据的level和frame,每次新的view进来都会从深度优先的基础上向前回溯,一直找到第一个不被遮挡的位置。

4. 相机的选择

可以在Xcode的场景编辑器里直观的感受一下。左边是透视相机,右边是正交相机。

  • 正交相机:orthographicCamera 所见即所得,所有View的scale不随深度变化;
  • 透视相机:View近大远小。

为了更好的视觉效果,YourView选择使用正交相机用来展示View。

五、后续的优化

  • 目前YourView只实现了3D渲染,对UIView的动态编辑能力还比较弱,后续会继续完善编辑功能;
  • 在View树里增加UIViewController 手势,布局等元素;
  • UI美化工作和用户体验提升。

六、参考资料

  • Apple SceneKit:https://developer.apple.com/scenekit/
  • Bonjour:https://developer.apple.com/bonjour/

接下来,我们会进一步完善与优化YourView,为大家提供更好的使用体验,同时,也欢迎大家使用YourView(项目地址:https://github.com/TalkingData/YourView),也欢迎大家为我们提供宝贵的建议和意见,让我们一起维护这个项目~

作者:张自玉

点击直达YourView~

TalkingData发布TDShield升级品牌广告反欺诈能力

流量变现是现阶段互联网商业模式的核心,但凡和利益相关的事都少不了作弊参与其中。在利益驱动下,流量造假问题日益猖獗,逐渐演变成行业健康发展的阻碍。特别是在互联网广告行业,虚假流量使广告主蒙受巨大损失。

作为国内领先的第三方品牌广告监测平台,TalkingData Brand Growth于近日上线了品牌广告反欺诈功能——TDShield,在覆盖行业相关标准明确定义的一般无效流量(GIVT, General Invalid Traffic)和复杂无效流量(SIVT, Sophisticated Invalid Traffic)基础上,结合TalkingData独有移动大数据能力,还推出了多种定制化复杂无效流量SIVT判定机制。

一般无效流量(GIVT)

一般无效流量(GIVT)判定机制,包括了非法用户、爬虫流量、数据中心流量、无效IP、无效行为等。TDShield利用既定的名单和预设的规则,帮助广告主识别出相关无效流量。

复杂无效流量(SIVT)

复杂无效流量(SIVT)判断机制,包括了来源异常、设备信息异常、虚假激励、历史高危用户、历史高危IP等,均可通过TDShield多种标准机制排查。

在符合行业标准的基础上,结合TalkingData独有的移动大数据能力,TDShield支持广告主自定义复杂无效流量SIVT判定机制。广告主可结合自己的假量排查标准,在TDShield中灵活设置可疑流量判定阈值。例如,在一定的活动频控基础上,希望单日设备频次不超过3次,可直接在TDShield中设置设备曝光频次异常阈值为3。

除设备频次异常设置外,TDShield还为广告主提供了高频行为异常、IP频次异常等多种白盒化异常排查策略。相较于黑盒异常排查策略,白盒异常排查策略可帮助广告主在投放前和媒体达成一致,在结算时减少关于无效流量的纷争。

在上述异常策略基础上,TDShield借助TalkingData庞大的设备数据库,引入了设备等级判定服务,直接标记低等级设备带来的广告流量,将智能算法模型应用在复杂无效流量排查中,进一步提升复杂无效流量(SIVT)的监测效果。

结合以上反欺诈机制,TDShield输出异常流量相关数据报表,用于帮助广告主品牌广告投放时,识别作弊流量、分析异常媒体渠道 、控制推广成本。

解决流量造假问题,绝非朝夕之间。在TDShield致力于排查无效流量的同时,TalkingData为了推动品牌广告数据透明化、最大程度保护广告主利益,也在积极申请CMAC、MRC关于SIVT测量和验证服务的联合认证,争取为广告主提供更有价值的品牌广告监测服务。

点此申请试用TDShield

TalkingData获2019中国金融创新奖,探索NLP应用落地

近日,由《银行家》杂志社携手中国社科院金融研究所金融产品中心、中央财经大学中国互联网经济研究院共同主办的“2019中国金融创新论坛”暨“中国金融创新奖颁奖典礼”隆重举办。论坛以“改善金融供给,服务实体经济”为主题,围绕金融创新建言献策,助力中国金融机构扬帆远行,践行新时代赋予金融创新的新历史使命。

“2019中国金融创新奖”专家评审团经严格的评选程序后确定,由TalkingData增长黑客团队提交的“人工智能技术在对公市场舆情反馈应用创新案例”在本次评选中荣获“十佳金融科技创新奖”。

图:“十佳金融科技创新奖”获奖名单

在真实世界中,文本作为人类智慧的结晶和信息的载体,蕴含了大量有价值的信息。NLP(自然语言处理)作为AI(人工智能)重要的分支,也是人工智能中难度很高的领域。针对金融细分领域,NLP有多种应用场景和价值,例如帮助证券投资量化投资贡献因子、为大数据风控提供用户画像构建、并作为金融自动客服系统的关键技术等等。

目前,国内针对中文的NLP仍然处于探索阶段。TalkingData增长黑客团队和硅谷实验室一直在关注自然语言处理领域,凭借深厚的知识储备和敏感的业务嗅觉,结合金融机构在对公业务中有大量的文章分类和舆情分析等诉求,研发了两款NLP应用级产品——自动分类文章内容和情感舆情分类产品,旨在帮助金融企业在处理对公业务时提高营销精准度和服务体验,也帮助国内金融机构完整的探索了一套基于中文语言在舆情分析领域的情报系统。

TalkingData增长黑客团队负责人出席颁奖礼并领奖

获奖的“人工智能技术在对公市场舆情反馈应用创新案例”主要由TalkingData增长黑客团队的保善龑、叶子琦、任宏杰参与。TalkingData增长黑客团队隶属TalkingData金融服务创新部门,着重于帮助传统金融客户数字化转型、大数据智能营销和利用金融科技创新金融业务,为金融机构提供征信和风控反欺诈综合解决方案。

团队融合多领域人才,核心负责人拥有十年互联网和金融领域等行业背景的经验,算法工程师拥有专业的机器学习、人工智能科研与实战经验。团队曾于2017年参加京东金融全球数据探索者大赛并入选商业组前五强,此外还根据行业经验参与撰写书籍《MBA大数据》和《数据科学实战指南》,在互联网和金融领域都积累了很高的口碑。

数据加持、技术升维,品牌该如何释放“智能”红利?

“无意识但具备高度智能的算法,可能很快就会比我们更了解我们自己”,尤瓦尔·赫拉利在《未来简史》中所言已经照进数字营销领域的现实。如今,数字营销3.0时代正从之前的“移动互联”向“智能”时代迈进,漏斗理论等传统营销理论也在黯然失色,品牌与消费者的互动体验则被业界奉为圭臬。但难以辨别真假的长尾流量、相互割裂的营销工具、以及片面而粗浅的人群画像……也为品牌与消费者建立有效连接提出了挑战。

那么,品牌如何才能在不同生命周期触及目标受众,全渠道优化数字化体验,实现一站式洞察与实时管理?

个性消费时代来临,品牌营销价值落地遇挑战

如今,品牌与消费者的关系正在发生重构,品牌不再高高在上,用户的消费行为也不断打破着市场固有认知,形成“个性消费”时代。品牌无法再通过简单的人口统计学方式来界定目标人群,更无法通过传统地毯式广告轰炸和常规的营销思路来实现有效触达。所以,如何精准识别有需求的用户,使用户行为节点与品牌机会点合二为一正成为当下品牌营销中的痛点。

而痛点背后则是品牌在数字化转型过程中核心能力的缺失。一方面,品牌希望通过不断累积数据资产,来指导商业决策,提升营销效果,但随着品牌与用户沟通触达频率与颗粒度指数级提高,用户每次浏览、点击背后都会产生成千上万的数据信息,品牌常常难以依靠自身力量,完成数据打通、洞察、决策以及最终转化这一过程,这也导致无法释放数据在营销中的真正效能,实现营销价值落地。

另一方面,随着MarTech的迅猛发展,众多的营销技术工具,给品牌对接与统一管理带来了不小的难度,各家营销工具与平台相互割裂的生态体系,也为数据收集、反馈、分析、挖掘与再利用提出了难题,特别是在如今用户触点日益分散、注意力稀缺的大背景下,这两大矛盾似乎被无限放大。因此,要将数字贯穿于客户生命周期的全过程,真正实现精准触达和触动消费决策者,必须要打通整个营销生态闭环。

核心引擎引领变革,营销云赋能品牌营销新生态

据MarTech 概念创始人 Scott Brinker 每年发布的“全球营销技术图”显示,从 2011 年至 2018年,每年 MarTech 规模都保持着两位数的增长幅度,而技术不断的更新迭代,也使品牌可以通过多样化的方式来丰富自己的营销技术能力,进而驱动整个营销过程实现自动化管理,提升营销效率和营销效果。

技术的变革,也驱动了像营销云等打通营销生态闭环平台的出现,通过将不同的营销技术产品整合在一起,营销云可以实现数据、策略、技术多层面的统一部署,以及多个营销引擎、多个营销渠道的跨平台管理与优化。在这个统一的平台上,营销人员不仅可以通过一站式管理来缩短活动执行周期,还可以获得更直观、更完整的数据洞察,以前所未有的方式提升营销效率。

但与国外较成熟的营销云市场不同,国内营销云市场还处于一个上升期,各路玩家纷纷入局,竞争激烈,但大部分可以分为三类:一,国外巨头营销云,如Adobe、Oracle;二,大数据分析公司,如TalkingData;三,一些以自动化营销平台为核心的营销技术公司。不过,由于国内外的媒体环境、客户需求不同,国外巨头的营销云进入中国后常常“水土不服”,表现不尽如人意;自动化营销技术公司虽在技术方面有一定垂直优势,但缺乏数据打通和洞察能力,难以形成从数据、到应用、到转化、再到根据效果优化后续决策的完整流程,而营销云的核心与引擎就是数据的管理与应用能力,所以,大数据分析公司的营销云相比前两者有更好的适配性与更完善的功能,也常常成为品牌们的首选。

释放动力效能 营销云驱动营销”智能”进化

正如电灯的发明让我们告别了黑暗时代,汽车的发明让我们告别了步行时代,大数据与AI技术的出现则让我们告别了信息孤岛和人工化时代,迈入“智能”时代。“智能”时代的到来也使数字营销领域面临机遇与挑战,谁能在“智能”时代下完成赋能与重构,真正实现价值进化与营销能力升级,谁就能抢占市场风口与先机。因此,我们可以看到行业内不少营销云产品都在智能化方面做出了探索。其中格外重要的一点,就是如何实现用 “无意识但具备高度智能的算法,比我们更了解我们自己”。

依靠海量多源数据的整合与的前沿的AI算法模型,智能化的营销云产品现在能够帮助我们更深入、更全面、更及时的了解和刻画用户群体,更精准的匹配和触达目标用户,也提供更优质的用户体验。一方面,依托大数据和数据智能应用力,可以自动生成定制化的用户标签,还原丰富和立体的用户群体特征画像,建立目标用户群体全生命周期体系,持续提升生命周期价值;另一方面,借助先进的机器学习算法模型,还可以对人群进行多维度、多条件的交叉组合,对目标用户行为和竞品用户行为进行深度洞察,自动寻找到更多的潜在目标用户,助力新用户的触达和获取。

但在如今“不谈效果的营销都是耍流氓”的时代中,如何帮助品牌节省“那一半被浪费的广告费”、甚至“让有限的营销成本实现更高的转化效果”,才是营销云真正实现智能化的价值所在。相对于传统互联网广告漫天撒网,拼的是概率、伤的是体验,营销云要真正实现智能化,其核心逻辑是“因人而异”和“见机行事”,以人群圈层为单位、以使用场景为圆心进行营销投放的“精准打击”;同时,掌握每次营销活动中每个人群圈选、每个营销渠道的效果,并根据效果反馈借助AI能力改善后续的营销决策,在不断的试错与优化中实现ROI的提升,最终达到业务收入提升的目的。

而这也要求营销云,必须精准锁定用户触点,夯实营销闭环能力,建立从目标客群寻找——客群特征洞察——营销流量连接触达——营销效果监测并学习提升的一体化数据营销闭环平台。

因此,我们可以看到行业内领先的营销云产品,已经在从洞察——构建——触达——分析——探索为入口,打通数据到人群的有效沟通、转化的营销闭环上实践出了的一套有效的解决方案。

一方面,通过一方数据导入(如品牌历史活动数据)、二方数据采集(如媒体活动投放、创意数据等)以及三方数据增强,形成数据收集&融合的“智慧中枢”,自动洞察、构建目标受众,探寻出最适合的转化路径、创意素材,刺激目标用户及潜在用户的兴趣度,加速决策进程;另一方面,对筛选出的目标用户与潜在用户,提供媒体、策略、创意的智能指导,实现品牌与用户的双向连接,改变以往单一被动的传播形式,真正实现用户体验与营销体验的平衡;最后,通过数据回流、活动监测、防作弊等服务实现数据的跟踪、采集以及再次回收利用,完成营销策略落地与品牌数字资产沉淀,形成新的营销策略指导。

与此同时,随着品牌对保护数据安全与构建数据资产的日益重视,支持私有化部署营销云产品也更多获得了行业头部品牌的青睐,帮助品牌搭建自己的营销技术堆栈,助力其实现数据、策略和资源的全生态打通和连接,使品牌获得技术和数据的整体管控,为其营销战略落地提供支撑与保障。

智能化已经成为不可逆转的发展趋势,“智能时代”为品牌营销带来的红利无疑是智能营销能力。越来越多的企业会意识到,我们面临的问题将从“要不要采用智能化营销”,转变到“如何选择更适合的智能营销工具”和“如何用好智能营销工具、做好数字化转型,帮助企业做大做强”。

能否有效运用智能营销工具,已成为品牌能否在数字经济时代中顺利完成数字化转型的关键之一。特别是在受众注意力稀缺、碎片化传播加剧、流量红利获取难度逐步加大的当下,品牌要想抓住风口,俘获用户、突出重围,必须借助像营销云这样具有数据能力和营销闭环能力的平台,完成受众人群洞察、触达、及效果分析,提升品牌体验与品牌信息辐射能力的同时,最终实现攻占市场,抢占用户心智的目标。

TalkingData再度参展贵阳数博会,打造数据智能服务生态

5月26日,2019中国国际大数据产业博览会(简称“数博会”)在贵阳正式开幕,吸引到59个参会国家,448家参展企业,规模再创新高。在“数据创造价值创新驱动未来”的大会主题下,2019数博会汇聚全球顶级大数据企业和大数据领军人物同台论道,共研大数据发展方向,共享大数据前沿理论、技术和成果。

 

作为国内领先的数据服务提供商,TalkingData再次受邀来到贵阳数博会,并入驻E1国际前沿馆,展示以开放数据中台为核心打造世界领先的数据及数据智能服务生态。对大数据应用、行业数字化转型等方面感兴趣的观众,欢迎来到E1馆C02号的TalkingData展位,将有相关领域的专业人员为您详细讲解。

本次TalkingData在数博会上重点展示TalkingData赋能金融服务、零售企业数字化转型两大行业解决方案,品牌广告价值分析平台、智能营销云两大产品,以及助力大数据应用增值及落地的TalkingData大数据生态计划。

TalkingData所在的E1国际前沿馆,囊括智慧城市、5G技术及应用、人工智能、大数据扶贫、国家大数据综合试验区等展示内容。参展企业除TalkingData外,还包括中国移动、中国联通、中国电信、海信集团、科大讯飞、优必选、依图科技、小红书、快手、华大基因等通信科技、人工智能、大数据等领域的领先企业。

 

本届数博会将持续到5月29日,大会以“创新发展数说未来”为年度主题,除六大展馆的展览展示外,还设置了53场专业论坛、9场高端对话、4场大赛,以及5大主题活动。

今年已经是TalkingData连续第五年参加贵阳数博会。数博会之后,TalkingData还将于6月在北京参加O’Reilly 主办的人工智能大会、7月在广州参加GMIC全球移动互联网大会、8月在上海参加ChinaJoy中国国际数码互动娱乐展览会,持续输出TalkingData在大数据技术创新、应用实践、行业解决方案等全方面的能力,欢迎关注。

数据科学家,还是非“野生”的比较好

作者:佚名

本文转自:大数据文摘

公民数据科学家(Citizen Data Scientist , CDS)的概念始于2017年,在2018年火爆全球。

似乎可以将CDS看作公民科学家概念的延续,这个概念背后的想法是:技术辅助工具已经非常先进,自动化调参工具的出现、各种MOOC自学平台上课程和实验室层出不穷,所以现在,如果付出足够多的学习时间,似乎所有人都可以迅速具备收集和分析数据的能力,也就是,成为一名“数据科学家”了。

似乎可以将CDS看作公民科学家概念的延续,这个概念背后的想法是:技术辅助工具已经非常先进,自动化调参工具的出现、各种MOOC自学平台上课程和实验室层出不穷,所以现在,如果付出足够多的学习时间,似乎所有人都可以迅速具备收集和分析数据的能力,也就是,成为一名“数据科学家”了。

这一概念不止激励鼓舞了大批想要成为“数据科学家”的个人,也让很多缺人的企业有了希望。

数字信息的增长已经对数据科学和分析专业人员产生了越来越大的需求。与之相对,相关人才供给远远不够。因此,供需之间的差距正在扩大。

不断增长的数据职场缺口下,雇佣这一类公民数据科学家,是许多大公司面临“人荒”困境,寄予厚望的解决方案。

大批非相关专业出身、靠着自我培训和技术工具成长起来的公民数据科学家,开始涌入这个领域。

草根公民数据科学家的特征

那么,“草根”出身的公民数据科学家有什么特点呢?

如上图,尽管是非统计等数据科学相关专业出身,我们并不否认,来自业务领域或者其他专业的公民数据科学家,本身具备以下优点:

  • 深耕业务领域,对组织机构有深刻认知,对与业务优先次序相关的问题的兴趣;
  • 对商业领域有独特视角、分析技术在商业问题中的实证应用、可以证明商业价值;
  • 参与多个分析领域和活动、有着实践经验并且有着广泛人脉。

“草根”数据科学家有风险

“草根”公民数据科学家越来越多,他们开始不止从事最基本的数据收集和分析工作,也开始承担数据的预测等核心工作。

就像耐克声称他们的Air Jordans可以让每个邻居小孩成为下一个皮蓬(Scottie Pippen)非常不靠谱一样,技术带来的辅助力量是有限的,风险也开始随之出现。

显而易见,虽然现在所有电动工具都可以在商店买得到,但并不是所有人都可以成为木匠大师;就算有很多在线炒股软件,也并非所有人都能成为百万富翁交易员。

真正的科学要通过专业训练。这是不管多少技术工具都无法取代的。

“高质量的数据仍然非常重要”,针对“公民数据科学家”,全美排名第四的CTO、天睿公司首席技术官、全球数据仓库技术专家Stephen Brobst告诉大数据文摘,现在尽管分析工具越来越智能,但他们的使用前提依然是没有偏向(bias)的数据,和懂得这些数据的专业人士。

“深度学习算法实际上非常适合处理数据质量问题。很多公司现在用无监督学习的反馈循环来解决数据质量问题,但我们还是希望,在数据搜集的过程中就尽量最小化数据偏见。数据科学没有魔法,它不是一个工具就可以解决的问题。你可以通过一些步骤来测试有偏见的数据,但这是件很微妙的事情。”

“你必须雇用那些知道自己在做什么的人。”Stephen称,业内现在存在很多只懂业务、不懂统计的“公民数据科学家(citizen data scientist),这是非常危险的。他们严重依赖技术工具进行数据搜集和分析,并不知道自己在做什么,“这很可能会导致严重破坏性的结果。”

“草根”数据科学家为什么危险?

以下几种原因可以解释:

首先,认知偏差。下边这张图可以很清楚地解释什么是认知偏差。

技术能力可以靠短期培养,但是,认知能力不行,它需要几年甚至十几年的专业训练。不同专业的人对待同一组数据和场景会有很不同的认知。

其次,研究逻辑谬误,或者说辛普森悖论。

所有技术工具的使用前提是假设你的数据首先是优质无偏差的,大多数“草根”数据科学家通过SQL入门,并直接跳入Keras和TensorFlow ……

毕竟MOOC(慕课,同为在线学习网站)的认证课程中就是这么教的。

第三,数据的民主化并不直接导致洞察力的民主化。

这一点很容易理解。eBay并没有让每个人都一夜成为零售巨头,手机也并没有提高人们的智商。尽管现在我们比以往任何时候都有着更多的健康和饮食信息,但世界上的人比以往任何时候都更加肥胖。工具速度,工具规模,正确的使用方法 – 这些永远不会取代真正的专业训练。

所以,放弃“草根”数据科学家的幻想吧!

现在坐下来脚踏实地学习一些有意义的、真正的智慧建立和验证的东西。技术工具允许我们所有人都充满渴望,只有那些投入时间和精力,拥有专业训练和教育的人才能够提升到可以提供有意义和预测性分析的水平。