用数据讲故事:十大统计学/机器学习魔法指数

简介: 用数据讲故事:十大统计学/机器学习魔法指数



统计学和机器学习为数据分析提供理论基础,入门时我看过很多统计学相关书籍,复杂的公式和推导过程让我一度陷入迷茫。对于数据科学/分析师来说,如何使用统计学知识并应用到我们的分析场景中更为重要。本文主要基于数据分析工作中的实际应用场景,分享一些魔法统计学/机器学习指数,对一些基础指数、原理及公式推导不过多阐述。



本文为该系列第三篇文章。第一篇:用数据讲故事:13条Excel进阶技巧总结第二篇:用数据讲故事:基于分析场景的17条Python使用小结

指标长&短期增速计算

▐  短期增速


  1. 一般增长率增速:超大盘增速 ;相对排名增速:排名增速
  2. 混合增速=GMV增速+相对排名增速
  3. 加权混合增速=指标增速*log(1+指标)


▐  长期增长趋势:CAGR复合增长率


CAGR是复合年增长率的缩写,它是一种衡量某个指标在一段时间内的平均增长率的方法。CAGR通常用于衡量投资回报率、销售增长率等指标。举例:开始值5,结束值20,年数2(包含首尾值),则复合增长率=100%。

指标趋势预测:时间序列法


数据分析的目的有三种:描述现状、定位原因和预测未来,趋势预测即在分析过去和现在的数据,进而预测未来的过程,辅助作出决策。


▐  线性趋势预测:Forecast.linear()


它通过使用现有或过去的值来预测或计算值。基于线性回归函数通过自变量x值来预测y。如果数据中存在线性趋势(即y线性依赖于x值),则此函数的效果最佳,

举例:选中数据,插入带平滑线和数据标记点的散点图,增长趋势线显示公式,预测相同的未来值。

▐  季节性预测:Forecast.ets()


电商中更多的为带有季节性的数据,Excel为此类数据提供了高级预测功能。此函数通过三重指数平滑方法进行此预测。此方法是加权方法,越久远的值,权重越小,也就意味着,重要性越小。

  • Forecasting.ets.seasonality()


它返回基于历史数据检测到的季节性周期的长度,如有的数据是3个月重复一次,那么它的周期就是3。


  • Forecast.ets()


第4个参数表示季节性模式的长度。默认值 1 表示自动检测季节性。举例::根据Forecasting.ets.seasonality()我们知道数据的周期为3,所以第4参数填入3。

  • Forecasting.ets.confint()


它返回指定目标日期的预测值的置信区间。默认的置信区间为95%。这意味着95%的预测值将在该值的范围内。


样本量悬殊比较:WilsonScore


我们在进行AB-test或其他分析中,总会涉及比较商品点击率&转化率等情况。


举例:如A商品曝光UV为1000 & 点击UV15,A商品曝光UV为100000 & 点击UV1000,A商品的点击率为1.5%,B商品的点击率为1%,但在比较时并不能代表用户更喜欢A商品,因为AB样本量较为悬殊。


那么如何进行判断呢?WilsonScore平衡样本数量差异的影响,解决小样本的准确性问题。本质上,威尔逊区间其实就是用户喜欢率的一个区间估计。但是该区间估计考虑了样本过小时候的情况,根据样本量对区间估计进行了修正,使得该区间估计能够较好的衡量不同样本量情况。该得分算法经常应用于各个网站的排序上。比如知乎的搜索排序。



from odps.udf import annotateimport numpy as np@annotate('string->string')class wilsonScore(object):    #威尔逊区间下限    def evaluate(self,input_data):        pos = float(input_data.split(',')[0])        total = float(input_data.split(',')[1])        p_z=1.96        pos_rat = pos * 1. / total * 1.  # 正例比率        score = (pos_rat + (np.square(p_z) / (2. * total))                 - ((p_z / (2. * total)) * np.sqrt(4. * total * (1. - pos_rat) * pos_rat + np.square(p_z)))) / \                (1. + np.square(p_z) / total)        return str(score)


