zoukankan      html  css  js  c++  java
  • 数据思维二三事

    1/ 虽是数学出身,但实际上数学为统计的理解带来了更多的挑战。因为数学的重心在于抽象,以高度抽象的方式来统一性地解决问题。而统计则更为关注现实,以具体的例子为基本素材,以“把大家放到一块儿看看”为方法论,来讨论手头上的数据特征。

    这种在方法论上关于抽象与具体的差别,让两者彼此对抗、彼此融合着。能否辩证地看待两者的关系,成了能否进一步做出深刻认识的关键。

    2/ 就visualization这个话题来讲,曾经很是头痛于它的局限性,只能够做出二维的图形或三维的展示,完全没办法去处理更高维的情形。相比于可以在理论上追求无穷维的自由,visualization显得异常笨拙。

    可事实上,真正的瓶颈在于人类的大脑:你几乎只能理解二维、三维的世界,维度再往上走就没什么感觉了。表面上,你似乎可以想象出一个思维的四棱柱。可是,仅仅在头脑中渲染出这个四维的物体,已经消耗掉你大脑中80%的CPU。剩下20%的资源,又怎么够去理解思维图形带给你的数据洞见呢?

    你的直感、洞见、趋势观察,不会来自于四维空间,而只能是二维空间、三维空间。所以,认真地打磨二维、三维空间的可视化工具是你唯一有效地选择。剩下的部分,其实已经被大脑认知所丢弃。

    即便是不考虑visualization,就是单纯地比对数据,你能做的事情也是极其有限的:心理学研究发现,人类能够区分清楚的“强弱程度”最多也就只有6个级别。如果再继续做精细划分,大脑基本上就会陷入模糊与紊乱,不知道该如何做精细的归类。

    那么从维度上讲,这个限制也是隐形存在的。为什么要做成二维的表格形式?因为那几乎就是大脑的极限维度。

    而如果你的数据维度远远超过这些限制怎么办?这才是数据分析被提出来、被需要的根本动因:你需要把复杂的、高维度的数据做各种倒腾和拆分,让它能够以符合人类认知的二维、三维的形式做呈现、做visualization

    如果不做这样的降维处理,不把数据以更具限制性的方式呈现出来,大脑只会单纯地“无感”,无法产生洞见。无论计算机能够吸收多么复杂的数据模式,最终要分析、理解结果的都是一个个的人。而只要是人,他的脑接口就已经决定了数据必须以二维、三维的方式来呈现。

    如同计算数学当中的计算代数,无论你做偏微分方程数值解,还是做复杂的最优化,如deep learning这些,你最终都必须回归到矩阵计算。为什么?因为从最底层的角度上讲,计算机唯一能做的就是关于加减乘除的矩阵运算。

    3/ 要体会人类认知在数据面前的脆弱,其实用不了多少数据就可以办到。例如,你只要看一眼满屏的Excel数据表,然后问自己一个问题:看到它们后,你能得出什么直观性的结论吗?又或是产生一些生理上的自然反应吗?能够像看完满屏的一副风景画照片那样,立刻在内心留下什么直接的感触吗?

    我想不能,你看完这满屏的数据后,它还是它,你还是你,这就是你和数据之间的认知鸿沟。

    人类的认知系统本身,就不善于处理数据,也就是单纯的对数据无感。要想直接建立起对数据的感觉,需要漫长的训练和思考。又或是我们可以调整数据的形式,让它们以符合人类认知的方式出现,从而让大脑尽可能多地去吸收数据中蕴含的信息、感受数据传递给你的诉求。

    4/ 按照这样的框架继续思考,这里其实涉及到两个过程,一个是“建立洞见”的过程,另一个是为了让建立洞见这个事情变得更容易而需要做一些“辅助工作”的过程。

    要想“建立洞见”,你需要有领域知识,有问题所在语境的基本认知,有充分的关联能力。其核心,就是要根据数据“做出决策”。

    而辅助性工作,其实涉及的就是倒腾数据的工作,也就是广大技术人员常常在做的用numpay、pandas、TensorFlow做数据的转换、迁移和计算。它服务于:当我想要做出某个洞见时,需要看一看某几个指标的对比,但却发现没有现成的数据。于是,需要通过已有的原始数据,经过整理、加工来转换成形成洞见所需要的数据形式。这类似于矿工不断地将玉石周围的石头打磨掉的过程。

    从这个角度讲,善于做数据分析处理工作的人不一定善于从数据中得出智慧和结论。

    在做一个事情的时候,现实提出你的诉求:你是谁、有什么需求、有什么问题、需要哪些东西的支持来构建你的启发和idea?然后,当你想要解决这些问题时发现这并不能直接办到,需要先做一些数据的倒腾、将它从一种形式变为另一种形式、把一个侧面同另一个侧面关联起来,还需要通过作图来产生洞见,这时候,就派出能够铲除这些障碍的工具,把它们一一消灭。

    这里也就是我们提到的两个环节:

    • 一个是你有一个基本的想法,面对一大堆的数据指标时,要有联想、洞见、找漏洞的能力。

    • 另一环节则是在完成上一步时,遇到了技术细节的阻力,于是拿出各种数据分析的模型、工具,来铲除技术障碍。

    一旦铲除掉这些障碍,还是需要回归到第一条——它到底是验证了、推翻了之前的一个想法?还是,在挖掘的过程中,又有了新的启发,提出了新的问题、猜测和联想?

    这两个部分都很重要,但更重要的是你要能够区分它们,并弄清楚它们之间的关系。就算你倒腾数据的本事很高,可是,如果没有数据洞见、不会根据计算出来的数据做对比、做观察、做联想,你就是一枚单纯的矿工。另一方面,如果你需要训练这些洞见,其实并不一定需要具备倒腾数据的能力。你完全可以让其他人为你服务,根据已有的、经过处理的数据源,比如财报或行业报告,开始训练自己的数据洞察、联想能力。

    单纯加强工具使用的能力,例如使用Python的数据分析工具生态:numpy、scikit-learn、pandas,又或是学习SQL的各种CRUD操作,又或是学习TensorFlow,其实仅仅能提高数据倒腾的工程能力,但在数据的洞见、观察、联想、剖析上,起不到太大作用。

    一个是拆解、组合数据的工具人,另一个则是解读数据的观察者。

    近期回顾

    就事论事,就人论事
    睁眼瞎的时代
    关于编程语言的一些趣史

     

    如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!

       

    更多信息交流和观点分享,可加入知识星球:

  • 相关阅读:
    JavaScript高级程序设计56.pdf
    JavaScript高级程序设计55.pdf
    JavaScript高级程序设计54.pdf
    JavaScript高级程序设计53.pdf
    JavaScript高级程序设计52.pdf
    php学习笔记2--安装apache遇到的问题
    php学习笔记1--开发环境搭建:apache+php+mysql
    Oracle学习笔记4 使用Navicat for Oracle 连接Oracle时出现错误:ORA-28547: connection to server failed, probable Oracle Net admin error
    Oracle 学习笔记3:新建数据库没有scott用户解决办法
    Oracle 学习笔记2:几个入门常用命令
  • 原文地址:https://www.cnblogs.com/kid551/p/9866789.html
Copyright © 2011-2022 走看看