数据分析相关概念整理

最近谋到了一份Python数据分析方面的工作

这里整理一些数据分析工作中经常听到的概念,名词,避免工作中听到了一脸懵逼

这些概念相互融合,密切相关,但又各有侧重点

商业智能

是一种方法,通过整合你电脑系统里的各种数据,帮助你了解你的企业情况.

这项技术虽然听起来高端复杂,但它的概念却十分简洁明了。

举个例子,如果一个企业用了Salesforce(一个用来跟踪销售活动的平台),并且又用了SAP或者Oracle(甲骨文)来管理财务报表,那么商业智能系统就能将这两个不同系统上的数据整合到一个数据库里来(集中存储起来),然后为你提供精简的可视化信息。

你想想,如果没有商业智能,你就得手动去调出多个不同系统里的图表来才能了解公司的表现。

专业的IT人士,会把通过这种商业智能系统处理过的数据叫做“结构化”数据,也就是说,这种在一个数据库中的数据,更易理解。

数据挖掘

是将数学,应用到体量庞大的数据库上,去发现有用或有趣的趋势。

其实,这就是去寻找一些“已知的未知趋势”(你知道存在但不了解具体情况的趋势)和“未知的未知趋势”(你连存不存在都不知道的趋势)。

数据挖掘可以应用在商业智能系统中,也能应用在大数据以及任何普通的数据库上。任何因为体量太大而无法手动整理的数据库,都能通过数据挖掘来发掘一些增长或缩减的趋势,这就是数据挖掘的魔力。

数据挖掘是非常强大的工具。

数据分析

是将数据变成简单易懂的可视图表,比如一张热度图,或者集群图。

我们大脑的设定让我们更易理解图像,这就是为什么数据分析要将数据“可视化”。
同样,数据分析可以应用在商业智能系统中,也可以应用在大数据以及任何普通的数据库上。
数据分析通过数据讲一个简单易懂的故事,是一种让我们“拍拍脑袋”就能懂的东西。

大数据

是用来理解“人”的习惯和行为的方法:比如社交媒体软件和企业网站的点击量。

为什么一个企业需要这样做呢?因为他们能通过了解消费者的行为来了解他们的需求,并为他们提供更好的网络体验,让他们购买更多的东西。既然广告越来越多地出现在移动软件和网页上,那么这种了解消费者行为的能力就变得越来越重要。

专业的IT人士将这种数据称作“非结构化”数据,换句话说,就是这种数据非常松散,需要收集、整合和分析。

想象一下,你可能需要手动地从成百上千行数据里寻找趋势和相关性。

数据仓库

数据仓库系统的核心是联机分析处理,但数据仓库包括更为广泛的内容。

概括来说,数据仓库系统是指具有综合企业数据的能力,能够对大量企业数据进行快速和准确分析,辅助做出更好的商业决策的系统。

它本身包括三部分内容:

  • 数据层:实现对企业操作数据的抽取、转换、清洗和汇总,形成信息数据,并存储在企业级的中心信息数据库中。

  • 应用层:通过联机分析处理,甚至是数据挖掘等应用处理,实现对信息数据的分析。

  • 表现层:通过前台分析工具,将查询报表、统计分析、多维联机分析和数据发掘的结论展现在用户面前。

从应用角度来说,数据仓库系统除了联机分析处理外,还可以采用传统的报表,或者采用数理统计和人工智能等数据挖掘手段,涵盖的范围更广;

就应用范围而言,联机分析处理往往根据用户分析的主题进行应用分割,

例如:销售分析、市场推广分析、客户利润率分析等等,每一个分析的主题形成一个OLAP应用,而所有的OLAP应用实际上只是数据仓库系统的一部分

从结构的角度看,有三种数据仓库模型:企业仓库、数据集市和虚拟仓库。
  • 企业仓库:企业仓库搜集了关于主题的所有信息,跨越整个企业。他提供企业范围内的数据集成,通常来自于一个或多个操作数据库系统或外部信息提供者,并且是多功能的。通常,它包含细节数据和汇总数据,其规模由数兆兆字节,到数百兆兆字节,数千兆兆字节,甚至更多。企业数据仓库可以在传统的大型机、超级计算机服务器或并行结构平台上实现。它需要广泛的商务建模,可能需要多年建设和设计。

  • 数据集市:数据集市包含企业范围数据的一个子集,对于待定的用户群是有用的。其范围现定于选定的主题。例如:销售数据集市可能限定其主题为顾客、商品和销售。包括在数据集市中的数据通常是汇总的。

  • 虚拟仓库:虚拟仓库是操作数据库上视图的集合。为了有效的处理查询,只有一些可能的汇总视图被物化。虚拟仓库容易建立,但需要操作数据库服务器还有余力。

数据集市


  数据集市和数据仓库的区别


在数据结构上,数据仓库是面向主题的、集成的数据的集合。而数据集市通常被定义为星型结构或者雪花型数据结构,数据集市一般是由一张事实表和几张维表组成的。数据仓库和数据集市的数据结构如图3-25所示。







 
  数据仓库和数据集市的数据结构


  数据仓库和数据集市的区别





























比较对象


数据仓库


数据集市


数据来源


ODS统一信息视图区


数据仓库


数据范围


面向企业级


一般是部门级


数据结构


第三范式


雪花型或星型结构


历史数据


大量的历史数据


一部分历史数据


索引


高度索引


高度索引




