草庐IT

来说说,什么才是真正的大数据分析

接地气的陈老师 2023-03-28 原文
“大数据”仨字已经被喊烂了,“大数据分析”也经常被人提起。可到底咋完全是“大数据分析”?为啥大家喊得很多,平时工作中很少感受得到?今天系统讲解一下。

01普通人理解的“大数据”

普通人理解的大数据可谓千奇百怪,比如:

1、一个excel文件 200M,多大的数据呀!

2、我国人口14亿,这个数据好大呀!

3、卧槽,我刚看了车,就有4S店推广电话,肯定收集了我的大数据

……

这些千奇百怪的理解,都是来自对“数据”本身不够了解导致的。想整明白“大数据”真正的含义,得从数据是从哪里来的讲起。

02先理解“小数据”,再谈“大数据”

最原始的数据采集方式就是:问卷。由专门的调查人员,借助一张张调查问卷,通过现场询问、测量等方式获得数据。这种方法已经沿用了400多年,经典的统计学、管理学理论都是建立在此之上的(如下图)。

小数据有没用?有用!非常有用!

能采集到某个地区的数据,代表着政府对这个地区有统治力。

能采集到越多的数据,中央就能掌握地方情况,从而加强管理。

数据是如此重要,以至于历史上很长一段时间,统计任务归属于政府、军队、情报机关。我国的第一家调查公司还是在90年代初,在宝洁强烈要求下成立的。

但是,调研做法有三个明显的问题:

1、非常耗费人力。访问员、督导、审核、录入、数据处理……都是人

2、非常耗费时间。设计问卷、填写、回收、都是时间

3、准确度低。现场测量的数据会相对准,但口头问回来的大部分都不准

这些问题,导致了问卷时代的数据采集,只能有抽样式的,不能是全量采集。也因此衍生出了专门的抽样理论和方法。但无论数据方法怎么改进,在业务上,抽样,始终是一个难以逾越的梗阻。决策者总会觉得:

1、是不是样本量太少

2、是不是代表性不够

3、没有覆盖的样本是不是真的一致

只要是抽样数据,就一定会被质疑,就总是充满怀疑。这也是最初“小数据”的说法来源,后续所有“大数据”其实都是围绕“小数据”问题而来。

▌数据变大第一步:系统采集

数据从小变大的第一步,从系统采集开始。比如企业扩大规模,要在各地建连锁店,第一步做得就是装POS机,把交易数据采集进来,替代纸质订货单/出货单。此时想了解销售数据,是可以基于POS机收集的数据全量查看的(如下图)。

从抽样数据到全量数据,是一个质的变化。基于全量数据,可以直接管理到各个终端门店,直接基于数据作出经营决策。因此大部分企业的销售分析、经营分析、业务分析体系,都是在此基础之上建立起来的(如下图)。

但是这个阶段的局限也是很明显的:POS机只能记录交易结果,对过程一概不知。谁在买,买了多少,为啥买,通通不清楚。

这个阶段的分析,是典型的知其然,不知其所以然的分析,大部分分析只能通过成交结果去猜。如果只有这个阶段的数据,想做深入分析,还是得依靠调研。比如传统企业想了解门店成交流程,会做门店调查,研究消费者在门店的动线,询问消费者体验。

▌数据变大第二步:主动采集

有了系统采集以后,大家自然地会想:除了交易数据,其他数据也能通过系统化采集。比如最简单的形式:让用户自己交身份证,通过图像识别录入。这样既能采集到用户数据,又能避免手动填写的错误。

但是问题来了:凭啥要交身份证给你呀!于是传统采集,只有银行、航空、通讯等有国家背景+法律规范要求的地方,才能相对准确的采集这些真实数据。

不过这些困难并没有阻挡住企业采集信息的热情。常见的手段,比如:勾引用户办会员卡,给生日礼遇让用户填写生日。用户完成信息给积分奖励之类。更激进的,甚至有常识在门店装人脸识别、装眼动仪跟踪设备来采集数据(当然,成本很高)。

