type
status
date
slug
summary
tags
category
icon
password
Property
原理
密度聚类原理
DBSCAN是一种基于密度的聚类算法,这类密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本,他们之间的紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。
通过将紧密相连的样本划为一类,这样就得到了一个聚类类别。通过将所有各组紧密相连的样本划为各个不同的类别,就得到了最终的所有聚类类别结果。
DBSCAN密度定义
DBSCAN是基于一组邻域来描述样本集的紧密程度的,参数( ,MinPts)用来描述邻域的样本分布紧密程度。其中描述了某一样本的邻域距离阈值,MinPts描述了某一样本的距离为的邻域中样本个数的阈值。
假设样本集是 ,则DBSCAN具体的密度描述定义如下:
- -邻域:对于 ,其 -邻域包含样本集中与 的距离不大于的子样本集,即 ,这个子样本集的个数记为
- 核心对象:对于任一样本 ,如果其 -邻域对应的 至少包含MinPts个样本,即如果 ,则 是核心对象
代码
type
status
date
slug
summary
tags
category
icon
password
Property
原理
谱聚类概述
谱聚类是从图论中演化出来的算法,后来在聚类中得到了广泛的应用。它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的
谱聚类基础之一:无向权重图
对于一个图,一般用点的集合和边的集合来描述,即为 。其中即为数据集里面所有的点。对于中的任意两个点,可以有边连接,也可以没有边连接。定义权重 为点 和点 之间的权重。由于是无向图,所以。
对于有边连接的两个点 和, ,对于没有边连接的两个点和, 。对于图中的任意一个点,它的度定义为和它相连的所有边的权重之和,即
利用每个点度的定义,可以得到一个的度矩阵它是一个对角矩阵,只有主对角线有值,对应第行的第个点的度数,定义如下:
代码
type
status
date
slug
summary
tags
category
icon
password
Property
Statsmodels
是一个 Python 模块,它提供用于估计许多不同统计模型以及进行统计测试和统计数据探索的类和函数。每个估算器都有一个广泛的结果统计列表。对照现有的统计数据包对结果进行测试,以确保它们是正确的。该软件包是在开源修改 BSD(3 条款)许可下发布的与scikit-learn比较,statsmodels包含经典统计学和经济计量学的算法。包括如下子模块:
- 回归模型:线性回归,广义线性模型,健壮线性模型,线性混合效应模型等等
- 方差分析:(ANOVA)
- 时间序列分析:AR,ARMA,ARIMA,VAR和其它模型
- 非参数方法: 核密度估计,核回归
type
status
date
slug
summary
tags
category
icon
password
Property
什么是时间序列?
时间序列是一系列以一致的时间间隔测量的数据点。这仅仅意味着以固定的间隔记录特定的值,该间隔可以是小时、每天、每周、每10天等等。使时间序列不同的是,该系列中的每个数据点都依赖于先前的数据点。
例1:假设你有一个从某个公司贷款的人的数据集(如下表所示)。你认为每一行都与前一行相关吗?当然不是!一个人的贷款将基于他的经济状况和需要(可能有其他因素,如家庭规模等,但为了简单起见,我们只考虑收入和贷款类型)。此外,数据没有收集在任何特定的时间间隔。这取决于公司何时收到贷款申请。
例2:假设有一个数据集包含每天的空气中的二氧化碳含量(下图),能通过看过去几天的数值来预测第二天的二氧化碳量吗?当然。如果你观察到,数据已经被记录在每天的基础上,也就是说,时间间隔是恒定的(24小时)。
第一种情况是简单的回归问题,第二种情况是时间序列问题。虽然这里的时间序列难题也可以用线性回归来解决,但这并不是最好的方法,因为它忽略了值与所有相对过去值的关系。
type
status
date
slug
summary
tags
category
icon
password
Property
判断一个序列是不是平稳序列有三个评判标准:
- 均值 ,是与时间无关的常数。下图(左)满足平稳序列的条件,下图(右)很明显具有时间依赖。
- 方差 ,是与时间无关的常数。这个特性叫做方差齐性。下图显示了什么是方差对齐,什么不是方差对齐。(注意右手边途中的不同分布。)
- 协方差 ,只与时期间隔有关,与时间无关的常数。如下图(右),可以注意到随着时间的增加,曲线变得越来越近。因此红色序列的协方差并不是恒定的。
为什么要关心平稳时间序列呢?
除非时间序列是平稳的,否则不能建立一个时间序列模型。在很多案例中时间平稳条件常常是不满足的,所以首先要做的就是让时间序列变得平稳,然后尝试使用随机模型预测这个时间序列。有很多方法来平稳数据,比如消除长期趋势,差分化。
随机游走
type
status
date
slug
summary
tags
category
icon
password
Property
ARIMA是一种非常流行的时间序列建模技术。它描述了数据点之间的相关性,并考虑了值的差异。ARIMA的改进是SARIMA(或季节性ARIMA)。
数据准备与预处理
平稳性检验
序列平稳性是进行时间序列分析的前提条件。为什么要满足平稳性的要求呢?在大数定理和中心定理中要求样本同分布(这里同分布等价于时间序列中的平稳性),而我们的建模过程中有很多都是建立在大数定理和中心极限定理的前提条件下的,如果它不满足,得到的许多结论都是不可靠的。以虚假回归为例,当响应变量和输入变量都平稳时,我们用t统计量检验标准化系数的显著性。而当响应变量和输入变量不平稳时,其标准化系数不在满足t分布,这时再用t检验来进行显著性分析,导致拒绝原假设的概率增加,即容易犯第一类错误,从而得出错误的结论。