时间衰微函数:Sigmoid

分析过程我们经常遇到需要结合长期历史表现,对用户/商品/商家打分,用于衡量价值及资源分配。sigmoid函数也叫Logistic函数,它可以将一个实数映射到(0,1)的区间。



举例:通过对商品历史表现(点击率&GMV)的进行Sigmoid递减打分


三大统计学相关系数:Pearson&Spearman&kendall


▐  数值型&正态分布相关性度量:皮尔森(Pearson)相关系数



EXCEL和DataWorks中配置了也内置了相关函数,可直接进行调用

  1. EXCEL求相关性:CORREL(S24:S28,T24:T28)
  2. odps:corr(a,b)


通过上述公式我们可以求得两个数值型变量的相关系数,如何评估两个变量之间的相关性呢,我们一般使用假设检验来判断是否显著。


在进行Pearson相关系数检验时,需要先设定显著性水平α,常用的显著性水平有0.05和0.01。然后计算出样本相关系数,根据样本大小n和显著性水平α查找对应的临界值。如果样本相关系数大于临界值,则拒绝原假设,认为两个变量之间存在显著的线性相关关系;否则接受原假设,认为两个变量之间不存在显著的线性相关关系。


相关系数临界值计算器:https://www.jisuan.mobi/gqY.html


▐  非数值型/非正态分布数相关性度量:斯皮尔曼(Spearman)相关系数


Spearman相关系数是根据随机变量的等级而不是其原始值衡量相关性的一种方法。spearman相关系数的计算可以由计算pearson系数的方法,只需要把原随机变量中的原始数据替换成其在随机变量中的等级顺序即可。


举例:

求(1,10,100,101)、(21,10,15,13)两个非正态分布分布的相关系数

将(1,10,100,101)替换成(1,2,3,4),(21,10,15,13)替换成(4,1,3,2),然后求替换后的两个随机变量的pearson相关系数即可。


▐  排名相关性度量:肯德尔(kendall)相关系数


kendall相关系数又称作和谐系数,也是一种等级相关系数,其计算方法如下:

对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果Xi<Yi并且Xj<Yj,或者Xi>Yi并且Xj>Yj,则称这两对观察值是同序对,否则为异序对。


kendall相关系数的计算公式如下:


举例:假设我们有8个商品,想商品计算销量排名与GMV排名的相关性

商品 A B C D E F G H
销量排名 1 2 3 4 5 6 7 8
GMV排名 3 4 1 2 5 7 8 6

A商品销量排名为1,GMV排名为3,比排名4-8的GMV大,因此贡献5个同序对;B商品销量排名为2,GMV排名为4,比排名5-8的GMV大,因此贡献4个同序对;C品销量排名为3,GMV排名为1,比排名4-8的GMV大,因此贡献5个同序对;D品销量排名为4,GMV排名为2,比排名5-8的GMV大,因此贡献4个同序对;

以此类推,同序对数P = 5 + 4 + 5 + 4 + 3 + 1 + 0 + 0 = 22;总对数为 (8+7+6+5+4+3+2+1)/2=28;异序对数 Q=28-22;R=((22-6)/28)=0.57。

两个分布相似度的衡量指数:KL散度

KL散度是量化两种概率分布P和Q之间差异,数值越小说明越相似,公式如下:


举例:求AB分布的相似度

  1. A分布=[0.3,0.2,0.1,0.2,0.2]
  2. B分布=[0.1,0.3,0.1,0.2,0.3]



KL散度计算如下:


曲线拐点:KneeLocator


寻找用户最佳留存时间点,或特征聚类计算最佳K值时,我们常需要从曲线的形状进行分析找到拐点。在python 中有一个自动帮助我们寻找拐点的包,叫kneed。这个包中只需要定义少量的参数(凹凸性及曲线方向),就可以自动地帮助我们找到一条曲线中的拐点。



