中企动力 > 商学院 > 在数据分析中
  • ?

    什么是数据分析、数据分析本质又是什么?

    安波

    展开

    一般情况下,我们所说的分析是指,使用大量数据、统计和定量分析、解释和预测以及基于事实的管理来推动决策过程与实现价值增生。

    根据分析的方法和目的,分析可以被划分为描述性分析(descri-ptive analytics)、预测性分析(predictive analytics)和规范性分析(prescriptive analytics)。描述性分析包括数据收集、整理、制表、制图以及描述正要研究的食物的特征,这类分析以往被称为“报告”。描述性分析可能非常有用,但它不能解释某种结果出现的原因或者未来可能会发生的事情。

    预测性分析不仅可以对数据特征和变量(可以假定取消范围的因素)之间的关系进行描述,还可以基于过去的数据预测未来。预测性分析首先会确定变量值之间的关联,然后基于这种已知的关联预测另一种现象出现的可能性,比如在看到某个广告后,一位消费者可能会去买产品的可能性。虽然预测性分析中的预测是基于变量之间的关系做出来的,但这不代表预测性分析中都需要明确因果关系。事实上,准确的预测并不一定与需要基于因果关系。

    规范性分析是更高层次的分析,如实验设计和优化等。就像医生会在出处方建议患者采取什么行动一样,实验设计试图通过做实验给出某些事情发生的原因。为了能够在因果关系研究中信心饱满地做出推断,研究人员必须妥善处理一个或多个独立的变量,并有效控制其他的变量。如果处于试验环境下的测试组的表现大大优于照相,决策制定者就应该立即推广这种实验环境。

    优化是规范性分析采用的一种方法,指试图识别出一个特定变量和另一个变量之间理想的关系水平。例如,我们可以能会对识别最有可能让产品实现高收益的价格感兴趣。同样地,优化这种方法能够识别出使了零售企业最大限制避免缺货情况的库存水平。

    根据分析采用的方法以及收集和分析的数据类型,我们可以将分析分为定性分析(qualitative analysis)和定量分析(quantitative analysis)。定性分析的目的是深入了解某种现象的根本原因和诱因。非结构化数据通常是从少数非代表性案例中收集而来,并进行了非统计性分析。定量分析是分析的最初阶段,他通常是探索性分析的有效工具,定量分析是指通过统计、数学或者计算的方式对现象进行系统的实证研究。通常情况下,结构化数据是从大量典型案例中收集而来,并进行统计分析。

    为了服务于研究者的不同研究目的,存在以下几种类型的分析:

    *统计学:收集、整理、分析、说明和呈现数据的学科;

    *预测:根据已有数据,预测一下一些感兴趣的变量在未来某个特定的时间点的情况;

    *数据挖掘:通常使用算法和统计技术,自动或半自动地提取大量数据中未知的有趣模式;

    *文字挖掘:用类似数据挖掘的方式从文本中得模式和趋势的过程;

    *优化:在同时满足约束条件的情况下,按照某些标准利用数学方法来寻找最优的解决方案;

    *实验设计:给各组随机分配被试。然后使用测试组和对照组来推导出特定结果中存在的因果关系。

    虽然此处给出了一些列常用的分析方法,但在使用过程中会不可避免地出现相当大的重叠。例如,回归分析(regression analysis)是预测分析中最常用的方法,与此同时,他也是统计学、预测和数据挖掘中常用的方法。此外,时间序列分析(time seties analysis)是用于分析数据随时间变化的一种具体统计方法、在统计学和预测中经常被用到。

  • ?

    数据分析成功的定义

    宋幻桃

    展开

    在数据分析中定义成功已经有一段时间了。大约两年前,我试图在院长讲座的中探讨这个问题,但最终我认为我错过了这个标记。在那次演讲中,我试图找出标准(我称之为“美学”),通过这些标准,我们可以普遍地评估数据分析的质量,并尝试与音乐理论进行类比。这是一次有趣的谈话,部分原因是因为我必须扮演查尔斯艾夫斯的第二交响曲。

    数据分析

    根据我的经验,统计学家不会非常讨论这个话题。这要么是因为它是如此愚蠢,以至于每个人都对它有一个(未说出口的)理解,或者每个人对它有一点点不同的理解,或者没有人理解它。无论哪种方式,在我作为统计学家近二十年的时间里,我认为我没有与任何人就数据分析的成功进行多次深入的对话。我讨论过话题这个最多的的的英文关于与希拉里帕克的非标准偏差,这是一个经常谈话的话题。最近,希拉里发表了一篇关于这个主题的演讲,所以我受到启发,写了一些东西。

    我想我已经解决了以下数据分析成功的定义,即:

    如果呈现它的受众接受结果,则数据分析是成功的。

    这里有很多要解开的东西,所以我会介绍它们。我认为重要的两个关键概念的英文接受状语从句:观众的概念。

    验收

    第一个想法是接受的概念。将这与信仰混淆是很诱人的,但它们是两个不同的概念需要保持分离(尽管有时可能很难)。接受分析涉及分析本身 - 应用于其的数据和方法,以及解释结果的叙述。对结果的信任取决于分析本身以及分析之外的许多其他事情,包括先前的分析,现有文献和科学状态负责任的受众可以接受分析而不必相信其主要主张,但这两个概念可能是相关的。

    例如,假设贵公司的一个团队设计了一个实验来收集数据,以确定降低窗口小部件的价格是否会对您的小部件制造公司的利润产生影响。在数据收集过程中,出现了一个问题,导致某些数据以潜在的信息方式丢失。然后将数据交给您。您可以通过多种插补或其他调整方法尽力解决缺失和由此产生的不确定性。在一天结束时,您向我展示分析并得出结论,降低小部件的价格将使利润增加3倍。我可能会接受您正确地进行了分析,并相信您已尽最大努力解决使用最先进方法在收集过程中遇到的问题。但我可能不同意这个结论,部分是因为缺少数据引入的问题(不是你的错),也部分是因为我们之前降低了我们销售的另一种产品的价格,并且没有相应的利润增长。考虑到进行实验的巨大成本,我可能最终决定放弃尝试修改小部件的价格并将其保留在原来的 位置(至少目前为止)。分析取得了成功。

    这个简单的例子说明了两件事。首先,分析接受主要取决于分析的细节以及我是否愿意相信分析师所做的事情。丢失的数据是否占了?是否适当提出了不确定性?我可以推断数据并理解数据如何影响结果吗?其次,对我的查询查询结果信念部分取决于分析之外的事情,这些事情主要在分析师的控制范围之外。在这种情况下,这些是收集过程中缺少数据的存在以及降低不同产品价格的完全独立的体验。在您的分析中,我如何权衡这些外部事物是个人偏好。

    验收与有效性

    在科学背景下,考虑有效性的英文很有诱惑力的。在这里,如果声明是真的,则数据分析是成功的。如果我分析有关吸烟习惯和死亡率的数据,并得出吸烟导致肺癌的结论,那么如果这种说法属实,那么我的分析是成功的。该定义的优点在于它消除了接受的主观因素,这取决于呈现分析的受众。但是对于任何给定的分析来说,有效性是一个非常高的标准。在这个吸烟的例子中,吸烟和死亡率数据的初步分析直到完成几十年才被认为是成功的。大多数科学结论要求独立调查人员和分析人员在社区认为或得出结论认为是真实的情况下,多年来会发生多次重复。让数据分析师陷入困境这么长时间似乎不切实际,坦率地说,不公平。最后,只要我们认为他们做得很好,我认为我们不想惩罚数据分析师做出的结论是错误的。这些说法是否真实可能取决于他们无法控制的事情。

    相关的分析标准本质上是内在有效性的概念。我们不是等到我们能够验证分析声明(可能是几十年后),我们可以通过正确或最好的方式评估分析方法已经完成,并采用了正确的方法。但这种方法至少存在两个问题。在许多情况下,不可能知道什么是最好的方法,或者什么是应用方法的最佳组合,这表明在许多分析中,我们不确定成功。这似乎相当不令人满意,最终不切实际。想象一下,聘请数据分析师并对他们说:“在你做的绝大多数分析中,我们都不会知道你是否成功。”其次,即使在理想情况下,我们知道什么是正确的或最好的,内在的有效性是必要的,但远远不够。这是因为上下文其中进行的分析对于理解什么是合适的是至关重要的。如果分析师不了解这种情况,他们可能会从分析和解释的角度出现重大错误。但是,同样的错误在不同的背景下可能是无害的。这一切都取决于,但分析师需要知道差异。

    我想到的一个故事来自乔治·W·布什在2000年美国总统大选中对戈尔的选举胜利。这次选举取决于佛罗里达州的选票,布什和戈尔非常接近。最终,提起诉讼并进行了一次审判,以确定计票的确切方式。统计学家被要求为布什和戈尔作证。为戈尔团队作证的统计学家是前耶鲁大学的尼古拉斯·亨纳特纳(当我在那里时,他是我的本科顾问)。Hengartner对戈尔团队给他的数据进行了彻底的分析,并得出结论,佛罗里达州的选票数量存在差异,而且一些选票数量不足。但是,在盘问时,布什的律师能够在“陷阱”时刻抓住Hengartner,这最终与收集数据的方式有关,关于Hengartner一直没有意识到的数据。分析是否成功?没有直接参与就很难说。没有人质疑Hengartner在分析中使用的方法,这在很大程度上都是一个非常简单的分析。因此,人们可以说它具有内在的有效性。然而,人们也可以争辩说他应该知道如何收集数据(也许是更广泛的背景)的问题,并将其纳入他的分析和向法院提交。Hengartner的分析只是提出的一系列证据中的一个,因此很难说它在最终结果中扮演了什么角色。

    听众

    所有数据分析都有受众,即使您是这样的受众。最终,观众可能会接受分析结果,或者他们可能无法接受,在这种情况下,可能需要进行更多分析。分析师的成功可能取决于与分析师不同的人可能会让一些人觉得不舒服。但是,我认为这是所有数据分析的现实。不幸的是,成功取决于人类,这是分析师必须准备好应对的事情。认识到人性在决定数据分析的成功中起着关键作用,这解释了我们可能认为是好的或坏的分析的一些关键方面。

    叙事的作用

    数据分析应该是关于数据的,对吧?只是事实?在大多数情况下,直到您需要将您的发现传达给观众。问题在于,在任何对他人有意义的数据分析中,只有太多的结果要呈现,因此必须做出选择。根据受众的身份或受众群体的构成,您需要调整演示文稿,以便让受众接受分析。这是怎么做到的?这有两个极端。

    在最糟糕的情况下,它是通过欺骗完成的。带有混乱轴的图形或模糊关键数据的表格; 我们都知道恐怖故事。复杂的观众可能会发现这种诡计并拒绝分析,但也许不会。那就是说,让我们假设我们是纯洁的。如何组织演示才能成功?我们都知道另一个恐怖故事,即数据转储。在这里,分析师展示了他们所做的一切,并基本上将解释的负担转移给了观众。很少这是理想的。在某些情况下,观众只希望数据进行自己的分析,但分析师不需要浪费时间进行任何分析。

    最终,必须分析师选择要呈现的内容,这可能会导致问题。必须做出选择以适应分析师关于“数据发生了什么”的叙述。他们会选择包括一些情节而不是其他情况和一些表格而不是其他表格。这些选择由叙述和数据解释指导。当观众对数据分析感到不安并且他们是诚实的时候,他们通常会对选择的叙述感到不满,而不是事实本身。他们会对分析师选择包含的数据分析师状语从句:选择排除的数据的组合感到不满。你为什么不把这些数据包括在内?为什么这个叙事如此集中于这个或那个方面?

    创造力的作用

    在一个极端情况下,可以认为数据分析师应该很容易被机器取代。对于各种类型的数据和各种类型的问题,应该有一种确定性的分析方法,改变不会据同性质的,这可以被编码到计算机程序中,并且每次都可以将数据馈送到程序中,最后呈现结果。每个数据分析是如此不同以至于需要人来制定解决方案?“创造力”和“数据分析”这两个词怎么能出现在同一个句子里呢?

    嗯,每个分析都是不同的,这是不正确的。例如,许多功率计算是相同的。但是,究竟如何使用这些功率计算可能会因项目而异。即使是相同研究设计的相同计算也可以在不同项目中进行不同的解释。其他类型的分析也是如此,例如回归建模或其他更奇特的建模。在数据分析中需要创造力的原因必须从根本上解决我们传统上认为在数据“外部“的事情。

    观众是“外部数据”和影响力的一个关键因素是如何,我们分析数据并呈现结果。一种有用的方法是考虑需要生产什么样的最终产品,然后从那里向后工作以产生结果。例如,如果“观众”是另一种算法或程序,那么输出的确切性质可能并不重要,因为它可以适当地馈送到管道的下一部分。特别是,可解释性可能不会那么重,因为没有人会关注这部分的输出。但是,如果一个人会在查看结果时,您可能希望专注于一种建模方法,该方法可让该人推理数据并了解数据如何通知结果。例如,您可能想要绘制更多的数据图,或者如果数据集不是那么大,则显示详细的表。

    在一个极端情况下,如果受众是另一个数据分析师,您可能希望进行相对“轻松”的分析,然后以这样的方式准备数据,以便可以轻松地将其分发给其他人进行自己的分析。这可以是R包或CSV文件或其他形式。其他分析师可能不关心你的幻想可视化或模型; 他们宁愿拥有自己的数据并制作自己的结果。

    部分原因是需要创造力,因为数据分析师必须对受众的需求,背景和接收数据分析结果的偏好进行合理评估。如果分析师可以访问受众,分析师应该询问有关如何最好地呈现结果的问题。否则,必须做出合理的假设,或者为演示文稿本身准备意外事件(例如备份幻灯片,附录)。

    “不一致”的结果

    很多时候,我有过为两个不同的观众提供相同演示文稿的经验。一个观众喜欢它而另一个喜欢它。如果两种情况下的分析和表述完全相同,怎么可能呢?事实是,不同的受众可以接受或拒绝分析,具体取决于他们是谁以及他们的期望是什么。一个常见的场景是向“内部人士”做一个演讲,他们非常熟悉该领域的背景和标准实践。将该演示文稿逐字地呈现给不熟悉的“外部”观众通常会导致失败,因为他们无法理解正在发生的事情。如果外部受众希望将某些程序应用于数据,那么他们可能会要求您执行相同的操作,并拒绝接受分析,直到您这样做为止。

    我清楚地记得我曾经介绍过一些我曾经做过的空气污染和健康数据分析的经历。在实践中,与我自己的小组进行的谈话一切顺利,我认为事情已经相当完整。当向外部小组发表同样的谈话时,他们拒绝接受我所做的(甚至解释结果),直到我还使用不同类型的样条模型进行单独的分析。这不是一个不合理的想法,所以我做了单独的分析,并且在同一组的未来事件中,我并排地提出了两个分析。他们对结论并不满意,但辩论不再集中在分析本身,而是集中在其他科学方面。回想起来,即使他们不一定相信结论,我还是接受了分析。

    概要

    我认为我提出的成功数据分析的定义具有挑战性(并且可能令人不安),因为它表明数据分析师负责数据之外的事情。特别是,他们需要了解收集数据的背景以及将呈现结果的受众。我也认为这就是为什么我花了这么长时间来解决它。但我认为这个定义更清楚地解释了为什么成为一名优秀的数据分析师的英文如此困难。当我们考虑使用统计学家开发的传统标准进行数据分析时,我们很难解释为什么有些人比其他人更好的数据分析师以及为什么有些分析比其他人好。但是,当我们考虑数据分析师必须兼顾数据的内部和外部各种因素以取得成功时,我们会更清楚地看到为什么这是一项如此艰巨的工作以及为什么好人很难得到。

    数据分析成功定义的另一个含义是,它表明人性起着重要作用,而且许多成功的数据分析本质上是人类关系的成功谈判。与使用线性模型或二次模型相比,与受众的良好沟通往往在成功中发挥更大的作用。当分析师必须选择要呈现的内容和省略的内容时,分析师和受众之间的信任至关重要。承认人性在数据分析中发挥作用是困难的,因为人类是高度主观的,不一致的,并且难以量化。但是,我认为这样做可以让我们更好地了解如何判断数据分析的质量以及如何在将来改进它们。

    PS:网舟科技长期专注于金融保险、通信、航空、互联网、旅游酒店...

  • ?

    Excel数据统计分析中36个小技巧

    默西迪丝

    展开

    1、一列数据同时除以10000

    复制10000所在单元格,选取数据区域 - 选择粘性粘贴 - 除

    2、同时冻结第1行和第1列

    选取第一列和第一行交汇处的墙角位置B2,窗口 - 冻结窗格

    3、快速把公式转换为值

    选取公式区域 - 按右键向右拖一下再拖回来 - 选取只保留数值。

    4、显示指定区域所有公式

    查找 = 替换为“ =”(空格+=号) ,即可显示工作表中所有公式

    5、同时编辑所有工作表

    全选工作表,直接编辑,会更新到所有工作表。

    6、删除重复值

    选取数据区域 - 数据 - 删除重复值

    7、显示重复值

    选取数据区域 - 开始 - 条件格式 - 显示规则 - 重复值

    8、把文本型数字转换成数值型

    选取文本数字区域,打开左上角单元格的绿三角,选取 转换为数值

    9、隐藏单元格内容

    选取要隐藏的区域 - 设置单元格格式 - 数字 - 自定义 - 输入三个分号;;;

    10、给excel文件添加密码

    文件 - 信息 - 保护工作簿 - 用密码进行加密

    11、给单元格区域添加密码

    审阅 - 允许用户编辑区域 - 添加区域和设置密码

    12、把多个单元格内容粘贴一个单元格

    复制区域 - 打开剪贴板 - 选取某个单元格 - 在编辑栏中点击剪贴板中复制的内容

    13、同时查看一个excel文件的两个工作表

    视图 - 新建窗口 - 全部重排

    14、输入分数

    先后输入 0 ,再输入 空格, 再输入分数即可

    15、强制换行

    在文字后按alt+回车键即可换到下一行

    16、删除空行

    选取A列 - Ctrl+g打开定位窗口 - 定位条件:空值 - 整行删除

    17、隔行插入空行

    在数据表旁拖动复制1~N,然后再复制序号到下面,然后按序号列排序即可。

    18、快速查找工作表

    在进度条右键菜单中选取要找的工作表即可。

    19、快速筛选

    右键菜单中 - 筛选 - 按所选单元格值进行筛选

    20、让PPT的图表随excel同步更新

    复制excel中的图表 - 在PPT界面中 - 选择性粘贴 - 粘贴链接

    21、隐藏公式

    选取公式所在区域 - 设置单元格格式 - 保护:选取隐藏 - 保护工作表

    22、行高按厘米设置

    点右下角“页面布局”按钮,行高单位即可厘米

    23、复制时保护行高列宽不变

    整行选取复制,粘贴后选取“保持列宽。

    24、输入以0开始的数字或超过15位的长数字

    先输入单引号,然后再输入数字。或先设置格式为文本再输入。

    25、全部显示超过11的长数字

    选数区域 - 设置单元格格式 - 自定义 - 输入0

    26、快速调整列宽

    选取多列,双击边线即可自动调整适合的列宽

    27、图表快速添加新系列

    复制 - 粘贴,即可给图表添加新的系列

    28、设置大于72磅的字体

    excel里的最大字并不是72磅,而是409磅。你只需要输入数字即可。

    29、设置标题行打印

    页面设置 - 工作表 - 顶端标题行

    30、不打印错误值

    页面设置 - 工作表 - 错误值打印为:空

    31、隐藏0值

    文件 - 选项 - 高级 - 去掉“显在具有零值的单元格中显示零”

    32、设置新建文件的字体和字号

    文件 - 选项 - 常规 - 新建工作簿时....

    33、快速查看函数帮助

    在公式中点击下面显示的函数名称,即可打开该函数的帮助页面。

    34、加快excel文件打开速度

    如果文件公式过多,在关闭时设置为手动,打开时会更快。

    35、按行排序

    在排序界面,点击选项,选中按行排序

    36、设置可以打印的背景图片

    在页眉中插入图片即要

    来源:网络整理

    百家号-【袁帅数据分析运营】运营者:袁帅,会展业信息化、数字化领域专家。新社汇平台联合创始人,永洪数据科学研究院MVP。认证数据分析师、网络营销师、SEM搜索引擎营销师、SEO工程师、中国电子商务职业经理人。畅销书《互联网销售宝典》联合出品人。

  • ?

    什么叫大数据分析

    Hilary

    展开

    大数据行业发展如火如荼,国家政策利好,互联网大佬纷纷在大数据行业布局,我们想让自己的职业生涯在一个朝阳行业发展,肯定又要学习相关技术,让自己与时俱进,但是难就难在大数据是一个新兴事物,目前我国大学的专业里面还鲜少有这个专业,国家刚批的大数据专业,全国目前35个高校,但是从17年开始招生,2021年才有第一批毕业生进入职场,在四年期间,是大数据行业发展的飞速时期,没有行业发展是等着人才进入的,而是需要要虚位以待、蓄势待发,所以在没有高等教育准备好的大数据教育,如何高效的学习大数据,如何快速的与行业发展想契合,那么需要我们成为第一个吃螃蟹的人,作为一个随着大数据行业成长的职业人,首先要知道大数据是个啥?

    大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    那来帮大家分析下:如何高效的学习大数据。

    经常有初学者会问,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高……首先,如果你确定了想往这个方面发展,先考虑自己的过去从业经历、专业、兴趣是什么。计算机专业——操作系统、硬件、网络、服务器?软件专业——软件开发、编程、写代码?还是数学、统计学专业——对数据和数字特别感兴趣?

    那么你能找师傅带吗?

    但凡有这种想法的人,或多或少都会存有侥幸之心,或者叫做“天真,单纯”。希望不花一分钱,就能更快速的学到更优质,更实用的技能。

    关于这一点,我只想反问一句你:“如果你是大师,你凭什么愿意带我?”

    其实这就是想告诉你大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。

    先说一下大数据的4V特征:

    数据量大,TB->PB

    数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

    商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

    处理时效性高,海量数据的处理需求不再局限在离线计算当中。

    现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

    文件存储:Hadoop HDFS、Tachyon、KFS

    离线计算:Hadoop MapReduce、Spark

    流式、实时计算:Storm、Spark Streaming、S4、Heron

    K-V、NOSQL数据库:HBase、Redis、MongoDB

    资源管理:YARN、Mesos

    日志收集:Flume、Scribe、Logstash、Kibana

    消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ

    查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid

    分布式协调服务:Zookeeper

    集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager

    数据挖掘、机器学习:Mahout、Spark MLLib

    数据同步:Sqoop

    任务调度:Oozie

    ······

    第一步:初识Hadoop

    1.1 学会百度与Google

    不论遇到什么问题,先试试搜索并自己解决。

    Google首选,翻不过去的,就用百度吧。

    1.2 参考资料首选官方文档

    特别是对于入门来说,官方文档永远是首选文档。

    相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。

    1.3 先让Hadoop跑起来

    Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

    关于Hadoop,你至少需要搞清楚以下是什么:

    · Hadoop 1.0、Hadoop 2.0

    · MapReduce、HDFS

    · NameNode、DataNode

    · JobTracker、TaskTracker

    · Yarn、ResourceManager、NodeManager

    自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。

    建议先使用安装包命令行安装,不要使用管理工具安装。

    另外:Hadoop1.0知道它就行了,现在都用Hadoop 2.0.

    1.4 尝试使用Hadoop

    · HDFS目录操作命令;

    · 上传、下载文件命令;

    · 提交运行MapReduce示例程序;

    · 打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。

    · 知道Hadoop的系统日志在哪里。

    1.5了解它们的原理

    MapReduce:如何分而治之;

    HDFS:数据到底在哪里,什么是副本;

    Yarn到底是什么,它能干什么;

    NameNode到底在干些什么;

    ResourceManager到底在干些什么;

    1.6 自己写一个MapReduce程序

    仿照WordCount例子,自己写一个(照抄也行)WordCount程序,

    打包并提交到Hadoop运行。

    不会Java的话,Shell、Python都可以,有个东西叫Hadoop Streaming。

    如果能认真完成了以上几步,恭喜你,你的一只脚已经进来了。

    第二步:更高效的WordCount

    2.1 学点SQL吧

    如果不懂数据库的童鞋先学习使用SQL句。

    2.2 SQL版WordCount

    在1.6中,你写(或者抄)的WordCount一共有几行代码?

    如果用SQL的话:

    SELECT word,COUNT(1) FROM wordcount GROUP BY word;

    这便是SQL的魅力,编程需要几十行,甚至上百行代码,SQL一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不论是离线计算还是实时计算,越来越多的大数据处理框架都在积极提供SQL接口。

    2.3 安装配置Hive

    Hive算是数据仓库工具,安装不难,网上有很多教程,配置完成后,可以正常进入Hive命令行。

    2.4 试试使用Hive

    尝试在Hive中创建wordcount表,并运行2.2中的SQL语句。在Hadoop WEB界面中找到刚才运行的SQL任务。看SQL查询结果是否和1.4中MapReduce中的结果一致。

    明明写的是SQL,为什么Hadoop WEB界面中看到的是MapReduce任务?

    2.5 学会Hive的基本命令

    创建、删除表;加载数据到表;下载Hive表的数据;并学习更多关于Hive的语法和命令。

    0和Hadoop2.0的区别

    MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);

    HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;

    自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;

    会写简单的SELECT、WHERE、GROUP BY等SQL语句;

    Hive SQL转换成MapReduce的大致流程;

    Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

    从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

    第三步:把别处的数据搞到Hadoop上

    此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

    3.1 HDFS PUT命令

    put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。建议需熟练掌握。

    3.2 HDFS API

    HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。

    实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。

    可以尝试了解原理,试着写几个Demo。

    3.3 Sqoop

    Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。

    就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

    自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。

    了解Sqoop常用的配置参数和方法。

    使用Sqoop完成从MySQL同步数据到HDFS;

    使用Sqoop完成从MySQL同步数据到Hive表;

    PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

    3.4 Flume

    Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

    下载和配置Flume。使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

    PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

    3.5 阿里开源的DataX

    之所以介绍这个,是因为以前某公司客户目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,个人感觉非常好用。现在DataX已经是3.0版本,支持很多数据源。你也可以在其之上做二次开发。

    PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

    至此,你的“大数据平台”应该是这样的:

    第四步:把Hadoop上的数据搞到别处去

    前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

    其实此处的方法和第三步基本一致的。

    4.1 HDFS GET命令

    把HDFS上的文件GET到本地。需要熟练掌握。

    4.2 HDFS API

    原理同3.2。

    4.3 Sqoop

    原理同3.3。

    使用Sqoop完成将HDFS上的文件同步到MySQL;

    使用Sqoop完成将Hive表中的数据同步到MySQL;

    4.4 DataX

    原理同3.4

    此时,“你的大数据平台”应该是这样的:

    走完第三步和第四步的流程,那么你应该已经具备以下技能和知识点:

    · 知道如何把已有的数据采集到HDFS上,包括离线采集和实时采集;

    · 知道sqoop(或者还有DataX)是HDFS和其他数据源之间的数据交换工具;

    · 知道flume可以用作实时的日志采集;

    至此,对于大数据平台,应该已经掌握如何搭建Hadoop集群,把数据采集到Hadoop上,使用Hive和MapReduce来分析数据,把分析结果同步到其他数据源。

    接下来的问题就是,Hive使用的越来越多,你会发现很多不愉快的地方,特别是速度慢,

    大多情况下,明明我的数据量很小,它都要申请资源,启动MapReduce来执行。

    第五步:快一点吧,我的SQL

    其实大家都已经发现Hive后台使用MapReduce作为执行引擎,实在是有点慢。因此SQL On Hadoop的框架越来越多,按我的了解,最常用的按照流行度依次为SparkSQL、Impala和Presto.这三种框架基于半内存或者全内存,提供了SQL接口来快速查询分析Hadoop上的数据。

    目前我们的方案使用的是SparkSQL,至于为什么用SparkSQL,原因大概如下:

    · 使用Spark还做了其他事情,不想引入过多的框架;

    · Impala对内存的需求太大,没有过多资源部署;

    5.1 关于Spark和SparkSQL

    什么是Spark,什么是SparkSQL。

    Spark有的核心概念及名词解释。

    SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。

    5.2 如何部署和运行SparkSQL

    Spark有哪些部署模式?

    如何在Yarn上运行SparkSQL?

    使用SparkSQL查询Hive中的表。

    PS:Spark不是一门短时间内就能掌握的技术,因此建议在了解了Spark之后,可以先从SparkSQL入手,循序渐进。

    第六步:一夫多妻制

    其实我想说的是数据的一次采集、多次消费。

    在实际业务场景下,特别是对于一些监控日志,想即时的从日志中了解一些指标(关于实时计算,后面步节会有介绍),这时候,从HDFS上分析就太慢了,尽管是通过Flume采集的,但Flume也不能间隔很短就往HDFS上滚动文件,这样会导致小文件特别多。

    为了满足数据的一次采集、多次消费的需求,这里要说的便是Kafka。

    6.1 关于Kafka

    Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    6.2 如何部署和使用Kafka

    使用单机部署Kafka,并成功运行自带的生产者和消费者例子。

    使用Java程序自己编写并运行生产者和消费者程序。

    Flume和Kafka的集成,使用Flume监控日志,并将日志数据实时发送至Kafka。

    至此,“大数据平台”应该扩充成这样:

    这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS。

    总结:

    为什么Spark比MapReduce快。

    使用SparkSQL代替Hive,更快的运行SQL。

    使用Kafka完成数据的一次收集,多次消费架构。

    自己可以写程序完成Kafka的生产者和消费者。

    前面的学习已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务...

  • ?

    Top30数据分析师常见面试题(附答案)!

    鸡子面

    展开

    【IT168 评论】这是一个用数据说话的时代,也是一个依靠数据竞争的时代。各大互联网公司都在不断完善自己的数据分析团队,数据分析师的薪酬也是水涨船高。业内人士透露,应届毕业生的平均薪资大概在6K左右,1至3年经验的大概在10K到20K之间,5至10年经验的大概在25K以上。薪资还是十分诱人的,那么,如何快速成长为一名年薪百万的数据分析师呢?快来看看,以下30道数据分析相关面试题,你会多少?

    1、分析数据还要写java代码是不是效率有点低?

    2、成为一名数据分析师需要具备哪些技能?

    要成为一名数据分析师,需要掌握丰富的报告软件包(Business Objects),编程语言(XML,Javascript或ETL框架),数据库(SQL,SQLite等);能够准确分析、组织、收集或传播数据;掌握数据库设计,数据模型,数据挖掘等方面的技术知识以及分析大型数据集(SAS,Excel,SPSS等)的统计软件包知识。

    3、分析项目的各个步骤是什么?

    分析项目的各个步骤包括:

    ·问题定义

    ·数据挖掘

    数据准备

    模型化

    数据认证

    实施跟踪

    4、分析的结果数据特别大,在线请求这些结果数据扛不住了,咋搞?

    5、列出数据清理的最佳实践?

    一些数据清理的最佳实践包括:

    按不同的属性排序数据

    对于大数据集,逐步清理并改进数据,直到获得良好的数据质量

    对大型数据集,可以先将其分解为小数据集,使用更少的数据将增加迭代速度

    要处理常见的清理任务,请创建一组实用程序函数/工具/脚本。它可能包括基于CSV文件或SQL数据库重映射值,或者正则表达式搜索和替换,消除所有不匹配正则表达式的值

    如果在数据清理方面存在问题,请按照估计的频率进行安排并解决问题

    分析每列的汇总统计数据(标准差,均值,缺失值的数量)

    保持对每一个清理操作的跟踪,以便可以根据需要更改或删除操作

    6、海量日志数据,提取出某日访问百度次数最多的那个IP。

    7、可用于数据分析的一些最佳工具清单有什么?

    Tableau

    RapidMiner

    OpenRefine

    KNIME

    Google Search Operators

    Solver

    NodeXL

    io

    Wolfram Alpha’s

    Google Fusion tables

    8、数据挖掘和数据分析之间的区别是什么?

    数据挖掘和数据分析之间的区别在于:

    数据分析:针对个别属性的实例分析。提供有关属性的各种信息,如值范围,离散值及其频率,空值的发生,数据类型,长度等。

    数据挖掘:重点关注聚类分析,异常记录检测,依赖关系,序列发现,多个属性之间的关系控制等。

    9、给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?

    10、用于处理分布式计算环境中应用程序大数据集的Apache框架有哪些?

    Hadoop和MapReduce是由Apache开发的用于处理分布式计算环境中应用程序大数据集的编程框架。

    11、腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在40亿个数当中?

    12、解释KNN插补方法是什么?

    在KNN插补中,通过使用与其值缺失的属性最相似的属性值来推断缺少的属性值。通过使用距离函数,确定两个属性的相似度。

    13、数据分析师使用的数据验证方法是什么?

    通常,数据分析师用于数据验证的方法是数据筛选和数据验证。

    14、解释应该如何处理可疑或缺失数据?

    准备提供所有可疑数据信息的验证报告。它应该提供信息,如失败的验证标准以及发生的日期和时间

    有经验的数据分析师应该检查可疑数据以确定其可接受性

    应该找出无效数据并用验证码替换

    对缺失数据进行处理,使用最佳分析策略,如删除,单一插补方法,基于模型的方法等。

    15、如何避免过拟合?

    过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers。常见的解决办法是正则化:增大数据集,正则化

    16、解释异常值是什么?

    异常值是分析师使用的一个术语,指的是一个远远超出样本总体模式的值。有两种类型的异常值:

    Univariate

    Multivariate

    17、解释分层聚类算法是什么?

    分层聚类算法结合并划分现有的组,创建分层结构并展示组划分或合并的顺序。

    18、解释K均值算法是什么?

    K均值是一种著名的分区方法。对象被分类为属于K个组中的一个,k是先验选择的。

    在K均值算法中:

    簇是球形的:簇中的数据点以该簇为中心

    簇的方差/扩展是相似的:每个数据点属于最接近的簇

    19、数据分析师所需掌握的关键技能是什么?

    数据科学家必须具备以下技能:

    数据库知识

    数据库管理

    数据混合

    数据查询

    数据操作

    预测分析

    基本描述性统计

    预测建模

    高级分析

    大数据知识

    大数据分析

    非结构化数据分析

    机器学习

    演示技巧

    数据可视化

    报告设计

    20、解释协同过滤是什么?

    协同过滤是一种基于用户行为数据创建推荐系统的简单算法。协同过滤最重要的组件是用户对项目的兴趣。

    协同过滤一个很好的例子就是购物网站上出现的类似“为您推荐”的模块,该模块通常会获取用户的浏览记录信息,以弹出用户可能喜欢或需要的商品。

    21、大数据中通常会使用到哪些工具?

    大数据中使用的工具包括:

    Hadoop

    Hive

    Pig

    Flume

    Mahout

    Sqoop

    22、解释什么是KPI,实验设计和80/20规则?

    关键绩效指标(KPI):它代表关键绩效指标(Key Performance Indicator),它是关于业务流程的报告或图表

    实验设计:这是用于分解数据,采样和建立数据以进行统计分析的初始过程

    80/20规则:这意味着你收入的80%来自客户的20%

    23、解释Map Reduce是什么?

    Map-Reduce是一个处理大型数据集的框架,可以将它们分解成子集,在不同的服务器上处理每个子集,然后混合每个子集上获得的结果。

    24、解释聚类是什么?聚类算法的属性?

    聚类是一种应用于数据的分类方法。聚类算法将数据集划分为自然组或集群。

    聚类算法的属性是:

    Hierarchical or flat

    Iterative

    Hard and soft

    Disjunctive

    25、对数据分析师有用的统计方法是什么?

    对数据科学家有用的统计方法是

    贝叶斯方法

    马尔科夫过程

    空间和集群进程

    统计数据,百分位数,异常值检测

    计算技巧等

    简单的算法

    数学优化

    26、时间序列分析是什么?

    时间序列分析可以在频域和时域两个域中完成。在时间序列分析中,可以通过指数平滑,对数线性回归等各种方法分析数据,来预测特定过程输出。

    27、解释空间自相关分析是什么?

    空间自相关分析是地理空间分析的常用形式。它由一系列为不同空间关系计算的估计自相关系数组成。当原始数据表示为距离而不是单个点的值时,它可以用于构建基于距离的数据相关图。

    28、散列表是什么?散列表冲突是什么?如何避免?

    在计算中,哈希表(散列表)是键值对的映射,这是一个用于实现关联数组的数据结构。它使用散列函数来计算一个时隙阵列的索引,从中可以获取所需的值。

    当两个不同的键散列到相同的值时,发生散列表冲突。两个数据不能存储在阵列的同一个插槽中。

    为了避免散列表碰撞,有很多技巧,这里列出两个:

    分离链接:它使用数据结构来存储散列到同一个插槽的多个项目。

    再探测:在找到查找位置的index的index-1,index+1位置查找,index-2,index+2查找,依次类推。这种方法称为线性再探测。

    29、解释 imputation是什么?列出不同类型的插补技术?哪种插补方法更有利?

    在插补过程中,我们用替代值替换丢失的数据。插补技术涉及的类型有:

    单一插补

    热点插补:从随机选择的类似记录中推断缺失值

    冷却板插补:与热点插补相同,但更先进,从其他数据集中选择供体

    平均估算:在所有其他情况下,用该变量的平均值代替缺失值

    回归插补:用基于其他变量的变量预测值替换缺失值

    随机回归:与回归插补一样,但它将平均回归方差加入到回归估计中

    多重插补:与单个插补不同,多重插补会多次估计值

    虽然单一插补法被广泛使用,但并不能反映随机丢失数据所造成的不确定性。因此,在数据丢失的情况下,多重插补更有利。

    30、解释N-gram是什么?

    N-gram是来自给定序列文本或语音的n个项目的连续序列。这是一种以(n-1)形式预测下一个项目的概率语言模型。

  • ?

    干货 | 这是一份完整的大数据处理技术总结与分析

    独木桥

    展开

    一 数据分析处理需求分类

    1 事务型处理

    在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。

    这类系统数据处理特点包括以下几点:

    一是事务处理型操作都是细粒度操作,每次事务处理涉及数据量都很小。

    二是计算相对简单,一般只有少数几步操作组成,比如修改某行的某列;

    三是事务型处理操作涉及数据的增、删、改、查,对事务完整性和数据一致性要求非常高。

    四是事务性操作都是实时交互式操作,至少能在几秒内执行完成;

    五是基于以上特点,索引是支撑事务型处理一个非常重要的技术。

    在数据量和并发交易量不大情况下,一般依托单机版关系型数据库,例如ORACLE、MYSQL、SQLSERVER,再加数据复制(DataGurad、 RMAN、MySQL数据复制等)等高可用措施即可满足业务需求。

    在数据量和并发交易量增加情况下,一般可以采用ORALCE RAC集群方式或者是通过硬件升级(采用小型机、大型机等,如银行系统、运营商计费系统、证卷系统)来支撑。

    事务型操作在淘宝、12306等互联网企业中,由于数据量大、访问并发量高,必然采用分布式技术来应对,这样就带来了分布式事务处理问题,而分布式事务处理很难做到高效,因此一般采用根据业务应用特点来开发专用的系统来解决本问题。

    2 数据统计分析

    数据统计主要是被各类企业通过分析自己的销售记录等企业日常的运营数据,以辅助企业管理层来进行运营决策。典型的使用场景有:周报表、月报表等固定时间提供给领导的各类统计报表;市场营销部门,通过各种维度组合进行统计分析,以制定相应的营销策略等。

    数据统计分析特点包括以下几点:

    一是数据统计一般涉及大量数据的聚合运算,每次统计涉及数据量会比较大。

    二是数据统计分析计算相对复杂,例如会涉及大量goupby、 子查询、嵌套查询、窗口函数、聚合函数、排序等;有些复杂统计可能需要编写SQL脚本才能实现。

    三是数据统计分析实时性相对没有事务型操作要求高。但除固定报表外,目前越来越多的用户希望能做做到交互式实时统计;

    传统的数据统计分析主要采用基于MPP并行数据库的数据仓库技术。主要采用维度模型,通过预计算等方法,把数据整理成适合统计分析的结构来实现高性能的数据统计分析,以支持可以通过下钻和上卷操作,实现各种维度组合以及各种粒度的统计分析。

    另外目前在数据统计分析领域,为了满足交互式统计分析需求,基于内存计算的数据库仓库系统也成为一个发展趋势,例如SAP的HANA平台。

    3 数据挖掘

    数据挖掘主要是根据商业目标,采用数据挖掘算法自动从海量数据中发现隐含在海量数据中的规律和知识。

    数据挖掘主要过程是:根据分析挖掘目标,从数据库中把数据提取出来,然后经过ETL组织成适合分析挖掘算法使用宽表,然后利用数据挖掘软件进行挖掘。传统的数据挖掘软件,一般只能支持在单机上进行小规模数据处理,受此限制传统数据分析挖掘一般会采用抽样方式来减少数据分析规模。

    数据挖掘的计算复杂度和灵活度远远超过前两类需求。一是由于数据挖掘问题开放性,导致数据挖掘会涉及大量衍生变量计算,衍生变量多变导致数据预处理计算复杂性;二是很多数据挖掘算法本身就比较复杂,计算量就很大,特别是大量机器学习算法,都是迭代计算,需要通过多次迭代来求最优解,例如K-means聚类算法、PageRank算法等。

    因此总体来讲,数据分析挖掘的特点是:

    1、数据挖掘的整个计算更复杂,一般是由多个步骤组成计算流,多个计算步骤之间存在数据交换,也就是会产生大量中间结果,难以用一条sql语句来表达。

    2、计算应该能够非常灵活表达,很多需要利用高级语言编程实现。

    二 大数据背景下事务型处理系统相关技术

    在google、facebook、taobao等大互联网公司出现之后,这些公司注册和在线用户数量都非长大,因此该公司交易系统需要解决“海量数据+高并发+数据一致性+高可用性”的问题。

    为了解决该问题,从目前资料来看,其实没有一个通用的解决方案,各大公司都会根据自己业务特点定制开发相应的系统,但是常用的思路主要包括以下几点:

    (1)数据库分片,结合业务和数据特点将数据分布在多台机器上。

    (2)利用缓存等机制,尽量利用内存,解决高并发时遇到的随机IO效率问题。

    (3)结合数据复制等技术实现读写分离,以及提高系统可用性。

    (4)大量采用异步处理机制,对应高并发冲击。

    (5)根据实际业务需求,尽量避免分布式事务。

    1相关系统介绍

    1) 阿里CORBAR系统

    阿里COBAR系统是一个基于MYSQL数据库的分布式数据库系统,属于基于分布式数据库中间件的分布式数据库系统。该系统是前身是陈思儒开发的“变形虫”系统(以前调研过),由于陈思儒离开阿里去了盛大,阿里当心“变形虫”稳定性等问题,重新开发该项目。

    该系统主要采用数据库分片思路,实现了:数据拆分、读写分离、复制等功能。由于此系统由于只需要满足事务型操作即可,因此相对真正并行数据库集群(例如TeraData等),此类系统提供操作没有也不需要提供一些复杂跨库处理,因此该系统存在以下限制:

    (1)不支持跨库的join、分页、排序、子查询。

    (2)insert等变更语句必须包括拆分字段等。

    (3)应该不支持跨机事务(以前变形虫不支持)。

    说白了此类系统不具备并行计算能力,基本上相当于数据库路由器!

    另外此类系统的在实际应用的关键问题是,根据什么对数据进行切分,因为切分不好会导致分布式的事务问题。

    2) 阿里OceanBase系统

    该系统也是淘宝为了解决高并发、大数据环境下事务型处理而定制开发的一个系统。该系统主要思路和特点如下:

    (1)他们发现在实际生成环境中,每天更新的数据只占总体数据的1%不到,因此他们把数据分为:基线数据和增量更新数据。

    (2)基线数据是静态数据,采用分布式存储方式进行存储。

    (3)只在一台服务器上存储和处理增量更新数据,并且是在内存中存储和处理更新数据。

    (4)在系统负载轻的时候,把增量更新批量合并到基线数据中。

    (5)数据访问时同时访问基线数据和增量更新数据并合并。

    因此这样好处是:

    (1)读事务和写事务分离

    (2)通过牺牲一点扩展性(写是一个单点),来避免分布式事务处理。

    说明:该系统虽然能处理高并发的事务型处理,号称很牛逼,但其实也只是根据电商的事务处理来定制开发的专用系统,个人认为其技术难度小于oracle等通用型的数据库。该系统无法应用到银行或者12306等,因为其事务处理的逻辑远远比电商商品买卖处理逻辑复杂。

    在目前的大数据时代,一定是基于应用定制才能找到好的解决方案!

    3) 基于Hbase的交易系统

    在hadoop平台下,HBASE数据库是一个分布式KV数据库,属于实时数据库范畴。支付宝目前支付记录就是存储在HBASE数据库中。

    HBASE数据库接口是非SQL接口,而是KV操作接口(基于Key的访问和基于key范围的scan操作),因此HBASE数据库虽然可扩展性非常好,但是由于其接口限制导致该数据库能支持上层应用很窄。基于HBASE应用的设计中,关键点是key的设计,要根据需要支持的应用来设计key的组成。

    可以认为HBASE数据库只支持作为KEY的这一列的索引。虽然目前HBASE有支持二级索引的方案,二级索引维护将会比较麻烦。

    2并发和并行区别

    并发是指同时执行通常不相关的各种任务,例如交易型系统典型属于高并发系统。

    并行是通过将一个很大的计算任务,划分为多个小的计算任务,然后多个小计算任务的并行执行,来缩短该计算任务计算时间。

    两者主要区别在于:

    (1)通讯与协调方面:在并行计算中,由于多个小任务同属一个大的计算任务,因此小任务之间存在依赖关系,小任务之间需要大量通讯和协调;相反,并发中的多个任务之间基本相互独立,任务与任务之间相关性很小。

    (2)容错处理方面:由于并发任务之间相互独立,某个任务执行失败并不会影响其它的任务。但是并行计算中的多个任务属于一个大任务,因此某个子任务的失败,如果不能恢复(粗粒度容错与细粒度容错),则整个任务都会失败。

    3本章总结

    数据量大不一定需要并行计算,虽然数据量大,数据是分布存储,但是如果每次操作基本上还是针对少量数据,因此每次操作基本上都是在一台服务器上完成,不涉及并行计算。只是需要通过数据复制、数据缓存、异步处理等方式来支撑高并发访问量

    三 大数据背景下数据统计分析技术介绍

    随数据量变大,和事务处理不同的是,单个统计分析涉及数据量会非常大,单个统计分析任务涉及数据会分散在多台服务器上,且由于计算量大,采用单台服务器进行计算,会导致计算时间非常长,单个统计分析任务必须采用并行计算方式来加快单个统计分析任务执行速度。

    1并行查询与并行计算技术介绍

    在大数据背景下的数据统计分析技术门类很多,常见的有:

    n MPP并行数据库 : TeraData、GreenPlum、Vertica等。

    n 基于MapReduce并行计算框架的数据仓库:

    HIVE(Hadoop平台) 、Tenzing(Google公司)

    n 基于Hbase的Phoenix系统

    n HadoopDB系统

    n EMC公司的hapt系统

    n MPP分布式查询引擎: Dremel、Impala、Presto、Shard query、Citusdb。

    n 基于SPARK的Shark、基于Dryad的SCOPE、基于Tez的stinger。

    n 基于hadoop+index的JethroData系统

    n 基于内存计算的Druid系统

    这些系统都解决了海量数据下的数据统计分析的问题,并且这些系统另外一个共同特点是都提供了SQL或者类SQL接口。

    为了能够较好研究这些系统,我们需要对并行查询与并行计算的相关技术做一个简要的介绍。

    首先所有的系统都可以分为三个层次: 语义层、并行计算引擎层、分布式存储层。语义层提供一个编程接口让用户表达所需要计算,并负责把该计算翻译成底层并行计算引擎可以执行的执行计划,并由并行计算引擎来执行,最下面一层是分布式存储层。

    对于提供类SQL接口并行计算系统,语义层可以认为是SQL解析层。

    1) 语义层

    SQL语言是一种声名式语言,SQL只是表达了要做什么,而没有表达怎么做。为此,SQL解析层主要作用是:将用户提交的基于SQL的统计分析请求,转化为底层计算引擎层可以执行的执行计划。也就是解决“怎么做”的问题。

    SQL解析层工作主要包括两个大方面:

    (1) 通过语法分析技术来理解要做什么。在关系数据库中,一般会把SQL语言分析后,形成树型结构的执行计划。

    (2) 在语法分析技术上,利用各种优化技术和算法,找出一种最经济物理执行计划。

    优化可以分为两个方面:一是逻辑层面优化、二是物理执行层面优化。

    (1) 逻辑层优化

    逻辑层面个人认为主要是因为同样表达一个分析请求,有的人SQL写的好,有的人SQL写的烂,因此在逻辑层面可以通过一些等价关系代数变换,实现查询重写,将写的比较烂的sql变换为好的写法。

    比较典型优化是:“把投影和过滤下沉,先执行过滤和投影操作”,减少中间结果。

    (2) 物理层优化

    物理层面优化是在逻辑优化后,结合实际物理执行过程,找出最优的物理执行计划。生成物理查询计划的工作包括:

    ü 增加一些操作符: 包括扫描和排序等。

    ü 确定各个操作符实现算法。例如扫描是全表扫描还是利用索引;Join是采用HASH连接、索引连接、合并排序等实现算法中的那一种。

    ü 确定操作符之间的数据流转方法:物化还是流水线方式。

    ü 采用基于代价估算方法确定最优的物理执行计划,目前代价估算主要是以估算该物理计划需要的IO量。另外对于并行数据库,则还要考虑通讯代价,即尽量减少数据在各个机器之间的传递。

    在物理层优化的代价估算过程中,代价估算需要依靠很多统计信息,如表有多大,表中相关列的值分布是什么样子等。传统数据库在数据Load过程中会事先计算好这些统计信息。并行计算中还需要考虑通讯代价。

    需要指出是,由于imapla、Presto、HIVE等系统只是一个查询引擎,它们可以直接查询以普通文件方式存储在HDFS系统上的文件,因此这些系统一般无法使用索引和各种统计信息来进行物理执行计划的优化,这些系统一般只能在逻辑层进行一些基于规则静态优化。根据SHARK论文,SHARK系统支持根据前面一些节点计算获得的信息,来动态优化后面执行计划。

    (3) 物化与流水线执行方法

    一条SQL语句对开发人员而言,感觉只是一次调用,但是实际上在数据库内部,一条SQL语句执行其实是有多个操作符组合而成的的树型结构计算流。如下图:

    针对该计算流有两种执行方式:一是基于物化或者是实体化执行方式,另外一种是基于数据流的执行方式。

    第一种方法的过程是: 把各个操作运算排序,并把每个操作运算的输出的中间结果存储在磁盘上,直到被另外一个操作运算所...

  • ?

    十种常用的数据分析方法

    樊尔丝

    展开

    道家强调四个字,叫“道、法、术、器”。

    层次区别:

    “器”是指物品或工具,在数据分析领域指的就是数据分析的产品或工具,“工欲善其事,必先利其器”;

    “术”是指操作技术,是技能的高低、效率的高下,如对分析工具使用的技术(比如用Excel进行数据分析的水平);

    “法”是指选择的方法,有句话说“选择比努力重要”;

    “道”是指方向,是指导思想,是战略。

    在数据分析和产品、运营优化方面,数据分析方法是其核心,属于“法”和“术”的层次。

    那么如何做好数据分析呢,今天我们来讲讲互联网运营中的十大数据分析方法。

    01 细分分析

    细分分析是分析的基础,单一维度下的指标数据的信息价值很低。

    细分方法可以分为两类, 一类逐步分析, 比如:来北京市的访客可分为朝阳,海淀等区; 另一类是维度交叉, 如:来自付费SEM的新访客。

    细分用于解决所有问题。

    比如漏斗转化,实际上就是把转化过程按照步骤进行细分,流量渠道的分析和评估也需要大量用到细分的方法。

    02 对比分析

    对比分析主要是指将两个相互联系的指标数据进行比较,从数量上展示和说明研究对象的规模大小,水平高低,速度快慢等相对数值, 通过相同维度下的指标对比,可以发现,找出业务在不同阶段的问题。

    常见的对比方法包括: 时间对比,空间对比,标准对比。

    时间对比有三种: 同比,环比,定基比。

    例如: 本周和上周进行对比就是环比;本月第一周和上月第一周对比就是同比;所有数据同今年的第一周对比则为定基比。通过三种方式,可以分析业务增长水平,速度等信息。

    03 漏斗分析

    转化漏斗分析是业务分析的基本模型, 最常见的是把最终的转化设置为某种目的的实现,最典型的就是完成交易。但也可以是其他任何目的的实现,比如一次使用app的时间超过10分钟。

    漏斗帮助我们解决两方面的问题:

    在一个过程中是否发生泄漏,如果有泄漏,我们能在漏斗中看到,并且能够通过进一步的分析堵住这个泄漏点。

    在一个过程中是否出现了其他不应该出现的过程,造成转化主进程收到损害。

    04 同期群分析

    同期群(cohort)分析在数据运营领域十分重要,互联网运营特别需要仔细洞察留存情况。 通过对性质完全一样的可对比群体的留存情况的比较,来分析哪些因素影响用户的留存。

    同期群分析深受欢迎的重要原因是十分简单,但却十分直观。 同期群只用简单的一个图表,直接描述了用户在一段时间周期(甚至是整个LTV)的留存或流失变化情况。

    以前留存分析只要用户有回访即定义为留存,这会导致留存指标虚高。

    05 聚类分析

    聚类分析具有简单,直观的特征, 网站分析中的聚类主要分为:用户,页面或内容,来源。

    用户聚类主要体现为用户分群,用户标签法;页面聚类则主要是相似,相关页面分组法;来源聚类主要包括渠道,关键词等。

    例如: 在页面分析中,经常存在带?参数的页面。 比如: 资讯详情页面,商品页面等,都属于同一类页面。简单的分析容易造成跳出率,退出率等指标不准确的问题,通过聚类分析可以获取同类页面的准确数据用于分析场景。

    06 AB测试

    增长黑客的一个主要思想之一,是不要做一个大而全的东西,而是不断做出能够快速验证的小而精的东西。 快速验证,那如何验证呢?主要方法就是AB测试。

    比如: 你发现漏斗转化中中间有漏洞,假设一定是商品价格问题导致了流失,你看到了问题-漏斗,也想出了主意-改变定价。但主意是否正确,要看真实的用户反应,于是采用AB测试,一部分用户还是看到老价格,一部分用户看到新价格,若你的主意真的管用,新价格就应该有更好的转化,若真如此,新价格就应该确定下来,如此反复优化。

    07 埋点分析

    只有采集了足够的基础数据,才能通过各种分析方法得到需要的分析结果。

    通过分析用户行为,并细分为:浏览行为,轻度交互,重度交互,交易行为,对于浏览行为和轻度交互行为的点击按钮等事件,因其使用频繁,数据简单,采用无埋点技术实现自助埋点,即可以提高数据分析的实效性,需要的数据可立即提取,又大量减少技术人员的工作量,需要采集更丰富信息的行为。

    如: 重度交互(注册,邀请好友等)和交易事件(加购物车,下订单等)则通过SDK批量埋点的方式来实施。

    08 来源分析

    流量红利消失,我们对获客来源的重视度极高,如何有效的标注用户来源,至关重要。

    传统分析工具,渠道分析仅有单一维度,要深入分析不同渠道不同阶段效果,SEM付费搜索等来源渠道和用户所在地区进行交叉分析,得出不同区域的获客详细信息,维度越细,分析结果也越有价值。

    09 用户分析

    用户分析是互联网运营的核心, 常用的分析方法包括:活跃分析,留存分析,用户分群,用户画像,用户细查等。

    可将用户活跃细分为浏览活跃,互动活跃,交易活跃等,通过活跃行为的细分,掌握关键行为指标;通过用户行为事件序列,用户属性进行分群,观察分群用户的访问,浏览,注册,互动,交易等行为,从而真正把握不同用户类型的特点,提供有针对性的产品和服务。

    用户画像基于自动标签系统将用户完整的画像描绘清晰,更有力的支撑运营决策。

    10 表单分析

    填写表单是每个平台与用户交互的必备环节,优秀的表单设计,对转化率的提升起到重要作用。

    用户从进入表单页面之时起,就产生了微漏斗,从进入总人数到最终完成并成功提交表单人数,这个过程之中,有多少人开始填写表单,填写表单时,遇到了什么困难导致无法完成表单,都影响最终的转化效果。

    以上是常见的数据分析方法,更多应用方法需要根据业务场景灵活应用。

  • ?

    数据分析的8种方法详解

    童南莲

    展开

    对于具体的业务场景问题,我们该怎么办呢?我们以一个电子商务网站为例,用数据分析产品 GrowingIO 对该网站进行快速地数据采集、清晰和可视化展示,然后给大家分享这 8 种常见的数据分析方法。

    1 数字和趋势

    看数字、看趋势是最基础展示数据信息的方式。

    在数据分析中,我们可以通过直观的数字或趋势图表,迅速了解例如市场的走势、订单的数量、业绩完成的情况等等,从而直观的吸收数据信息,有助于决策的准确性和实时性。

    对于电子商务网站,流量是非常重要的指标。

    上图中,我们将网站的访问用户量(UV)和页面浏览量(PV)等指标汇汇聚到统一的数据看板(Dashboard),并且实时更新。

    这样的一个数据看板,核心数字和趋势一目了然,对于首席增长官来说一目了然。

    2 维度分解

    当单一的数字或趋势过于宏观时,我们需要通过不同的维度对于数据进行分解,以获取更加精细的数据洞察。

    在选择维度时,需要仔细思考其对于分析结果的影响。

    举个例子,当监测到网站流量异常时,可以通过拆分地区、访问来源、设备、浏览器等等维度,发现问题所在。

    3 用户分群

    针对符合某种特定行为或背景信息的用户,进行归类处理,是我们常常讲到的用户分群(segmentation )的手段。

    我们也可以通过提炼某一群用户的特定信息,创建该群体用户的画像。 例如访问购物网站、寄送地址在北京的用户,可以被归类为“北京”用户群体。

    而针对“北京”用户群体,我们可以进一步观察他们购买产品的频度、类别、时间,这样我们就创建出该用户群体的画像。

    在数据分析中,我们往往针对特定行为、特定背景的用户进行有针对性的用户运营和产品优化,效果会更加明显。

    上图中,我们通过 GrowingIO 的用户分群功能将一次促销活动中支付失败的用户挑选出来,然后推送相应的优惠券。

    这样精准的营销推广,可以大幅度提高用户支付的意愿和销售金额。

    4 转化漏斗

    绝大部分商业变现的流程,都可以归纳为漏斗。

    漏斗分析是我们最常见的数据分析手段之一,无论是注册转化漏斗,还是电商下单的漏斗。

    通过漏斗分析可以从先到后还原用户转化的路径,分析每一个转化节点的效率。  其中,我们往往关注三个要点: 第一,从开始到结尾,整体的转化效率是多少?  第二,每一步的转化率是多少?  第三,哪一步流失最多,原因在什么地方?流失的用户符合哪些特征?

    上图中注册流程分为 3 个步骤,总体转化率为45.5%;

    也就是说有 1000 个用户来到注册页面,其中 455 个成功完成了注册。

    但是我们不难发现第二步的转化率是 56.8% ,显着低于第一步 89.3% 和第三步转化率 89.7%,可以推测第二步注册流程存在问题。

    显而易见第二步的提升空间是最大的,投入回报比肯定不低;如果要提高注册转化率,我们应该优先解决第二步。

    5 行为轨迹

    关注行为轨迹,是为了真实了解用户行为。

    数据指标本身往往只是真实情况的抽象,例如,网站分析如果只看访问用户量(UV)和页面访问量(PV)这类指标,断然是无法全面理解用户如何使用你的产品。通过大数据手段,还原用户的行为轨迹,有助于增长团队关注用户的实际体验、发现具体问题,根据用户使用习惯设计产品、投放内容。

    上图中展示了一位用户在某电商网站上的详细行为轨迹,从官网到落地页,再到商品详情页,最后又回到官网首页。

    网站购买转化率低,以往的业务数据无法告诉你具体的原因;通过分析上面的用户行为轨迹,可以发现一些产品和运营的问题(比如是不是商品不匹配等等),从而为决策提供依据。

    6 留存分析

    在人口红利逐渐消褪的时代,留住一个老用户的成本要远远低于获取一个新用户。

    每一款产品,每一项服务,都应该核心关注用户的留存,确保做实每一个客户。

    我们可以通过数据分析理解留存情况,也可以通过分析用户行为或行为组与回访之间的关联,找到提升留存的方法。

    在 LinkedIn,增长团队通过数据发现,如果新用户进来后添加 5 个以上的联系人(上图红色线条),那么他/她在 LinkedIn 上留存要远远高于那些没有添加联系人(上图绿色和紫色的线条)的留存。

    这样,添加联系人称为 LinkedIn 留存新用户的最核心手段之一。除了需要关注整体用户的留存情况之外,市场团队可以关注各个渠道获取用户的留存度,或各类内容吸引来的注册用户回访率,产品团队关注每一个新功能对于用户的回访的影响等等,这些都是常见的留存分析场景。

    7 A/B 测试

    A/B 测试用来对比不同产品设计/算法对结果的影响。

    产品在上线过程中经常会使用 A/B 测试来测试不同产品或者功能设计的效果,市场和运营可以通过 A/B 测试来完成不同渠道、内容、广告创意的效果评估。

    举个例子,我们设计了两种不同的产品交互形式,通过比较实验组(A 组)和对照组(B 组)的访问时长和页面浏览量两个衡量指标,来评估哪一种交互形式更佳。要进行 A/B 测试有两个必备因素:

    第一,有足够的时间进行测试;

    第二,数据量和数据密度较高。

    因为当产品流量不够大的时候,做 A/B 测试得到统计结果是很难的。而像 LinkedIn 这样大体量的公司,每天可以同时进行上千个 A/B 测试。所以 A/B 测试往往在公司数据规模较大时使用会更加精准,更快得到统计的结果。

    8 数学建模

    当一个商业目标与多种行为、画像等信息有关联性时,我们通常会使用数学建模、数据挖掘的手段进行建模,预测该商业结果的产生。

    作为一家 SaaS 企业,当我们需要预测判断客户的流失时,可以通过用户的行为数据、公司信息、用户画像等数据建立流失模型。

    利用统计学的方式进行一些组合和权重计算,从而得知用户满足哪些行为之后流失的可能性会更高。

    我们常常说,不能度量,就无法增长,数据分析对于企业商业价值的提升有着至关重要的作用。

    当然,仅仅掌握单纯的理论还远远不够,实践出真知。数据分析的方法大家不妨在自己日常工作中,有分析相关项目里尝试使用,相信可以事半功倍,创造更多商业价值。

  • ?

    数据分析中的六原则三避免

    光之刃

    展开

    为什么你的数据分析成果总是难以落地?数据分析的价值总是远远低于预期?

    01 遵循数据分析标准流程

    数据分析遵循一定的流程,不仅可以保证数据分析每一个阶段的工作内容有章可循,而且还可以让分析最终的结果更加准确,更加有说服力。一般情况下,数据分析分为以下几个步骤:

    1)业务理解,确定目标、明确分析需求;

    2)数据理解,收集原始数据、描述数据、探索数据、检验数据质量;

    3)数据准备,选择数据、清洗数据、构造数据、整合数据、格式化数据;

    4)建立模型,选择建模技术、参数调优、生成测试计划、构建模型;

    5)评估模型,对模型进行较为全面的评价,评价结果、重审过程;

    6)成果部署,分析结果应用。

    02 明确数据分析目标

    在数据分析前期,要做到充分沟通、理解业务规则、关注业务痛点、了解用户需求、换位思考,明确为什么要做数据分析,要达到一个什么目标。

    03 业务与数据结合确定分析主题

    以解决业务问题为目标,以数据现状为基础,确定分析主题。前期要做好充分的准备,以业务问题为导向,以业务梳理为重点,进行多轮讨论,分析主题避免过大,针对业务痛点,实现知现状、明原因、可预测、有价值。

    04 多种分析方法结合

    分析过程中尽量运用多种分析方法,以提高分析的准确性和可靠性。例如,运用定性定量相结合的分析方法对于数据进行分析;融合交互式自助BI、数据挖掘、自然语言处理等多种分析方法;高级分析和可视化分析相结合等。

    05 选择合适的分析工具

    工欲善其事,必先利其器,数据分析过程中要选择合适的分析工具做分析。SPSS、Rapidminer、R、Python等这几种工具都是业界比较认可的数据分析产品。

    它们各有其优势,SPSS 较早进入国内市场,发展已经相对成熟,有大量参考书可供参考,操作上容易上手,简单易学。Rapidminer 易用性和用户体验做得很好,并且内置了很多案例用户可直接替换数据源去使用。R 是开源免费的,具有良好的扩展性和丰富的资源,涵盖了多种行业中数据分析的几乎所有方法,分析数据更灵活。Python,有各种各样功能强大的库,做数据处理很方便。

    06 分析结论尽量图表化

    经过严谨推导得出的结论,首先要精简明确,3-5条即可。其次要与业务问题结合,给出解决方案或建议方案。第三尽量图表化,要增强其可读性。

    数据分析过程中,除了以上六条原则,还要避免以下3种情况:

    1)时间安排不合理

    在开始分析工作之前,一定要做一个明确的进度计划,时间分配的原则是:数据收集、整理及建模占70%,数据可视化展现及分析报告占25%,其他占5%。

    2)数据源选择不合理

    一般企业中的数据来源有很多,SAP、TMS、CRM及各部门业务系统,每个渠道的数据各有特点。这时,应该慎重考虑从哪个渠道获取数据更加快捷有效。数据源选择不合理,不仅影响结论的可靠性,而且有返工的风险。

    3)沟通不充分

    无论是分析人员内部的沟通还是与外部相关人员的沟通,都是至关重要的。与外部人员沟通效不顺畅,可能造成前期需求不清,中间业务逻辑混乱,最终导致数据分析结果差强人意。与内部人员沟通效率低,可能造成分析进度滞后,分析工作开展不畅等诸多问题,直接影响分析效果。

    对于数据分析师,分析经验的积累与专业知识的提升同样重要,因为有些问题不是只用专业知识就能解决的,所以在平时的工作中要有意识的去学习业务知识、掌握先进的分析工具,做一个有心人! |内容来源:大数据

    百家号-【袁帅数据分析运营】运营者:袁帅,互联网数据分析运营实践者,新社汇联合创始人。会展业信息化、数字化领域专家。认证数据分析师、网络营销师、SEM搜索引擎营销师、SEO工程师、电子商务职业经理人。

  • ?

    数据分析全流程(内附案例)

    映冬

    展开

    (图片来源于网络)

    作者:苏格兰折耳喵

    来源: 运营喵是怎样炼成的 (yymzylc)

    (温馨提示:图片显示毛糙和不清楚,是分辨率过高的缘故,点击图片,即可看到高清大图。 )

    本文将对一个案例进行从数据采集、数据清洗、数据分析再到数据可视化的全流程分析,力求条理清晰的展现外部数据分析的强大威力。以下是本文的写作框架:

    1 分析背景

    1.1 分析原理---为什么选择分析虎嗅网

    在现今数据爆炸、信息质量良莠不齐的互联网时代,我们无时无刻不身处在互联网社会化媒体的“信息洪流”之中,因而无可避免的被它上面泛滥的信息所“裹挟”,也就是说,社会化媒体上的信息对现实世界中的每个人都有重大影响,社会化媒体是我们间接了解现实客观世界和主观世界的一面窗户,我们每时每刻都在受到它的影响。

    综合上述两类情形,可以得出这样的结论,透过社会化媒体,我们可以观察现实世界:

    由此, 社会化媒体是现实主客观世界的一面镜子,而它也会进一步影响人们的行为,如果我们对该领域中的优质媒体所发布的信息进行分析,除了可以了解该领域的发展进程和现状,还可以对该领域的人群行为进行一定程度的预判。

    鉴于此种情况,作为互联网从业者的笔者想分析一下互联网行业的一些现状,于是想到了虎嗅网。

    虎嗅网创办于2012年5月,是一个聚合优质创新信息与人群的新媒体平台。该平台专注于贡献原创、深度、犀利优质的商业资讯,围绕创新创业的观点进行剖析与交流。虎嗅网 的核心,是关注互联网及传统产业的融合、一系列明星公司(包括公众公司与创业型企业)的起落轨迹、产业潮汐的动力与趋势。

    因此,对该平台上的发布内容进行分析,对于研究互联网的发展进程和现状有一定的实际价值。

    1.2 本文的分析目的

    笔者在本项目中的分析目的主要有4个:

    (1)对虎嗅网内容运营方面的若干分析,主要是对发文量、收藏量、评论量等方面的描述性分析;

    (2)通过文本分析,对互联网行业的一些人、企业和细分领域进行趣味性的分析;

    (3)展现文本挖掘在数据分析领域的实用价值;

    (4)将杂芜无序的结构化数据和非结构化数据进行可视化,展现数据之美。

    1.3 分析方法---分析工具和分析类型

    本文中,笔者使用的数据分析工具如下:

    Python3.5.2(编程语言)

    Gensim(词向量、主题模型)

    Scikit-Learn(聚类和分类)

    Keras(深度学习框架)

    Tensorflow(深度学习框架)

    Jieba(分词和关键词提取)

    Excel(可视化)

    Seaborn(可视化)

    新浪微舆情(情绪语义分析)

    Bokeh(可视化)

    Gephi(网络可视化)

    Plotly(可视化)

    使用上述数据分析工具,笔者将进行2类数据分析:第一类是较为传统的、针对数值型数据的描述下统计分析,如阅读量、收藏量等在时间维度上的分布;另一类是本文的重头戏---深层次的文本挖掘,包括关键词提取、文章内容LDA主题模型分析、词向量/关联词分析、DTM模型、ATM模型、词汇分散图和词聚类分析。

    2 数据采集和文本预处理

    2.1 数据采集

    笔者使用爬虫采集了来自虎嗅网主页的文章(并不是全部的文章,但展示在主页的信息是主编精挑细选的,很具代表性),数据采集的时间区间为2012.05~2017.11,共计41,121篇。采集的字段为文章标题、发布时间、收藏量、评论量、正文内容、作者名称、作者自我简介、作者发文量,然后笔者人工提取4个特征,主要是 时间特征 (时点和周几)和 内容长度特征 (标题字数和文章字数),最终得到的数据如下图所示:

    2.2 数据预处理

    数据分析/挖掘领域有一条金科玉律:“Garbage in, Garbage out”,做好数据预处理,对于取得理想的分析结果来说是至关重要的。本文的数据规整主要是对文本数据进行清洗,处理的条目如下:

    (1) 文本分词

    要进行文本挖掘,分词是最为关键的一步,它直接影响后续的分析结果。笔者使用jieba来对文本进行分词处理,它有3类分词模式,即全模式、精确模式、搜索引擎模式:

    · 精确模式:试图将句子最精确地切开,适合文本分析;

    · 全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;

    · 搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    现以“新浪微舆情专注于社会化大数据的场景化应用”为例,3种分词模式的结果如下:

    【全模式】: 新浪/ 微舆情/ 新浪微舆情/ 专注/于/ 社会化/ 大数据/ 社会化大数据/ 的/ 场景化/ 应用

    【精确模式】: 新浪微舆情/ 专注/于/ 社会化大数据/ 的/ 场景化/ 应用

    【搜索引擎模式】:新浪,微舆情,新浪微舆情,专注,于,社会化,大数据,社会化大数据,的,场景化,应用

    为了避免歧义和切出符合预期效果的词汇,笔者采取的是精确(分词)模式。

    (2) 去停用词

    这里的去停用词包括以下三类:

    标点符号:, 。! /、*+-

    特殊符号:▲等

    无意义的虚词: “the”、“a”、“an”、“that”、“你”、“我”、“他们”、“想要”、“打开”、“可以”等

    (3) 去掉高频词、稀有词和计算Bigrams

    去掉高频词、稀有词是针对后续的主题模型(LDA、ATM)时使用的,主要是为了排除对区隔主题意义不大的词汇,最终得到类似于停用词的效果。

    Bigrams是为了自动探测出文本中的新词,基于词汇之间的共现关系---如果两个词经常一起毗邻出现,那么这两个词可以结合成一个新词,比如“数据”、“产品经理”经常一起出现在不同的段落里,那么,“数据_产品经理”则是二者合成出来的新词,只不过二者之间包含着下划线。

    3 描述性分析

    该部分中,笔者主要对数值型数据进行描述性的统计分析,它属于较为常规的数据分析,能揭示出一些问题,做到知其然。

    3.1 发文数量、评论量和收藏量的变化走势

    从下图可以看出,在2012.05~2017.11期间,以季度为单位,主页的发文数量起伏波动不大,在均值1800上下波动,进入2016年后,发文数量有明显提升。

    此外,一头(2012年第二季)一尾(2017年第四季)因为没有统计完全,所以发文数量较小。

    下图则是该时间段内收藏量和评论量的变化情况,评论量的变化不愠不火,起伏不大,但收藏量一直在攀升中,尤其是在2017年的第二季达到峰值。收藏量在一定程度上反映了文章的干货程度和价值性,读者认为有价值的文章才会去保留和收藏,反复阅读,含英咀华,这说明虎嗅的文章质量在不断提高,或读者的数量在增长。

    3.2 发文时间规律分析

    笔者从时间维度里提取出“周”和“时段”的信息,也就是开题提到的“人工特征”的提取,现在做文章分布数量的在“周”和“时”上的交叉分析,得到下图:

    上图是一个热力图,色块颜色上的由暖到冷表征数值的由大变小。很明显的可以看到,中间有一个颜色很明显的区域,即由“6时~19时”和“周一~周五”围成的矩形,也就是说,发文时间主要集中在工作日的白天。另外,周一到周五期间,6时~7时这个时间段是发文的高峰,说明虎嗅的内容运营人员倾向于在工作日的清晨发布文章,这也符合它的人群定位---TMT领域从业、创业者、投资人,他们中的许多人有晨读的习惯,喜欢在赶地铁、坐公交的过程中阅读虎嗅讯息。发文高峰还有9时-11时这个高峰,是为了提前应对读者午休时间的阅读,还有17时~18时,提前应对读者下班时间的阅读。

    3.3 相关性分析

    笔者一直很好奇,文章的评论量、收藏量和标题字数、文章字数是否存在统计学意义上的相关性关系。基于此,笔者绘制出能反映上述变量关系的两张图。

    首先,笔者做出了标题字数、文章字数和评论量之间的 气泡图 (圆形的气泡被六角星替代,但本质上还是气泡图)。

    上图中,横轴是文章字数,纵轴是标题字数,评论数大小由六角星的大小和颜色所反映,颜色越暖,数值越大,五角星越大,数值越大。从这张图可以看出,文章评论量较大的文章,绝大部分分布于由文章字数6000字、标题字数20字所构成的区域内。虎嗅网上的商业资讯文章大都具有原创、深度的特点,文章篇幅中长,意味着能把事情背后的来龙去脉论述清楚,而且标题要能够吸引人,引发读者的大量阅读,合适长度标题和正文篇幅才能做到这一点。

    接下来,笔者将收藏量、评论量和标题字数、文章字数绘制成一张3D立体图,X轴和Y轴分别为标题字数和正文字数,Z轴为收藏量和评论量所构成的 平面 ,通过旋转这个3维的Surface图,我们可以发现收藏量、评论量和标题字数、文章字数之间的相关关系。

    注意,上图的数值表示和前面几张图一样,颜色上的由暖到冷表示数值的由大到小,通过旋转各维度的截面,可以看到在正文字数5000字以内、标题字数15字左右的收藏量和评论量形成的截面出现“华山式”陡峰,因而这里的收藏量和评论量最大。

    3.4 城市提及分析

    在这里,笔者通过构建一个包含全国1~5线城市的词表,提取出经过预处理后的文本中的城市名称,根据提及频次的大小,绘制出 一张反映城市提及频次的地理分布地图 , 进而间接地了解各个城市互联网的发展状况(一般城市的提及跟互联网产业、产品和职位信息挂钩,能在一定程度上反映该城市互联网行业的发展态势)。

    上图反映的结果比较符合常识,北上深广杭这些一线城市的提及次数最多,它们是互联网行业发展的重镇。值得注意的是,长三角地区的大块区域(长江三角洲城市群,它包含 上海 , 江苏省 的 南京 、 无锡 、 常州 、 苏州 、 南通 、 盐城 、 扬州 、 镇江 、 泰州 , 浙江省 的 杭州 、 宁波 、 嘉兴 、 湖州 、 绍兴 、 金华 、 舟山 、 台州 , 安徽省 的 合肥 、 芜湖 、 马鞍山 、 铜陵 、 安庆 、 滁州 、 池州 、 宣城 )呈现出较高的热度值,直接说明这些城市在虎嗅网各类资讯文章中的提及次数较多,结合国家政策和地区因素,可以这样理解地图中反映的这个事实:

    长三角城市群是“一带一路”与长江经济带的重要交汇地带,在中国国家现代化建设大局和全方位开放格局中具有举足轻重的战略地位。中国参与国际竞争的重要平台、经济社会发展的重要引擎,是长江经济带的引领发展区,是中国城镇化基础最好的地区之一。

    长三角城市群是“一带一路”与长江经济带的重要交汇地带,在中国国家现代化建设大局和全方位开放格局中具有举足轻重的战略地位。中国参与国际竞争的重要平台、经济社会发展的重要引擎,是长江经济带的引领发展区,是中国城镇化基础最好的地区之一。

    接下来,笔者将抽取文本中城市之间的 共现关系 ,也就是城市之间两两同时出现的频率,在一定程度上反映出城市间经济、文化、政策等方面的相关关系,共现频次越高,说明二者之间的联系紧密程度越高,抽取出的结果如下表所示:

    将上述结果绘制成如下动态的流向图:

    由于虎嗅网上的文章大多涉及创业、政策、商业方面的内容,因而这种城市之间的共现关系反映出城际间在资源、人员或者行业方面的关联关系,本动态图中,主要反映的是北上广深杭(网络中的枢纽节点)之间的相互流动关系和这几个一线城市向中西部城市的单向流动情形。流动量大、交错密集的区域无疑是中国最发达的3个城市群和其他几个新兴的城市群:

    京津冀城市群

    长江三角洲城市群

    珠江三角洲城市群

    中原城市群

    成渝城市群

    长江中游城市群

    上面的数据分析是基于数值型数据的描述性分析,接下来,笔者将进行更为深入的文本挖掘。

    4 文本挖掘

    数据挖掘是从有结构的数据库中鉴别出有效的、新颖的、可能有用的并最终可理解的模式;而文本挖掘(在文本数据库也称为文本数据挖掘或者知识发现)是从大量非结构的数据中提炼出模式,也就是有用的信息或知识的半自动化过程。

    本文的文本挖掘部分主要涉及高频词统计/关键词提取/关键词云、文章标题聚类、文章内容聚类、文章内容LDA主题模型分析、词向量/关联词分析、ATM模型、词汇分散图和词聚类分析。

    4.1 关键词提取

    对于关键词提取,笔者没有采取词频统计的方法,因为词频统计的逻辑是:一个词在文章中出现的次数越多,则它就越重要。因而,笔者采用的是 TF-IDF (termfrequency–inverse document frequency)的关键词提取方法:

    它用以评估一字/词对于一个文件集或一个语料库中的其中一份文件的重要程度,字/词的重要性会随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。

    由此可见,在提取某段文本的关键信息时,关键词提取较词频统计更为可取,能提取出对某段文本具有重要意义的关键词。

    下面是笔者利用jieba在经预处理...

在数据分析中

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP