Update from Sync Service
This commit is contained in:
@@ -0,0 +1,134 @@
|
||||
## 1. 盲源分析(BSS)
|
||||
|
||||
1. 盲源分离指在完全不知道任何先验知识或者只知道少量先验知识的情况下,只利用观测信号提取或分离出各个源信号的方法[[#^f9e7f7]];
|
||||
3. 这里的“盲”是指:1.源信号是不可观测的;2.混合系统是事先未知的。
|
||||
4. 常用方法:
|
||||
1. 独立分量分析(ICA)
|
||||
2. 熵最大化方法
|
||||
3. 非线性主分量分析
|
||||
> 可以证明,独立分量分析和熵最大化方法是等价的[[#^f9e7f7]]
|
||||
|
||||
## 2. 概览
|
||||
|
||||
### 2.1 用途
|
||||
|
||||
ICA是BSS的一种常用方法,用于从观测信号中提取或分离原始信号;
|
||||
|
||||
### 2.2 基本原理
|
||||
|
||||
根据中心极限定理,对于混合信号,其概率密度比任何一个源信号的概率分布都接近高斯分布;反过来,最大化信号的非高斯性与最大化信号的统计独立性是一致的,这是ICA的基本原理[[#^62f060]]。
|
||||
|
||||
### 2.3 前提
|
||||
|
||||
使用ICA分离原始信号时,应满足以下前提[[#^7903a9]]:
|
||||
|
||||
1. 独立性,即原始信号是相互独立的;
|
||||
2. 非高斯性,即原始信号不服从高斯分布,换言之,ICA无法提取混合信号中符合高斯分布的原始信号;
|
||||
3. 复杂性,即混合信号的复杂度应大于所有的原始信号;
|
||||
|
||||
## 4. 独立性评估方法[[#^7903a9]]
|
||||
|
||||
ICA有三种评估分量独立性的方法:1. 基于非高斯度;2. 基于互信息度;3. 基于最大似然估计;
|
||||
|
||||
### 4.1 基于非高斯度的方法
|
||||
|
||||
ICA常用峭度和负熵来衡量独立分量的非高斯度:
|
||||
|
||||
1. 峭度(Kurtosis): 峭度可以用来评估信号的非高斯度,因此通过寻找让峭度最大的矩阵来提取混合的信号;基于峭度的方法优点是容易计算,但是峭度对异常值十分敏感,因此该方法的鲁棒性不高。峭度(K)定义如下:
|
||||
|
||||
$$
|
||||
K= E[x^4]-3(E[x^2])^2
|
||||
$$
|
||||
|
||||
|
||||
2. 负熵(Negative entropy): 由信息论理论可知,在所有等方差的随机变量中,高斯变量的熵最大,所以可以利用熵来度量非高斯性。一般采用熵的修正形式——负熵来评价独立成分的非高斯度,根据中心极限定理,当一个随机变量是许多相互独立的随机变量之和时,如果这些随机变量具有有限的均值和方差,那么这个随机变量越接近高斯分布[[#^bff01c]]。因此,当独立成分分离的负熵达到最大时,说明完成各独立成分的分离。负熵(J)的定义如下:
|
||||
$$
|
||||
J(y)=H(y_{Gaussian})-H(y))
|
||||
$$
|
||||
其中,$H(y_{Garussian})$代表协方差矩阵与y相同的高斯变量的熵;
|
||||
|
||||
> 应注意,负熵永远是非负值,因为在协方差相同的条件下,高斯分布具有最大的熵,当且仅当所有变量均服从高斯分布时,负熵为0;
|
||||
|
||||
### 4.2 基于互信息度的方法
|
||||
|
||||
互信息是一种用于衡量两个随机变量之间相互依赖程度的指标。给定两个随机变量X和Y,它们的互信息I(X;Y)定义为它们联合概率分布p(x,y)与它们各自的边缘概率分布p(x)和p(y)之间的差异,其定义为:
|
||||
$$
|
||||
I(X,Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)
|
||||
$$
|
||||
其中,H(X)和H(Y)分别是X和Y的熵,H(X|Y)和H(Y|X)分别是在给定Y和X的条件下X和Y的条件熵。互信息的值越大,表示两个变量之间的相互依赖程度越高,反之则越低。
|
||||
在ICA中,互信息用于衡量两个分离出来的信号之间的独立性程度。基于互信息的方法通过最小化互信息来获取独立成分。
|
||||
|
||||
### 4.3 基于最大似然估计的方法
|
||||
|
||||
基于最大似然估计的方法和基于互信息度的方法本质上是等价的,仅相差符号和一个常数;应该注意到,如果关于独立分量的先验知识是错误的,那么最大似然估计可能会给出错误的结果,但是基于非高斯度的方法并不需要任何先验知识。
|
||||
|
||||
### 4.4 迭代缩减
|
||||
|
||||
非高斯性测量指标可以使得独立成分的逐个估计成为可能,这是互信息或似然方法所不能实现的。在ICA中,通常使用一种称为“迭代缩减”(deflationary)的方法,该方法一次估计一个独立成分。在每一次迭代中,使用非高斯性测量指标来选择最不高斯的信号作为下一个独立成分。这种方法通常比同时估计所有独立成分的方法更有效。
|
||||
与互信息或似然方法相比,使用非高斯性测量指标具有更好的性质。互信息和似然方法通常需要一次性估计所有的独立成分,因此可能存在估计过程中的交叉干扰,导致估计结果不准确。而使用非高斯性测量指标则可以逐个估计独立成分,避免了这种交叉干扰,提高了估计的准确性。
|
||||
在ICA中,通过最小化独立成分的峭度或最大化独立成分的负熵来选择最不高斯的信号作为下一个独立成分。
|
||||
|
||||
## 5. 常用算法
|
||||
|
||||
### 5.1 投影追踪(Projection pursuit)
|
||||
|
||||
1. 投影追寻是一种用于寻找多维数据可能投影的统计学方法,在基本的一维投影追寻中,其目标是寻找一些列投影方向,在这些方向上,数据分布尽可能的偏离高斯分布,而这于ICA的目标一致,因此,ICA也会被认为是投影追寻的一个变种。
|
||||
2. 投影追寻中,独立分量是逐个被提取出来的。通过不断重复寻找使非高斯度最大的投影方向来逐个提取独立分量。这种方法被称为紧缩。
|
||||
3. 其步骤如下:
|
||||
1. 初始化:选择一个随机的投影向量w,然后归一化该向量,得到w。
|
||||
2. 投影:将高维信号X投影到一维空间中,得到一个一维向量y,y=X^Tw。
|
||||
3. 非高斯性度量:对y进行非高斯性度量,如负熵,得到一个标量g。
|
||||
4. 梯度更新:利用g对w进行梯度更新,w=w+μg∇w g,其中μ为学习率,∇w g为g对w的梯度。这一步更新后,再对w进行归一化。
|
||||
5. 收敛判断:对步骤2~4进行迭代,直到w的变化很小或者达到最大迭代次数,判断算法是否收敛。
|
||||
6. 得到ICA模型:迭代结束后,得到的投影向量w即为一组独立成分,将该向量与原始数据矩阵X相乘,即可得到ICA模型。
|
||||
|
||||
### 5.2 FastICA
|
||||
|
||||
1. FastICA算法通过一种固定点迭代的策略来最大化非高斯度从而提取独立分量;
|
||||
2. FastICA次或至少二次收敛速度,因此它比基于比梯度算法的线性收敛快得多;
|
||||
3. FastICA算法没有学习率或其他任何需要调整的参数,因此容易使用;
|
||||
4. 其步骤如下:
|
||||
1. 初始化:随机初始化投影矩阵W。
|
||||
2. 分离:使用一个迭代算法来更新W,以最大化非高斯性度量(如峭度或负熵),使得独立成分被逐个分离出来。
|
||||
3. 旋转:由于FastICA中提取的独立成分的顺序和符号是不确定的,需要进行旋转来确定它们的顺序和符号。常用的方法是正交化或者正交矩阵分解。
|
||||
4. 重构:将分离出来的独立成分重构成原始数据。
|
||||
5. FastICA是一个迭代算法,它需要设定停止条件;
|
||||
|
||||
## 6. 预处理
|
||||
|
||||
ICA需要两步的预处理:
|
||||
1. 中心化
|
||||
2. 白化
|
||||
|
||||
## 7. 不确定性
|
||||
|
||||
ICA不能唯一确定分离结果,其不确定性包括[[#^374d36]]:
|
||||
|
||||
1. 不能确定独立成分的方差或者说能量:因为变换矩阵A和原始信号s都是未知的,s缩放的倍数可以在A上补偿回来。因此我们统一假设各独立分量的方差为1。其实,这样假设之后仍然存在一个不确定性,独立分量乘以-1并不影响方差。不过在实际应用时,并不影响。
|
||||
2. 不能确定各独立分量的顺序:同样,由于变换矩阵A和原始信号s都是未知的,在预测时我们可以任意改变A和s对应分量的位置,在矩阵运算中就是乘以一个置换矩阵。
|
||||
|
||||
## 7. 优缺点
|
||||
|
||||
### 7.1 优点[[#^46c57e]]
|
||||
|
||||
1. 收敛速度快。
|
||||
2. 并行和分布计算,要求内存小,易于使用。
|
||||
3. 能通过使用一个非线性函数g便能直接找出任何非高斯分布的独立分量。
|
||||
4. 能够通过选择一个适当的非线性函数g而使其达到最佳化。特别是能得到最小方差的算法。
|
||||
5. 仅需要估计几个(不是全部)独立分量,能极大地减小计算量。
|
||||
|
||||
### 7.2 缺点
|
||||
|
||||
1. ICA 的结果具有一定的不确定性,因为独立成分的顺序和符号是未知的。这就需要对结果进行后处理,例如通过交叉验证选择最优的解。
|
||||
2. ICA 对于数据的要求较高,需要假设数据是相互独立的,并且每个独立成分必须是非高斯分布。如果数据不符合这些要求,ICA的效果可能会受到影响。
|
||||
3. ICA 计算复杂度较高,对于大规模数据的处理需要更多的计算资源和时间。
|
||||
4. ICA 是一种线性模型,对于非线性的混合模型,其效果可能不如其他非线性模型,例如深度学习模型。
|
||||
|
||||
### 参考文献
|
||||
|
||||
1. [[盲源分离——理论、应用与展望]] ^f9e7f7
|
||||
2. [[Independent component analysis:An introduction]] ^7903a9
|
||||
3. [独立成分分析(Independent component analysis, ICA)](https://www.cnblogs.com/ytxwzqin/p/9675217.html) ^62f060
|
||||
4. [ICA独立成分分析—FastICA基于负熵最大](https://blog.csdn.net/zb1165048017/article/details/48464573) ^bff01c
|
||||
5. [尝试理解ICA(Independent Component Analysis)独立成分分析](https://blog.csdn.net/u014485485/article/details/78452820) ^374d36
|
||||
6. [人工智能–ICA算法](https://cloud.tencent.com/developer/news/197255) ^46c57e
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
## 1. AARRR海盗模型
|
||||
|
||||
海盗模型是用户分析的经典模型,它反映了增长是系统性地贯穿于用户生命周期各个阶段:
|
||||
|
||||
A 拉新(Acquisition): 通过各种推广渠道,以各种方式获取目标用户,并对各种营销渠道的效果评估,不断优化投入策略,降低获客成本。
|
||||
- 涉及关键指标例如 新增注册用户数、激活率、注册转化率、新客留存率、下载量、安装量等,我们通过这些指标就可反应出获取目标用户的效果是怎样的。
|
||||
|
||||
A 活跃(Activation):活跃用户指真正开始使用了产品提供的价值,我们需要掌握用户的行为数据,监控产品健康程度。这个模块主要反映用户进入产品的行为表现,是产品体验的核心所在。
|
||||
|
||||
- 涉及关键指标例如 DAU/MAU 、日均使用时长、启动APP时长、启动APP次数等。通过这些指标可以反映出用户的活跃情况。
|
||||
|
||||
R 留存(Retention):衡量用户粘性和质量的指标。涉及关键指标例如 留存率、流失率等。通过这些指标可以反映出用户的留存情况。
|
||||
|
||||
R 变现(Revenue): 主要用来衡量产品商业价值。涉及关键指标例如 生命周期价值(LTV)、客单价、GMV等。这些指标可以反映出产品的商业价值。
|
||||
|
||||
R 推荐(Referral):衡量用户自传播程度和口碑情况。涉及关键指标例如 邀请率、裂变系数等。
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://mengte.online/archives/1879'
|
||||
---
|
||||
# Spearman相关性分析(Spearman Correlation Analysis)——理论介绍 - 梦特医数通
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: Spearman相关性分析(Spearman Correlation Analysis)——理论介绍 - 梦特医数通
|
||||
|
||||
- Reference: https://mengte.online/archives/1879
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- 先将变量X、Y分别从小到大排序编秩,用秩次RX和RY表示。排序时,出现数据相等从而造成秩次相同的现象称为相持(tie),此时,取其平均秩次为每个数据的秩次
|
||||
|
||||
|
||||
|
||||
- Spearman相关性分析,需要满足2个条件: 条件1:变量包含等级变量、或变量不服从正态分布或分布类型未知。 条件2:两变量之间存在单调关系。
|
||||
|
||||
|
||||
|
||||
- Spearman相关,又称秩相关、等级相关,是对两变量的秩次大小作线性相关分析,对原始变量的分布不作要求,属于非参数统计方法,适用范围较广。对于服从Pearson相关的数据亦可计算Spearman相关系数,但统计效能更低。 Spearman相关系数(rs)介于-1与1之间,rs >0为正相关,rs <0为负相关。rs的绝对值(|rs|)越大,变量间的相关性越强。 参考Pearson相关系数对rs进行等级划分:当0.9</r/<1,为高度相关;当0.7</r/<0.9,为强相关;0.4</r/<0.7,为中度相关;0.2</r/<0.4,为弱相关性;0</r/<0.2,为极弱相关或无相关性。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7195433939593330749'
|
||||
---
|
||||
# 斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7195433939593330749
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- 斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只需两个变量的观测值是成对的等级评定数据,或者是由连续变量观测数据转化得到的等级数据,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究。只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7195433939593330749'
|
||||
---
|
||||
# 斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7195433939593330749
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- 斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只需两个变量的观测值是成对的等级评定数据,或者是由连续变量观测数据转化得到的等级数据,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究。只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7196290097549361209'
|
||||
---
|
||||
# 皮尔逊相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 皮尔逊相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7196290097549361209
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- 总结一下对于皮尔逊相关系数的使用场景,有三种必要的特性使用皮尔逊系数最佳: 连续数据 正态分布 线性关系
|
||||
|
||||
|
||||
|
||||
- 上述三个条件均满足才能使用pearson相关系数,否则就用spearman相关系数。定序数据之间也只用spearman相关系数,不能用pearson相关系数。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7196290097549361209'
|
||||
---
|
||||
# 皮尔逊相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 皮尔逊相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7196290097549361209
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- 总结一下对于皮尔逊相关系数的使用场景,有三种必要的特性使用皮尔逊系数最佳: 连续数据 正态分布 线性关系
|
||||
|
||||
|
||||
|
||||
- 上述三个条件均满足才能使用pearson相关系数,否则就用spearman相关系数。定序数据之间也只用spearman相关系数,不能用pearson相关系数。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7187943854141046839'
|
||||
---
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 肯德尔系数相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7187943854141046839
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- Kendall(肯德尔)系数的定义:n个同类的统计对象按特定属性排序,其他属性通常是乱序的。同序对(concordant pairs)和异序对(discordant pairs)之差与总对数(n*(n-1)/2)的比值定义为Kendall(肯德尔)系数。
|
||||
|
||||
|
||||
|
||||
- 肯德尔相关则是基于样本数据对之间的关系来进行相关系数的强弱的分析,数据对可以分为一致对(Concordant)和分歧对(Discordant)。
|
||||
|
||||
|
||||
|
||||
- 变量数据是有序的( ordinal) 或者是连续的(continuous). 有序尺度(Ordinal scales )的数据通常用于用数值的方式来衡量非数值的概念
|
||||
|
||||
|
||||
|
||||
- 连续尺度的数据就勿需解释了,常见的温度啊、体重啊、收入啊等等都(或严格、或近似)算是连续尺度的数据。
|
||||
|
||||
|
||||
|
||||
- 肯德尔系数有两个计算公式,一个称为Tau-c,另一个称为Tau-b。两者的区别是Tau-b可以处理有相同值的情况,即并列排位(tied ranks)。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://juejin.cn/post/7187943854141046839'
|
||||
---
|
||||
|
||||
## Metadata
|
||||
|
||||
- Title: 肯德尔系数相关性分析一文详解+python实例代码 - 掘金
|
||||
|
||||
- Reference: https://juejin.cn/post/7187943854141046839
|
||||
|
||||
- Category: #source/article🗞
|
||||
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||
- Kendall(肯德尔)系数的定义:n个同类的统计对象按特定属性排序,其他属性通常是乱序的。同序对(concordant pairs)和异序对(discordant pairs)之差与总对数(n*(n-1)/2)的比值定义为Kendall(肯德尔)系数。
|
||||
|
||||
|
||||
|
||||
- 肯德尔相关则是基于样本数据对之间的关系来进行相关系数的强弱的分析,数据对可以分为一致对(Concordant)和分歧对(Discordant)。
|
||||
|
||||
|
||||
|
||||
- 变量数据是有序的( ordinal) 或者是连续的(continuous). 有序尺度(Ordinal scales )的数据通常用于用数值的方式来衡量非数值的概念
|
||||
|
||||
|
||||
|
||||
- 连续尺度的数据就勿需解释了,常见的温度啊、体重啊、收入啊等等都(或严格、或近似)算是连续尺度的数据。
|
||||
|
||||
|
||||
|
||||
- 肯德尔系数有两个计算公式,一个称为Tau-c,另一个称为Tau-b。两者的区别是Tau-b可以处理有相同值的情况,即并列排位(tied ranks)。
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
## 1. 皮尔逊相关性分析
|
||||
|
||||
### 1.1 使用条件
|
||||
|
||||
1. 连续变量
|
||||
2. 正态分布
|
||||
3. 线性相关
|
||||
|
||||
### 1.2 定义
|
||||
|
||||
皮尔逊相关系数定义为两个变量的协方差和标准差的商。
|
||||
|
||||
1. 对于总体:
|
||||
$$
|
||||
\rho=\frac{cov(X,Y)}{\sigma_X\sigma_Y}=\frac{E[(X-\mu_X)(Y-\mu_Y)]}{\sigma_X\sigma_Y}
|
||||
$$
|
||||
|
||||
2. 对于样本:
|
||||
$$
|
||||
r=\frac{\sum_{i=1}^{n}{(X_i-\overline{X})(Y_i-\overline{Y})}}{\sqrt{\sum_{i=1}^n(X_i-\overline{X})^2}\sqrt{\sum_{i=1}^n{(Y_i-\overline{Y})}}}
|
||||
$$
|
||||
### 1.3 判定方法
|
||||
|
||||
使用皮尔逊相关系数需要验证变量满足连续、符合正态分布并且为线性相关关系,其中,正态分布和线性相关需要验证。
|
||||
|
||||
1. 正态分布
|
||||
可以使用KS检验来验证变量是否符合正态分布;
|
||||
2. 线性相关
|
||||
一般通过散点图验证;
|
||||
|
||||
## 2. 斯皮尔曼相关性分析
|
||||
|
||||
### 2.1 使用条件
|
||||
|
||||
1. 成对的等级评定数据或由连续变量转化来的等级数据;
|
||||
|
||||
### 2.2 定义
|
||||
|
||||
斯皮尔曼相关系数可定义为等级变量的皮尔逊相关系数
|
||||
|
||||
$$
|
||||
\rho=\frac{\sum_i{(x_i-\overline{x})(y_i-\overline{y})}}{\sqrt{\sum_i{(x_i-\overline{x})^2}\sum_i{(y_i-\overline{y})^2}}}
|
||||
$$
|
||||
其中,$x_i、y_i、\overline{x}、\overline{y}$均为等级数据,对于连续变量转化的等级数据,如有两个值相等,则在所在位置取算术平均值。
|
||||
|
||||
## 3. 肯德尔相关性分析
|
||||
|
||||
### 3.1 使用条件
|
||||
|
||||
1. 数据是有序的或连续的尺度信息;
|
||||
2. 两个变量之间遵循单调关系;
|
||||
|
||||
### 3.2 定义
|
||||
|
||||
肯德尔相关性分析定义为,两个样本数据之间同序对,异序对的差与总对数的商;
|
||||
|
||||
$$
|
||||
\tau=\frac{C-D}{\frac{1}{2}n(n-1)}
|
||||
$$
|
||||
其中,C为同序对的数量;
|
||||
D为异序对的数量;
|
||||
n为样本量;
|
||||
@@ -0,0 +1,3 @@
|
||||
1. 电机基速:当电机的励磁绕组中通入额定的励磁功率(额定励磁电压,额定励磁电流),在电机的电枢绕组两端施加额定的电枢电压,且此时电机带的负载为额定值,这时的电机转速即为额定转速,也叫基速;
|
||||
2. 恒功率:电机输出功率基本不变,转速升高的时候,扭矩越来越小;
|
||||
3. 恒转矩:电机输出扭矩基本不变,输出功率会随转速变化而变化;
|
||||
@@ -0,0 +1 @@
|
||||
1.
|
||||
@@ -0,0 +1,10 @@
|
||||
## 1. 估计聚类趋势
|
||||
|
||||
## 2. 判定数据簇数
|
||||
|
||||
## 3. 测定聚类质量
|
||||
|
||||
1. 轮廓系数
|
||||
2. 均方根标准差
|
||||
3. R方
|
||||
4. 改进的$hubert\Gamma$统计
|
||||
@@ -0,0 +1,85 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://blog.csdn.net/Tink1995/article/details/105012972'
|
||||
---
|
||||
|
||||
## Metadata
|
||||
- Author: [blog.csdn.net]()
|
||||
- Title: 史上最小白之Attention详解_Stink1995的博客-CSDN博客_attention小白解释
|
||||
- Reference: https://blog.csdn.net/Tink1995/article/details/105012972
|
||||
- Category: #source/article🗞
|
||||
- Tags:
|
||||
|
||||
## Highlights
|
||||
|
||||

|
||||
|
||||
- 上图就是引入了Attention 机制的Encoder-Decoder框架。咱们一眼就能看出上图不再只有一个单一的语义编码C,而是有多个C1,C2,C3这样的编码。当我们在预测Y1时,可能Y1的注意力是放在C1上,那咱们就用C1作为语义编码,当预测Y2时,Y2的注意力集中在C2上,那咱们就用C2作为语义编码,以此类推,就模拟了人类的注意力机制。
|
||||
|
||||
>*笔记*:
|
||||
> encoder-decoder模型的问题是encoder会将整个输入都转换为唯一的语义编码C,之后C会作用于整个decoder的解码过程,这会导致两个问题:1. 在解码过程中输入对输出的每个部分影响是相同的,这与实际情况不符;2. 对于较长的输入,全部压缩成一个语义编码会导致信息的丢失;attention机制就是为了解决这两个问题提出的;
|
||||
|
||||
- 将Source中的构成元素想象成是由一系列的<Key,Value>数据对构成(对应到咱们上里面的例子,key和value是相等地,都是encoder的输出值h),此时给定Target中的某个元素Query(对应到上面的例子也就是decoder中的$h_i$),通过计算Query和各个Key的相似性或者相关性,得到每个Key对应Value的权重系数,然后对Value进行加权求和,即得到了最终的Attention数值。所以本质上Attention机制是对Source中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数
|
||||
|
||||
>*笔记:*
|
||||
>注意力机制计算过程:
|
||||
>1. 利用encoder的输出$h_1, h_2, h_3, ..., h_j$与当前时刻decoder的隐藏值$H_i$计算相关性$F_i$;
|
||||
>2. 利用softmax函数处理$F_1$得到注意力分配权重$\alpha_{ij}$(j是encoder的时刻,i是decoder的时刻);
|
||||
>3. 将encoder的输出值h与对应的注意力分配权重α进行点乘求和,就得到注意力attention;
|
||||
|
||||
|
||||
- 相似度计算方法1: 点积:就是将Query和Keyi进行点积,Transformer中就是用的这种方法。
|
||||
$$
|
||||
Similarity(Q,K_i) = Query \times Key_i
|
||||
$$
|
||||
>*笔记*
|
||||
>就是将decoder的隐藏值$H_i$分别与encoder的输出值$h_j$进行点乘
|
||||
|
||||
- 相似度计算方法2::Cosine相似性-余弦相似度:
|
||||
$$
|
||||
Similarity(Q,K_i) = \frac{Query\times Key_i}{||Query||·||Key_i||}
|
||||
$$
|
||||
- 分子就是两个向量Query与Key的点积 分母就是两个向量的L2范数,(L2范数:指向量各元素的平方和然后求平方根)
|
||||
|
||||
- 相似度计算方法3:MLP网络:
|
||||
$$
|
||||
Similarity(Q,K_i) = MLP(Query, Key_i)
|
||||
$$
|
||||
|
||||
- 计算出Query和Keyi的相似性后,第二阶段引入类似SoftMax的计算方式对第一阶段的相似性得分进行数值转换,一方面可以进行归一化,将原始计算分值整理成所有元素权重之和为1的概率分布;另一方面也可以通过SoftMax的内在机制更加突出重要元素的权重;
|
||||
$$
|
||||
\alpha_i=Softmax(Sim_i)=\frac{e^{Sim_{i}}}{\sum_{j=1}^{L_X}{e^{Sim_i}}}
|
||||
$$
|
||||
|
||||
- 第二阶段的计算结果 $\alpha_i$ 即为 $Value_i$ 对应的权重系数,然后进行加权求和即可得到Attention数值:
|
||||
$$
|
||||
Attention(Query, Value) = \sum_{i=1}^{L_x}{\alpha_i·Value_i}
|
||||
$$
|
||||
|
||||

|
||||
|
||||
- 阶段1:Query与每一个Key计算相似性得到相似性评分s
|
||||
- 阶段2:将s评分进行softmax转换成\[0,1\]之间的概率分布 a
|
||||
- 阶段3:将$[a_1,a_2,a_3…a_n]$作为权值矩阵对Value进行加权求和得到最后的Attention值
|
||||
|
||||
> Attention中:
|
||||
> Query是上个步长的decoder的hidden_state;
|
||||
> Key是encoder的output的线性变换;
|
||||
> Value是encoder的output的线性变换;
|
||||
|
||||
- 优缺点:
|
||||
- 优点: 1.速度快。Attention机制不再依赖于RNN,解决了RNN不能并行计算的问题。这里需要说明一下,基于Attention机制的seq2seq模型,因为是有监督的训练,所以咱们在训练的时候,在decoder阶段并不是说预测出了一个词,然后再把这个词作为下一个输入,因为有监督训练,咱们已经有了target的数据,所以是可以并行输入的,可以并行计算decoder的每一个输出,但是再做预测的时候,是没有target数据地,这个时候就需要基于上一个时间节点的预测值来当做下一个时间节点decoder的输入。所以节省的是训练的时间。
|
||||
- 2.效果好。效果好主要就是因为注意力机制,能够获取到局部的重要信息,能够抓住重点。
|
||||
- 缺点: 1.只能在Decoder阶段实现并行运算,Encoder部分依旧采用的是RNN,LSTM这些按照顺序编码的模型,Encoder部分还是无法实现并行运算,不够完美。
|
||||
- 2.就是因为Encoder部分目前仍旧依赖于RNN,所以对于中长距离之间,两个词相互之间的关系没有办法很好的获取。
|
||||
|
||||
>*笔记:*
|
||||
>总结来说,attention机制主要集中于对decoder的优化,并没有对encoder有太多优化;
|
||||
|
||||
- Self Attention顾名思义,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的注意力计算机制。其具体计算过程是一样的,只是计算对象发生了变化而已,相当于是Query=Key=Value,计算过程与attention一样
|
||||
|
||||
<div align="center"><img src="https://myonemanager.lzybetter.repl.co/picbed/picbed/20200322231248341.png"></div>
|
||||
- 我们想知道这句话中的its,在这句话里its指代的是什么,与哪一些单词相关,那么就可以将its作为Query,然后将这一句话作为Key和Value来计算attention值,找到与这句话中its最相关的单词。通过self-attention我们发现its在这句话中与之最相关的是Law和application,通过我们分析语句意思也十分吻合。
|
||||
|
||||
- 如此引入Self Attention后会更容易捕获句子中长距离的相互依赖的特征,因为如果是RNN或者LSTM,需要依次序序列计算,对于远距离的相互依赖的特征,要经过若干时间步步骤的信息累积才能将两者联系起来,而距离越远,有效捕获的可能性越小。但是Self Attention在计算过程中会直接将句子中任意两个单词的联系通过一个计算步骤直接联系起来,所以远距离依赖特征之间的距离被极大缩短,有利于有效地利用这些特征。除此外,Self Attention对于增加计算的并行性也有直接帮助作用。正好弥补了attention机制的两个缺点,这就是为何Self Attention逐渐被广泛使用的主要原因。
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,17 @@
|
||||
|
||||
## AARRR海盗模型
|
||||
|
||||
海盗模型是用户分析的经典模型,它反映了增长是系统性地贯穿于用户生命周期各个阶段:
|
||||
|
||||
A 拉新(Acquisition): 通过各种推广渠道,以各种方式获取目标用户,并对各种营销渠道的效果评估,不断优化投入策略,降低获客成本。
|
||||
- 涉及关键指标例如 新增注册用户数、激活率、注册转化率、新客留存率、下载量、安装量等,我们通过这些指标就可反应出获取目标用户的效果是怎样的。
|
||||
|
||||
A 活跃(Activation):活跃用户指真正开始使用了产品提供的价值,我们需要掌握用户的行为数据,监控产品健康程度。这个模块主要反映用户进入产品的行为表现,是产品体验的核心所在。
|
||||
|
||||
- 涉及关键指标例如 DAU/MAU 、日均使用时长、启动APP时长、启动APP次数等。通过这些指标可以反映出用户的活跃情况。
|
||||
|
||||
R 留存(Retention):衡量用户粘性和质量的指标。涉及关键指标例如 留存率、流失率等。通过这些指标可以反映出用户的留存情况。
|
||||
|
||||
R 变现(Revenue): 主要用来衡量产品商业价值。涉及关键指标例如 生命周期价值(LTV)、客单价、GMV等。这些指标可以反映出产品的商业价值。
|
||||
|
||||
R 推荐(Referral):衡量用户自传播程度和口碑情况。涉及关键指标例如 邀请率、裂变系数等。
|
||||
@@ -0,0 +1,174 @@
|
||||
---
|
||||
doc_type: hypothesis-highlights
|
||||
url: 'https://www.cnblogs.com/cxuanBlog/p/14917187.html'
|
||||
---
|
||||
|
||||
## Metadata
|
||||
- Author: [cnblogs.com]()
|
||||
- Title: MQTT 协议是个啥?这篇文章告诉你! - 程序员cxuan - 博客园
|
||||
- Reference: https://www.cnblogs.com/cxuanBlog/p/14917187.html
|
||||
- Category: #article
|
||||
|
||||
## Page Notes
|
||||
## Highlights
|
||||
|
||||

|
||||
|
||||
- 还有一个优势就是 MQTT 在客户端容易实现,而且具有易用性,非常适合当今资源有限的设备。
|
||||
|
||||
- MQTT 协议与 HTTP 相比具有一个明显的优势:数据包开销较小
|
||||
|
||||
- pub/sub 最重要的方面是 publisher 与 subscriber 的解藕
|
||||
|
||||
- 空间解耦
|
||||
- 时间解藕
|
||||
- 同步 Synchronization 解藕
|
||||
|
||||
- 发布/订阅模式消除了传统客户-服务器之间的直接通信,把通信这个操作交给了 broker 进行代理,并在空间、时间、同步三个维度上进行了解藕。
|
||||
|
||||
- pub/sub 比传统的客户端-服务器模式有了更好的拓展,这是由于 broker 的高度并行化,并且是基于事件驱动的模式。事件驱动中的程序流程会由诸如用户操作(点击鼠标、键盘)、传感器输出或者从其他程序或传递的消息事件决定。- 事件驱动编程是图形用户界面和其他应用程序比如 Web 中使用的主要范式,这些应用程序能够响应用户输入执行某些操作为中心,这同时也适用于驱动程序的编程 。
|
||||
|
||||
- broker 能够对消息进行过滤,使每个订阅者只接收自己感兴趣的消息:
|
||||
|
||||
- 基于主题的过滤:每条消息都会有一个 topic ,接收客户端会向 borker 订阅感兴趣的 topic,订阅后,broker 就会确保客户端收到发布到 topic 中的消息
|
||||
|
||||
- 基于内容的过滤 :broker 会根据特定的内容过滤消息,接受客户端会经过过滤他们感兴趣的内容。这种方法的一个显著的缺点就是必须事先知道消息的内容,不能加密或者轻易修改
|
||||
|
||||
- 基于类型的过滤
|
||||
|
||||
- 为了发布/订阅系统的挑战,MQTT 具有三个服务质量级别,你可以指定消息从客户端传到 broker 或者从 broker 传到客户端,在 topic 的订阅中,会存在 topic 没有 subscriber 订阅的情况,作为 broker 必须知道如何处理这种情况。
|
||||
|
||||
- 订阅发布模式与消息队列模式区别
|
||||
- 在传统的消息队列模式中,一条消息会存储在消息队列中等待被消费,每个传入的消息都存储在消息队列中,直到它被客户端(通常称之为消费者)所接收,如果没有客户端消费消息的话,这条消息就会存在消息队列中等待被消费。但是在消息队列中,不会存在消息没有客户端消费的情况,但是在 MQTT 中,确存在 topic 无 subscriber 订阅的情况。
|
||||
|
||||
- 在传统的消息队列模式中,一条消息只能被一个客户端所消费,负载会分布在队列的每个消费者之间;而在 MQTT 中,每个订阅者都会受到消息,每个订阅者有相同的负载。
|
||||
|
||||
- 在传统的消息队列模式中,必须使用单独的命令来显式创建队列,只有队列创建后,才可以生产或者消费消息;而在 MQTT 中,topic 比较灵活,可以即时创建。
|
||||
|
||||
- MQTT基本概念
|
||||
- MQTT Client
|
||||
- publisher 和 subscriber 都属于 MQTT Client。
|
||||
|
||||
- 发布和订阅的功能也可以由同一个 MQTT Client 实现。
|
||||
|
||||
- MQTT 客户端是指运行 MQTT 库并通过网络连接到 MQTT broker 的任何设备,这些设备可以从微控制器到成熟的服务器.
|
||||
|
||||
- MQTT Broker
|
||||
- broker 负责接收所有消息,过滤消息,确定是哪个 client 订阅了每条消息,并将消息发送给对应的 client,broker 还负责保存会话数据,这些数据包括订阅的和错过的消息。broker 还负责客户端的身份验证和授权。
|
||||
|
||||
- MQTT 是基于 TCP/IP 协议基础之上的,所以 MQTT 的 client 和 broker 都需要 TCP/IP 协议的支持。
|
||||
|
||||
- MQTT链接
|
||||
- MQTT 的连接总是在 client 和 broker 之间进行,client 和 client 之间并不会相互连接。如果要发起连接的话,那么 client 就会向 broker 发起 CONNECT 消息,代理会使用 CONNACK 消息和状态码进行响应
|
||||
|
||||
- 一旦 client 和 broker 的连接建立后,broker 就会使客户端的连接一直处于打开状态,直到 client 发出断开命令或者连接中断。
|
||||
|
||||
- 消息
|
||||
- MQTT 的消息报文主要分为 CONNECT 和 CONNACK 消息。
|
||||
|
||||
- CONNECT
|
||||
|
||||
- 为了初始化连接,需要 client 向 broker 发送 CONNECT 消息
|
||||
|
||||
- 一个 MQTT 客户端发送一条 CONNECT 连接,这条 CONNECT 连接可能会包含下面这些信息
|
||||
|
||||

|
||||
|
||||
- ClientId:显而易见,这个就是每个客户端的 ID 标识,也就是连接到 MQTT broker 的每个 client。
|
||||
|
||||
- 这个 ID 应该是每个 client 和 broker 唯一的,如果你不需要 broker 持有状态的话,你可以发送一个空的 ClientId,空的 ClientId 会没有任何状态。在这种情况下,ClientSession 需要设置为 true,否则将会拒绝连接。
|
||||
|
||||
- CleanSession:CleanSession 会话标志会告诉 broker client 是否需要建立持久会话。在持久会话 (CleanSession = false)中,broker 存储 client 的所有订阅以及服务质量(Qos) 是 1 或 2 订阅的 client 的所有丢失的消息。如果会话不是持久的(CleanSession = true),那么 broker 则不会为 client 存储任何内容并且会清除先前持久会话中的所有信息。
|
||||
|
||||
- Username/Password :MQTT 会发送 username 和 password 进行 client 认证和授权
|
||||
|
||||
- LastWillxxx :LastWillxxx 表示的是遗愿,client 在连接 broker 的时候将会设立一个遗愿,这个遗愿会保存在 broker 中,当 client 因为非正常原因断开与 broker 的连接时,broker 会将遗愿发送给订阅了这个 topic(订阅遗愿的 topic)的 client。
|
||||
|
||||
- keepAlive:keepAlive 是 client 在连接建立时与 broker 通信的时间间隔,通常以秒为单位。这个时间指的是 client 与 broker 在不发送消息下所能承受的最大时长。
|
||||
|
||||
- CONNACK
|
||||
- 当 broker 收到 CONNECT 消息时,它有义务回复 CONNACK 消息进行响应
|
||||
|
||||
- CONNACK 消息包括两部分内容
|
||||
|
||||

|
||||
|
||||
- SessionPresent:会话当前标识,这个标志会告诉 client 当前 broker 是否有一个持久性会话与 client 进行交互。 SessionPresent 标志和 CleanSession 标志有关,当 client 在 CleanSession 设置为 true 的情况下连接时,SessionPresent 始终为 false,因为没有持久性会话可以使用。如果 CleanSession 设置为 false,则有两种可能性,如果 ClientId 的会话信息可用,并且 broker 已经存储了会话信息,那么 SessionPresent 为 true,否则如果没有 ClientId 的任何会话信息,那么 SessionPresent 为 false。
|
||||
|
||||
- ReturnCode:CONNACK 消息中的第二个标志是连接确认标志。这个标志包含一个返回码,告诉客户端连接尝试是否成功。连接确认标志有下面这些选项。
|
||||
|
||||
- 消息类型
|
||||
|
||||
- 发布
|
||||
|
||||
- MQTT 使用的是基于 topic 主题的过滤。每条消息都应该包含一个 topic ,broker 可以使用 topic 将消息发送给感兴趣的 client。除此之外,每条消息还会包含一个负载(Payload),Payload 中包含要以字节形式发送的数据。
|
||||
|
||||
- MQTT 是数据无关性的,也就是说数据是由发布者 - publisher 决定要发送的是 XML 、JSON 还是二进制数据、文本数据
|
||||
|
||||
- MQTT 中的 PUBLISH 消息结构如下
|
||||
|
||||

|
||||
|
||||
- Packet Identifier:这个 PacketId 标识在 client 和 broker 之间唯一的消息标识。packetId 仅与大于零的 Qos 级别相关
|
||||
|
||||
- TopicName:主题名称是一个简单的字符串,/ 代表着分层结构
|
||||
|
||||
- Qos:这个数字表示的是服务质量水平,服务质量水平有三个等级:0、1 和 2,服务级别决定了消息到达 client 或者 broker 的保证类型,来决定消息是否丢失
|
||||
|
||||
- RetainFlag:这个标志表示 broker 将最近收到的一条 RETAIN 标志位为true的消息保存在服务器端(内存或者文件)。MQTT 服务器只会为每一个 Topic 保存最近收到的一条 RETAIN 标志位为true的消息
|
||||
|
||||
- Payload:这个是每条消息的实际内容
|
||||
|
||||
- Dupflag:这个标志表示该消息是重复的并且由于预期的 client 或者 broker 没有确认所以重新发送了一次。
|
||||
|
||||
- 当 client 向 broker 发送消息时,broker 会读取消息,根据 Qos 的级别进行消息确认,然后处理消息。处理消息其实就是确定哪些 subscriber 订阅了 topic 并将消息发送给他们。
|
||||
|
||||
- 发布消息的 client 不会知道是否有人对发布的消息感兴趣,同时也不知道多少 client 从 broker 收到了消息。
|
||||
|
||||
- 订阅
|
||||
|
||||
- client 会向 broker 发送 SUBSCRIBE 消息来接收有关感兴趣的 topic,这个SUBSCRIBE 消息非常简单,它包含了一个唯一的数据包标识和一个订阅列表
|
||||
|
||||

|
||||
|
||||
- Packet Identifier:这个 PacketId 和上面的 PacketId 一样,都表示消息的唯一标识符。
|
||||
- ListOfSubscriptions:SUBSCRIBE 消息可以包含一个 client 的多个订阅,每个订阅都会由一个 topic 和一个 Qos 构成。订阅消息中的 topic 可以包含通配符。
|
||||
|
||||
- 确认消息
|
||||
- client 在向 broker 发送 SUBSCRIBE 消息后,为了确认每个订阅,broker 会向 client 发送 SUBACK 确认消息。这个 SUBACK 包含原始 SUBSCRIBE 消息的 packetId 和返回码列表。
|
||||
|
||||

|
||||
|
||||
- 发布 - 订阅 - 确认消息,这三种消息的示意图如下。
|
||||
|
||||

|
||||
|
||||
- 退订
|
||||
|
||||
- SUBSCRIBE 消息对应的是 UNSUBSCRIBE 消息,这条消息发送后,broker 会删除关于 client 的订阅。
|
||||

|
||||
|
||||
- 确认退订
|
||||
|
||||
- 取消订阅也需要 broker 的确认,此时 broker 会向 client 发送一个 UNSUBACK 消息。
|
||||
|
||||

|
||||
|
||||
- 退订和确认退订的流程如下
|
||||
|
||||

|
||||
|
||||
- Topic
|
||||
|
||||
- MQTT Topic 非常轻量级,client 在发布或订阅之前不需要先创建所需要的 Topic,broker 在接收每个 Topic 前不用进行初始化操作。
|
||||
|
||||
- 当客户端订阅 Topic 时,它可以订阅已发布消息的确切 Topic,也可以使用通配符来同时订阅多个 Topic
|
||||
|
||||
- 单级通配符可以替换 Topic 的一个级别,+ 号代表 Topic 中的单级通配符
|
||||
|
||||
- 多级通配符涵盖多个 Topic,# 代表 Topic 中的多级通配符。为了让 broker 能够确定和哪些 Topic 匹配,多级通配符必须作为 Topic 中的最后一个字符放置,并以 / 开头
|
||||
|
||||
- 当 client 订阅带有多级通配符的 Topic 时,不论 Topic 有多长多深,它都会收到通配符之前 Topic 的所有消息。如果你只将 Topic 定义为 # 的话,那么你将会收到所有的消息。
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user