分类目录归档:algorithm

时序预测建模

前置知识:时间序列分析时间序列距离测度

1 基础时序方法

均值回归:对历史一段时间的值取平均,作为未来每个时刻的预测

指数平滑:预测值是过去一段时间内观测值(或已预测值)的加权平均值

普通回归预测:借助时序相关特征(如节假日、周期性)实现建模预测

更多时序类衍生特征可参考 1_study/Python/Python 数据处理/tsfresh 时序特征聚合工具

2 ARIMA

自回归(AR)模型:

  • 用变量自身的历史时间数据对变量进行预测
  • AR 模型需要满足时序平稳性的要求,时序间需要存在自相关性
  • p 阶 AR模型的公式定义如下:

Read more

线性判别分析 LDA

LDA 算法是一种监督学习的降维技术

  • LDA 算法将高维空间中的d维数据通过投影转化成1维数据进行处理
  • 对于训练数据,LDA 算法会让同类数据的投影点尽可能接近,异类数据尽可能远离
  • 对于新数据分类,LDA 算法会先进行数据投影,再根据投影点位置来确定样本的类别

  • 左图思路:让不同类别的平均点距离最远的投影方式
  • 右图思路:让同类别的数据距离最近的投影方式

LDA算法降维流程如下:

​ 输入:数据集 $D = { (x_1,y_1),(x_2,y_2), ... ,(x_m,y_m) }$,其中样本 $x_i$ 是n维向量,$y_i \in {C_1, C_2, ..., C_k}$

Read more

DBSCAN密度聚类

1 DBSCAN算法概况

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的、对噪声鲁棒的空间聚类方法)是一种基于密度的经典聚类算法

2 DBSCAN算法细节

  1. 遍历所有样本,寻找关键的核心点(邻域内样本数>=MinPoints)
  2. 核心点及其邻域内的样本(包括其他核心点)形成了临时聚类簇
  3. 当核心点A属于核心点B的临时聚类簇时,合并两处临时聚类簇
  4. 重复以上过程,直至找不到新的可合并临时聚类簇

Read more

启发式算法总结

1 启发式算法

启发式算法(Heuristic Algorithms)通常是以问题为导向的(Problem Specific),没有一个通用的框架,每个不同的问题通常设计一个不同的启发式算法,通常被用来解组合优化问题

普通启发式算法一般是一种贪婪算法,需要根据特定问题进行特定设计

贪婪算法,也叫贪心算法

其基本思想是:每一步都采取当前状态下最好的选择,而不考虑全局最优解是否已经达到。在每一步中,贪心算法都会做出一个贪心决策,即选择当前状态下最优的解决方案,并且不考虑这个决策可能会导致的未来后果

以经典的装包问

Read more

蚁群算法

1 基本概念

蚁群算法(Ant Colony Algorithm,ACA)由Marco Dorigo于1992年在他的博士论文中首次提出,该算法模拟了自然界中蚂蚁的觅食行为。

蚂蚁寻径的生物过程:

  • 蚂蚁在寻找食物源时,会在其经过的路径上释放一种信息素,并能够感知其它蚂蚁释放的信息素。信息素浓度的大小表征路径的远近,信息素浓度越高,表示对应的路径距离越短
  • 通常,蚂蚁会以较大的概率优先选择信息素浓度较高的路径,并释放一定量的信息素,以增强该条路径上的信息素浓度,这样,会形成一个正反馈
  • 最终,蚂蚁能够找到一条从巢穴到食物源的最佳路径,

Read more

时序聚类

本文中大部分算法都可通过R语言的latend包复现

1 GBTM

轨迹分组算法(Group-based trajectory model,GBTM)

  • 最早由 Daniel Nagin 于 1999 年在知名心理学方法学杂志「Psychological Methods」开始推展
  • 接着由 Bobby Jones 与 Daniel Nagin 于 2001 年发表了 SAS procedure2,于是此方法慢慢

Read more

最速下降法

首先,理解梯度向量是指向函数值增长最快的方向的:MIT18.02笔记-梯度的定义与理解

定义函数$f(x)$,其在点$x$处沿着方向$d$的变化率可用方向导数表示,即梯度与方向的乘积: $$Df(x;d)=\nabla f(x)^Td$$ 当$d=-\frac{\nabla f(x) }{ ||\nabla f(x)|| }$时,函数$f$在点$x$处的下降速率最大,即负梯度方向为最速下降方向

最速下降算法:在迭代过程,每次都选择负梯度方向搜索(对于寻找最小值的最优化问题)

最速下降算法步骤:

  1. 初始化$x_1$,设定允许的最小误差$\epsilon$,迭代次数$k=1$
  2. 对于第$k$次迭

Read more

共轭梯度法

共轭梯度法(Conjugate Gradient)是介于最速下降法牛顿法之间的一个方法

  • 仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,
  • 避免了牛顿法需要存储和计算Hessian矩阵(占用空间大)并求逆的缺点
  • 求解大型线性方程组或非线性最优化问题时常用且高效的方法

1 共轭方向法

设$G$为对称正定矩阵,若$d^T_mGd_n=0,\ m\neq n$ ,则称$d_m$和$d_n$为“G共轭”,共轭方向是“互不相关”的方向

共轭是正交的推广,$n$个共轭向量可以作为$n$维空间的非正交基,共轭向量间是线性无关的

共轭方向法

Read more

回归内生性问题

1 内生性问题

对于回归方程$Y = a + bX + e$,当解释变量$X$和误差项$e$存在相关性时,说明回归模型存在内生性问题

内生性问题的产生原因:

  • 遗漏变量(比如在分析学历和收入的关系时,容易忽略个人能力的影响)
  • 反向因果(比如分析政策对经济影响时,要意识到经济对政策也是有影响的)
  • 选择偏误(样本选择偏误和自选择偏误)、以及测量误差等

内生性问题的后果:在小样本下,内生变量和外生变量估计系数都有偏。在大样本下,内生变量估计系数不一致。外

Read more

核密度估计

核密度估计(kernel density estimation,简称KDE)是核平滑对概率密度估计的应用,即一种以核为权重估计随机变量概率密度函数的非参数方法。由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parzen窗(Parzen window)

核密度估计的实现:

  • 假设$(x_1,x_2,...,x_n)$是来自同一个单变量未知分布中的独立样本
  • 核密度估计可以根据这些样本推测出该分布的概率密度函数: $$\hat{f}_h(x)=\frac{1}{n}\Sigma_{i=1}^nK_h(x-x_i)=\frac{1}{nh}\Sigma_{

Read more