为什么企业会孜孜不倦追求这些数据,因为这些数据真的有用。至少能把数据具体到一个人的身上,能识别出谁是高端用户,谁是沉睡用户,从而精细化运作(如下图)

真正低成本的、解决采集消费者行为数据的问题,还得靠互联网产品。

▌数据变大第三步:行为加入

互联网产品的最大优势,在于App/小程序/H5本身就是数字化产品。此时不但有条件记录到用户的点击、登录等行为数据,而且能将用户ID、手机号等信息整合成统一ID,效率比依赖线下纸质单张申请的流程强无数倍。

还能将视频、图片、文章等内容打标签,通过用户点击、转发次数,浏览时长,反推用户需求。对于经历过传统企业数据的人来说,互联网产品的数据简直就是鸟枪换炮。

相较之传统的会员基础信息、消费流水数据,用户行为数据量特别、特别的大,大家想想自己在淘宝逛多久才买一件东西就知道了。可能之前几百次点击浏览,最后才有一单交易。

因此,需要专门的大数据架构来支持这些数据的存储和计算。狭义上的大数据技术,特指对大量的用户行为数据、非结构化数据的存储和计算。

有了这些数据,才有现在我们流行的互联网分析方法,比如漏斗分析法(如下图)。

基于这些基础数据采集,还能延伸出更多数据应用,比如:

1、模型类:行为预测、推荐算法

2、测试类:产品ABtest

3、画像类:用户画像

虽然这些方法,基于交易数据也能做,但是数据量多寡,直接决定了结果准确度。从而影响到业务端使用。在传统时代,只有银行、运营商、航空公司独享的分析方法,成为现在互联网公司的标配。

然而即使这样,既然有一些问题不能解决

● 用户数据分散在若干平台,导致单一平台数据不足

● 用户心理无法直接反应为数据,冲动型行为会干扰正常数据判断

● 信息安全法规要求越发严格,对数据采集/使用限制在增多

因此,如何合法合规、持续利用大数据资源,依然是今天一个重要议题。

03上不了台面的“变大”方法

当然,还有一些灰色/黑色的方法,让数据变大

1、直接从“有数据”的人手上,买数据!

2、爬虫、撞库,硬捞用户数据

3、通过设备,默默收集用户数据

这就是各种骚扰电话、垃圾短信的源头。当然,随着国家对信息安全保护要求越来越严格,这些玩意生存空间也是逐步被压缩,所以不谈也罢。

04“大数据有啥用”的终极答案

纵观数据从小到大的整个过程可以看出:数据从来都有用。即使最简单、最不准的数据,也能反应管理上的问题。因此决策者们对于数据的追求,永远是孜孜不倦的,永远是不满足的。(如下图)

那么,为什么还有这么多人在问“大数据有啥用”呢?

因为并非所有人都理解“数据”的用途,别说大数据了,小数据丫也照样不会用。

截止到2023年,依然有人是拍脑袋决策,拍胸脯保证;依然有人沉迷于“老夫从业十年,我说的就是对的”;依然有人觉得大数据包治百病,代码一敲,钞票从电脑屏幕里喷薄而出;依然有人迷信“底层逻辑”“核心思维”,苦练内功心法。

总之,想用好数据,就得深入业务流程,具体了解数据采集方式,这样才能读懂数据背后的业务含义,才能把自己面临的具体问题转化为数据问题,才能解出正确答案。

采集和计算数据,是一门科学

应用数据产生价值,是一种艺术

差别大致如此。

有关来说说,什么才是真正的大数据分析的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  5. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  6. ruby - ruby 中的 TOPLEVEL_BINDING 是什么? - 2

    它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput

  7. ruby - Infinity 和 NaN 的类型是什么? - 2

    我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串

  8. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  9. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  10. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

随机推荐