《企业大数据系统构建实战:技术、架构、实施与应用》


为什么要写这本书

随着2013年大数据元年的开启,各行各业都已经将大数据视为推动企业发展、推进行业进步、加快产业升级、促进民生繁荣、巩固社会安全甚至提升国家竞争力的核心武器。从个性化推荐、关联销售到精准营销,从云平台、云服务、云计算到大数据产业链,从百度迁徙、高考预测到冬季流感预测,从机器学习、图像识别到智能交通,从奥巴马总统竞选到美国中央情报局反恐,从美国的大数据研究和发展计划到中国的促进大数据发展行动纲要等一系列事实说明了大数据正受到来自政治、经济、社会、文化、军事等各个领域的广泛关注,并越来越彰显其巨大价值。

大数据不仅是一个技术名词,更是当下企业资产、核心竞争力、完整产业链和先进生产力

继续阅读

混合高斯模型Gaussian Mixture Model(GMM)


混合高斯模型(Gaussian Mixture Model,简称GMM)是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。通俗点讲,无论观测数据集如何分布以及呈现何种规律,都可以通过多个单一高斯模型的混合进行拟合。

如下图是一个观测数据集,数据集明显分为两个聚集核心,我们通过两个单一的高斯模型混合成一个复杂模型来拟合数据。这就是一个混合高斯模型。

QQ截图201505081402351111

既然混合高斯模型是由n个(或多个)单高斯模型组成,那么首先了解下单高斯模型(Single Mixture Model,简称SMM)。

最常见的单高斯模型(或者叫单高斯分布)就是

继续阅读

适合大数据的聚类算法Mini Batch K-Means


[K-Means算法]是常用的聚类算法,但其算法本身存在一定的问题,例如在大数据量下的计算时间过长就是一个重要问题。为此,Mini BatchK-Means,这个基于K-Means的变种聚类算法应运而生。 大数据量是什么量级?通过当样本量大于1万做聚类时,就需要考虑选用Mini Batch K-Means算法。但是,在选择算法时,除了算法效率(运行时间)外,算法运行的准确度也是选择算法的重要因素。Mini Batch

K-Means算法的准确度如何?

minibatchkmeans11

上图是我们队3万的样本点分别使用K-Means和Mini Batch KMeans进行聚类的结果,由结果可知,在3万样本点的基础上,二者

继续阅读

数据预处理-清洗转换


当数据质量校验完成后,针对有问题的数据要进行的是数据清洗和转换,另外还包括对正常数据的转换。数据清洗的主要作用包括:纠正错误、删除重复项、统一规格、修正逻辑、转换构造和数据压缩。

1. 纠正错误

错误数据是数据源环境中经常出现的一类问题。数据错误的形式包括:

  • 数据值错误:数据直接是错误的,例如超过固定域集、超过极值、拼写错误、属性错误、源错误等。
  • 数据类型错误:数据的存储类型不符合实际情况,如日期类型的以数值型存储,时间戳存为字符串等。
  • 数据编码错误:数据存储的编码错误,例如将UTF-8写成UTF-80。
  • 数据格式错误:数据的存储格式问题,如半角全角字符、中英文字符等。
  • 数据异常错误:如数值

继续阅读

企业大数据的数据源内容


数据源指的是企业内、外部数据的来源。数据源是大数据工作流的起点,一个完整的、需要不断迭代更新的数据工作都应该从数据源开始。这些数据源由于各自生产、存储环境的不同可分为日志/文件、数据库、网络爬虫、第三方API等。

1日志/文件

在企业内部数据源中,会存在各种日志或文件类型的数据,可能包括以下几类:

  • 日志数据,包括机器日志、用户访问日志、监控日志等,这些日志通常都是以半结构化的文本文件进行存储。
  • 视频数据,主要是动态影像数据,比如宣传视频、操作视频、监控视频、医疗视频、记录视频等,这些大多是非结构化的数据并以文件的形式进行存储。
  • 音频数据,主要集中在客服坐席录音领域,以非结构化的文件的形式进行

继续阅读

使用Python从Excel获取运营数据


现有的Excel分为两种格式:xls(Excel 97-2003)和xlsx(Excel 2007及以上)。

Python处理Excel文件主要是第三方模块库xlrd、xlwt、pyexcel-xls、xluntils和pyExcelerator,以及win32com和openpyxl模块,此外Pandas中也带有可以读取Excel文件的模块(read_excel)。

基于扩展知识的目的,我们使用xlrd模块读取Excel数据。 首先安装该库,在系统终端命令行输入命令pip install xlrd。 然后我们以“附件-chapter2”文件夹demo.xlsx数据文件为例,介绍该库的具体应用

继续阅读

DBSCAN


DBSCAN的全部英文是Density-Based Spatial Clustering of Applications with Noise,中文是“基于密度的带有噪声的空间聚类”。DBSCAN是一个比较有代表性的基于密度的聚类算法,与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

该算法利用基于密度的聚类的概念,即要求聚类空间中的一定区域内(用Eps定义出的半径)所包含对象(点或其他空间对象)的数目不小于某一给定阈值(用MinPts定义的聚类点数)。

DBSCAN算法的显著优点是聚类能够 有效处理

继续阅读

谱聚类Spectral clustering(SC)


在之前的文章里,介绍了比较传统的[K-Means聚类]、[Affinity Propagation(AP)聚类]、比K-Means更快的[Mini Batch K-Means]聚类以及[混合高斯模型Gaussian Mixture Model(GMM)]等聚类算法,今天介绍一个比较近代的一类算法——Spectral Clustering 中文通常称为“谱聚类”。

Spectral Clustering(谱聚类,有时也简称SC),其实是一类算法的统称。

它是一种基于图论的聚类方法(这点上跟AP类似,而K-Means是基于点与点的距离计算),它能够识别任意形状的样本空间且收敛于全局最有解,其基本思

继续阅读

聚类算法Mean Shift


Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,然后以此为新的起始点,继续移动,直到满足一定的结束条件。 Mean Shift算法是一种无参密度估计算法或称[核密度估计算法],Mean shift是一个向量,它的方向指向当前点上概率密度梯度的方向。

所谓的核密度评估算法,指的是根据数据概率密度不断移动其均值质心(也就是算法的名称Mean Shift的含义)直到满足一定条件。 mean-shift11

上图诠释了Mean Shift算法的基本工作原理,那么如何找到数据概率密度最大的区域?

数据最密集的地方,对应于概率密度最大的地方。我们可以对概率密度求梯度,梯度的方向就是概率密度增加最大的

继续阅读

聚类算法Affinity Propagation(AP)


Affinity Propagation聚类算法简称AP,是一个在07年发表在Science上面比较新的算法。

AP算法的基本思想是将全部样本看作网络的节点,然后通过网络中各条边的消息传递计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度(responsibility)和归属度(availability)。AP算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生m个高质量的Exemplar(类似于质心),同时将其余的数据点分配到相应的聚类中。

在AP算法中有一些特殊名词:

  • Exemplar:指的是聚类中心,K-Means中的质心。
  • Similarity:数据

继续阅读