from kneed import KneeLocatorimport matplotlib.pyplot as plt •x = np.arange(1,31)y = [0.492 ,0.615 ,0.625 ,0.665 ,0.718 ,0.762 ,0.800 ,0.832 ,0.859 ,0.880 ,0.899 ,0.914 ,0.927 ,0.939 ,0.949 ,0.957 ,0.964 ,0.970 ,0.976 ,0.980 ,0.984 ,0.987 ,0.990 ,0.993 ,0.994 ,0.996 ,0.997 ,0.998 ,0.999 ,0.999 ]•kneedle = KneeLocator(x, y, S=1.0, curve='concave', direction='increasing')print(f'拐点所在的x轴是: {kneedle.elbow}')


指标权重确定方法:熵值法&PCA

▐  熵值法


熵值法是指用来判断某个指标的离散程度的数学方法。离散程度越大,该指标对综合评价的影响越大。可以用熵值判断某个指标的离散程度。熵值法求权重步骤如下:

STEP1:数据标准化

STEP2:计算各指标信息熵

STEP3:确定各指标权重

熵值法确定权重只是考虑数据各个指标的离散程度,即数据取值越多其权重就越大,并没有结合具体的实际问题,因此在应用熵值法确定权重时需要结合具体的问题才能使用。


▐  主成分分析


主成分分析,是考察多个变量间相关性一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始变量的信息,且彼此间互不相关,作为新的综合指标。

DataWorks中的机器学习PAI配置了PCA组件,可直接进行调用,详见:https://pai.dw.alibaba-inc.com/component/detail/255?projectId=21225&spm=a2c3x.12342929.0.0.38e64a9bhMFlBH

算法部署后,生成如下格式的特征值和特征向量表:

STEP1:确定指标在各主成分线性组合的系数


STEP2:确定综合得分模型系数

对STEP1中所得的各指标所拥有的三个主成分进行加权平均:

举例:指标3得分模型系数为

STEP3:指标权重归一化

即,将各因素在综合得分模型中的系数进行归一化。

举例:指标3的权重系数为


市场竞争度量/核心圈选:集中度


帕累托法则是帕累托于1906年提出了著名的关于意大利社会财富分配的研究结论:20%的人口掌握了80%的社会财富。在数据分析中,帕累托法则是常应用于业务分析和需求分析两个方面。

▐  CRN


指品类销售额排名TOPN的品牌销售额之和占品类销售额的比值。数值越低,说明头部品牌市占率低,其头部品牌的市场瓜分能力较弱,腰尾部品牌面临的机会相对较多。

▐  消费集中度


指贡献前N%市场份额的用户/商品占比,即二八法则中贡献前80%市场份额的用户/商品占比,可基于市场份额贡献度进行核心类目圈选及品规坑位数规划。


关键词提取/打分算法:TF-IDF

TF-IDF是倾向于过滤掉常见的词语,保留重要的词语,公式如下:

举例:搜索词A在类目X的搜索次数较多,但搜索词A在其他类目上搜索较少,那么搜索词A更能代表类目X,则趋势得分越高,反之越低。


结语


《用数据讲故事》系列,不仅见证了我这个数科小白近两年的点滴成长,也回答了我学生时期关于“大学知识有用论or无用论”的困惑。在我看来大学作为通识教育,注重的是融合价值的塑造和学习能力培养。作为受益者十分感恩学校教会了我“是什么”、“为什么”,工作后能花费最低的认知成本去实践“怎么做”。未来山高水长,我也会将更多的实践总结和思考与大家分享,欢迎一起交流学习!

结语


我们是大聚划算数据科学团队,负责支持聚划算、百亿补贴、天天特卖等业务。我们聚焦优惠和选购体验,通过数据洞察,挖掘数据价值,建立面向营销场、服务供需两端的消费者运营和供给运营解决方案,我们与运营、产品合力,打造最具价格优惠心智的购物入口,最具爆发性的营销矩阵,让货品和心智运营变得高效且有确定性!


相关文章
|
3月前
|
机器学习/深度学习 数据可视化 搜索推荐
Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。
【7月更文挑战第5天】Python在社交媒体分析中扮演关键角色,借助Pandas、NumPy、Matplotlib等工具处理、可视化数据及进行机器学习。流程包括数据获取、预处理、探索、模型选择、评估与优化,以及结果可视化。示例展示了用户行为、话题趋势和用户画像分析。Python的丰富生态使得社交媒体洞察变得高效。通过学习和实践,可以提升社交媒体分析能力。
65 1
|
3月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
17天前
|
机器学习/深度学习 数据采集 监控
探索机器学习:从数据到决策
【9月更文挑战第18天】在这篇文章中,我们将一起踏上一段激动人心的旅程,穿越机器学习的世界。我们将探讨如何通过收集和处理数据,利用算法的力量来预测未来的趋势,并做出更加明智的决策。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和思考方式。
|
20天前
|
机器学习/深度学习 数据采集 算法
利用未标记数据的半监督学习在模型训练中的效果评估
本文将介绍三种适用于不同类型数据和任务的半监督学习方法。我们还将在一个实际数据集上评估这些方法的性能,并与仅使用标记数据的基准进行比较。
34 8
|
2月前
|
监控 数据安全/隐私保护 异构计算
借助PAI-EAS一键部署ChatGLM,并应用LangChain集成外部数据
【8月更文挑战第8天】借助PAI-EAS一键部署ChatGLM,并应用LangChain集成外部数据
66 1
|
2月前
|
数据采集 机器学习/深度学习 算法
"揭秘数据质量自动化的秘密武器:机器学习模型如何精准捕捉数据中的‘隐形陷阱’,让你的数据分析无懈可击?"
【8月更文挑战第20天】随着大数据成为核心资源,数据质量直接影响机器学习模型的准确性和效果。传统的人工审查方法效率低且易错。本文介绍如何运用机器学习自动化评估数据质量,解决缺失值、异常值等问题,提升模型训练效率和预测准确性。通过Python和scikit-learn示例展示了异常值检测的过程,最后强调在自动化评估的同时结合人工审查的重要性。
57 2
|
2月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
140 1
|
2月前
|
缓存 开发者 测试技术
跨平台应用开发必备秘籍:运用 Uno Platform 打造高性能与优雅设计兼备的多平台应用,全面解析从代码共享到最佳实践的每一个细节
【8月更文挑战第31天】Uno Platform 是一种强大的工具,允许开发者使用 C# 和 XAML 构建跨平台应用。本文探讨了 Uno Platform 中实现跨平台应用的最佳实践,包括代码共享、平台特定功能、性能优化及测试等方面。通过共享代码、采用 MVVM 模式、使用条件编译指令以及优化性能,开发者可以高效构建高质量应用。Uno Platform 支持多种测试方法,确保应用在各平台上的稳定性和可靠性。这使得 Uno Platform 成为个人项目和企业应用的理想选择。
38 0
|
2月前
|
机器学习/深度学习 缓存 TensorFlow
TensorFlow 数据管道优化超重要!掌握这些关键技巧,大幅提升模型训练效率!
【8月更文挑战第31天】在机器学习领域,高效的数据处理对构建优秀模型至关重要。TensorFlow作为深度学习框架,其数据管道优化能显著提升模型训练效率。数据管道如同模型生命线,负责将原始数据转化为可理解形式。低效的数据管道会限制模型性能,即便模型架构先进。优化方法包括:合理利用数据加载与预处理功能,使用`tf.data.Dataset` API并行读取文件;使用`tf.image`进行图像数据增强;缓存数据避免重复读取,使用`cache`和`prefetch`方法提高效率。通过这些方法,可以大幅提升数据管道效率,加快模型训练速度。
34 0
下一篇
无影云桌面