数据集市也叫数据市场,是一个从操作的数据和其他的为某个特殊的专业人员团体服务的数据源中收集数据的仓库。从范围上来说,数据是从企业范围的数据库、数据仓库,或者是更加专业的数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。

 数据集市是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。为了解决灵活性和性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。 


 数据集市的特征主要有:1)规模小;2)面向部门;3)有特定的应用;4)由业务部门定义、设计和开发;5)业务部门管理和维护;6)能快速实现;7)购买比较便宜;8)投资快速回收;9)工具集的紧密集成;10)提供更详细的、预先存在的、数据仓库的摘要子集;11)可升级到完整的数据仓库。
 数据集市和数据仓库的主要区别:数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持手段;而数据集市则是一种微型的数据仓库,它通常有更少的数据,更少的主题区域,以及更少的历史数据,因此是部门级的,一般只能为某个局部范围内的管理人员服务,因此也称之为部门级数据仓库。

ODS

一种数据架构或数据库设计的概念
操作型数据仓库,最早的数据仓库模型。特点是数据模型采取了贴源设计,业务系统数据库数据结构是怎样的,ODS数据库的结构就是怎样的。所不同的是ODS数据库可以提供数据变化的历史,所以ODS数据库中每张表都会增加一个日期类型,表示数据的时点,将每天数据的变化情况都存下来,这样有利于数据的分析。

联机处理(OLAP)

SQL对大数据库的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,Codd提出了多维数据库和多维分析的概念,即OLAP。

证实人们提出的复杂的假设,其结果是以图形或者表格的形式来表示的对信息的总结。它并不将异常信息标记出来,是一种知识证实的方法。

专门设计用于支持复杂的分析操作,侧重对决策人员和高层管理人员的决策支持


  
OLTP

OLAP

用户

操作人员,低层管理人员

决策人员,高级管理人员

功能

日常操作处理

分析决策

DB 设计

面向应用

面向主题

数据

当前的, 最新的细节的, 二维的分立的

历史的, 聚集的, 多维的,集成的, 统一的

存取

读/写数十条记录

读上百万条记录

工作单位

简单的事务

复杂的查询

DB 大小

100MB-GB

100GB-TB

  • 商务智能化,就是利用IT技术整合企业内部数据,利用数据分析和数据挖掘方法,发现有价值的信息,供给决策层

  • 数据分析寻找现有数据的内在关系,图表化数据.

  • 数据发掘利用数学,各种算法去判断趋势.

  • 大数据重点在于大,样本几乎为100%,从更大的数据体量上发现价值信息

Python私有变量

保护型变量

_xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如: 当使用“from M import”时,不会将以一个下划线开头的对象引入 。

私有变量

__xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,boo变成_FooBarboo,如self._FooBar__boo)

Python没有真正的私有变量。内部实现上,是将私有变量进程了转化,规则是:_<类名><私有变量>

下面的小技巧可以获取私有变量:

1
2
3
4
5
6
7
class Test(object):
def __init__(self):
self.__zzz=111
if __name__ == '__main__':
a = Test()
print a._Test__zzz

同样,通过a._Test__zzz=222的方式,可以修改私有变量的值。

通过dir(Test)和dir(a)可以看到类属性和其实例属性之间的区别:

1
2
print dir(Test)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
1
2
print dir(a)
['_Test__zzz', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']

在这里强调说一下私有变量,python默认的成员函数和成员变量都是公开的,没有像其他类似语言的public,private等关键字修饰.但是可以在变量前面加上两个下划线”_”,这样的话函数或变量就变成私有的

http://www.cnblogs.com/king-sun/p/4361998.html

Ubuntu系统崩溃问题

今天电脑强制关机,再开机的时候,出现了initramfs问题,搞了半天,终于修好了,记录一些:

1
2
3
4
5
6
7
8
9
输入fsck -y /dev/sda2 (sda2根据你自身情况决定) ,修复grub
输入exit退出,可登陆系统,但是之后重启还会出现之前的问题
在登录系统时,进入终端,输入
sudo gedit /etc/default/grub
找到
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
修改为
GRUB_CMDLINE_LINUX_DEFAULT=”rootdelay=60 quiet splash”

Python的__init__文件

将包等效于模块,init文件的内容就是你想对外公开的包内容 , 即init.py 文件定义了包的属性和方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
your_package/
__init__.py
file1.py/
file2.py/
...
fileN.py
# in __init__.py
from file1 import *
from file2 import *
...
from fileN import *
# in file1.py
def add():
pass
包外模块如果想引用add
可以直接
from your_package import add

包外模块找到包内的特定对象

1
2
3
可以
from your_package.file1 import add
但是,建议不要这样导入,想让add暴露给其他模块,就放到__init__.py文件

初始化配置的作用

因为一个包也是对象,所以它也可以初始化。python类有init方法作为初始化函数,包自然也有init.py来实现初始化

1
2
import logging.config
logging.config.dictConfig(Your_logging_config)

导入路径

  1. 当前目录
  2. sys.path
  3. site-packages

#导入方法

举个例子, 目录结构如下,
-cake
|- init.py
|- icing.py
|- sponge.py
-drink
|- init.py
|- water.py

在 sponge.py 引用 icing , 有多种方法: import icing # implicit relative import, py2已强烈不推荐使用, py3已经不可用了 from . import icing # explicit relative import, python.org 官方虽不推荐, 但这却是事实标准 * from cake import icing # absolute import , python 官方推荐.

# 总结:

  1. PEP338推荐,绝对引用,尤其再main主文件,必须绝对引用,但是有时候绝对引用,不利于修改,而且名字比较长

  2. 显示相对引用,也已经成为实时标准,用的很多

  3. 隐式相对(就是根据当前,标准,第三方目录等顺序),不推荐使用

推荐看这篇文件
https://my.oschina.net/leopardsaga/blog/97175