Code Monkey home page Code Monkey logo

econ_daily_note's Introduction

Econ Daily Draft

  1. 从官方数据接口提供的数据下载灯光数据集,一般为tiff或者geotiff格式;并下载最新的**省市县区级行政边界1:400 shapefile文件(一定要是最新的,不然某些海岸线会发生变化)

  2. 在Arcgis Pro中,添加数据 -- 打开图层,得到一个栅格数据文件(灯光数据),一个要素图层文件(城市边界)。然后对SNPP-VIIRS的栅格要素裁剪到城市图层上来,并及时保存裁剪的栅格数据。

    1) 在工具栏中搜索 -- 裁剪栅格,输入SNPP-VIIRS光源地图,依据地级市城市的边界进行裁剪(√)

    2) 右击已经创建完毕的图层 -- 导出栅格,选择合适的地理边界对它进行导出(当然也可以不选择这么做)

  3. 调整投影坐标系与重采样。在工具栏里输入 -- “投影” 或 “投影栅格”,选中灯光栅格数据,将原先的图层投影到WGS 1984上(√)

    1) 如果X轴与y轴的像元不为整数,可以同时调整x与y像元的大小,例如将416改为500,方法选择“最近邻法”便于计算(当然也可以不选择这么做)

    2) Arcgis Pro使用的世界地形底图投影坐标系为WGS 1984 Web Mercator (auxiliary sphere),EPSG:3587;而Payne Institute提供的无云DNB数据集的坐标轴投影参考为WGS 1984,EPSG:4326;**的区县边界地图坐标轴投影参考多为WGS 1984 Asia_North_Albers_Equal_Area_Conic,EPSG:102025。在不需要使用底图做其他地理统计分析的情况下,实际上只需要保证地级市边界与灯光数据集的范围一致即可(例如WGS 1984)。

    3) 右击图层的“属性”选项卡,查看投影参考坐标与xy轴像素大小(√)

    4)如果需要对像元进行四舍五入,或者对像元值进行缩放分级,需要在工具箱 -- 重采样,划定采样的分级与方法(因为DMSP的图像为64级,如需要将SNPP-VIIRS与DMSP进行匹配,则可能需要转换标度)

  4. 异常值处理。需要注意的是这一步仅能识别一些统计范围内可能存在的信源异常值,例如<0,过大的局部值等;而卫星型号,云层,水域反射,数据跨年可比性等问题不会在这一步得到解决。可选择的办法有:

    1) 直接对数据在区域内以像元为单位进行截断,统计每一个地理区块内部的所有像元值异常分位数,截取1% - 99%分位数内的数据(X)

    2) 参考GLND数据库对SNPP-VIIRS数据的处理方法,提取当前时间段"北京","上海","广州"范围内的像元最大值为全国的"有效最大值"。利用栅格计算器将全图的像元最大值替换为“有效最大值”(√)

    3) 由于Payne Institute提供的处理产品已经消除了杂散光的影响,且我们并未有与DMSP相互校正的需求,这里并未与DMSP做掩膜提取。而是直接参照一些其他文献的方法,将<0的像元值视为异常值全部替换为0。

  5. 对栅格的pixel value由浮点型转换成整型(pixel value不是整型在栅格的拼接上会出现问题,但与要素的连接不会,这一步可以不做):

    1) 打开Arcgis Pro的工具箱 -- “栅格计算器”,在命令行输入计算表达式: Con((RoundUp("NPP_VIIRS_202011.tif")- "NPP_VIIRS_202011.tif")>0.5,RoundDown("NPP_VIIRS_202011.tif"),RoundUp("NPP_VIIRS_202011.tif")),这是做四舍五入的操作。当然如果pixel value过小,则应当先全部放大乘于整数后再转换成整型,在空间分区统计之后再转换成原先的大小

    2) 在工具栏里输入 -- “转为整型”并搜索,导入经过四舍五入转换过后的整数浮点值,可以直接转换成整型

  6. 在工具栏里输入 -- “以表格显示分区统计”,将行政边界文件输入“要素区域数据”,将栅格文件输入“赋值栅格”,计算得到一张以地方区县界为统计单元的表,其中会提供一系列的统计信息。count代表落在该区域内的像元个数,area代表区域面积,sum代表区域内的像元值加总,mean代表区域的像元值加总除以总面积。

示例处理过程 -- SNPP-VIIRS 201903

1)导入由Clorado Payne Institute下载的原始数据文件SVDNB_npp_20190301-20190331_75N060E_vcmcfg_v10_c201904071900.avg_rade9h.tif, 其显示东亚半区的所有图像,像元值范围从-0.82到48754.1,"avg_rade9h" 代表其显示的是平均辐射度四舍五入到百分位

2)依据上述方法与**的省市边界裁剪后得到**全域灯光图,像元值范围从-0.57到2869.97

3)先做一次"以表格显示分区统计"以获得基本统计数据,2019年3月的北京最大亮度栅格为271.890015,上海最大亮度栅格为284.109985,广州为306.600006,那么将全地图像元值大于306.6的像元值全部替换成306.6--Con(("SVDNB_npp_2019030120190_Clip1">306.6),306.6,"SVDNB_npp_2019030120190_Clip1")。同时将小于0的像元值全部替换为0-- Con(("con_raste"<0),0,"con_raste"). 我们得到一个像元值在0-306.6的**灯光地图。

同时我们分别展示像元值大于0.5,像元值大于1,像元值大于5的掩膜地图(以0与1表示数值范围,顺序由上到下)

4)再次运行"以表格显示分区统计"(只计算有像元值地区),得到数据集201903_light.csv, 一般选用其中的mean作为DNvalue的替代指标。

Robust Check of Generate Way

  1. 由于对原始数据集不同的处理方法导致灯光pixel的标度不一,我们同时寻找一些国内外地理测绘使用的经过转换后的SNPP-VIIRS数据集,观察归一化后**各个主要城市的DNvalue的差异情况,如果各份数据集之间的差异并不大,则说明其处理效果良好。

    1)与GNLD处理数据集的结果相比,整体上有baseline 光源被加1了的情况,数据内部的峰度与偏度并没有太大改变,推测是他们对负值进行掩膜处理的时候直接加上了1

    2)与**矿业大学课题组提供的处理后数据完全一致

BERT使用meanpool与CLS作为representation的异同

在BERT中,[CLS]符号被用作序列的开头,并且最后一层的[CLS]表示被用来代表整个句子的向量表示。这是因为BERT在预训练时使用的任务是“Next Sentence Prediction”,即判断两个句子是否是连续的。在这个任务中,BERT需要学习将两个句子的信息结合起来,并生成一个表示整个句子对的向量。因此,BERT将最后一层的[CLS]表示作为整个句子的向量表示,该表示将两个句子的信息结合起来,因此通常被认为是较好的句子向量表示。

另外,BERT的每个单词的表示都考虑了该单词在上下文中的信息,因此使用BERT的[CLS]表示作为句子向量,能够捕捉整个句子的上下文信息,相对于简单的词向量加权平均的句子向量表示更加具有表征性。

H & P(2016) 的做法

1)如何找出对应的新行业:包含某些特定产品词的行业,为我们需要的固定类别归属的行业

2)如何确定最佳的新行业的个数:在第42页,作者提到了使用信息准则(如AIC和BIC)来确定最佳行业数量的方法。具体而言,作者发现AIC得分在大约300个行业时达到最小值。作者还指出,这个最小值周围只有一个缓慢的斜坡。因此,作者得出结论,SIC和NAICS使用的粒度程度(大约300个行业)是合理的,并且也是10-K基于行业的信息的一个很好的基准。

当前衡量聚类优秀程度以确定聚类个数的方式,往往不再基于WCSS或者轮廓系数等等,硬性判断向量空间紧密程度的指标,而是使用R方,AIC, BIC等等简单的统计量,控制FE跑一个回归,因变量是某些要研究的对象,例如利润率,资本水平,销售额等等能表现不同行业差异的变量,自变量是不同的聚类对象,例如张任宇Demand Prediction in Retail——A Practical Guide to Leverage Data and Predictive Analytics。简而言之,某些情况下,聚类应该更“具有解释性”而不是“在空间上更紧密“,尤其是高维向量几乎完全抹去了文本的本来意义时。

3)如何构造每个行业的特征词向量,并利用这个向量对新行业进行分类:首先计算每个行业的词汇使用向量。每个向量都是基于1997年出现在所有公司中不到25%的词汇。向量由给定行业中使用给定单词的公司数量填充,然后将这个向量归一化,使其具有单位长度(当然这是由于H&P计算公司成对相似度的方法与之一致)。这种归一化确保了使用更多单词的行业不会根据规模获得奖励,而是仅根据相似度获得奖励。对于想要分类的给定公司,只需计算它与所有候选行业的相似度,然后将该公司分配到与它最相似的行业。企业与行业的相似度就是企业的归一化词向量与行业的归一化词向量的点积。类似于:行业0中A公司使用2次饮料,2次矿泉水,B公司一次矿泉水,那么向量中只有饮料与矿泉水的位置有归一化的值,这就是行业的特征向量,通过比较不同企业与之的相似度,来决定日后的其他企业应该分配到哪个相似度最高的类。当然,我们也可以获取加权后的TF-IDF高频词作为行业的代表,同时,我们也可以使用Kmenas的质心,比较不同行业间的聚类,对新的企业进行行业分类。

4)当关注到每个行业时,为了确定Kmeans是否适合,需要做多次并且观察聚类大小的分布是否稳定,聚类的关键词代表是否统一,主要的方法是:

融合聚类结果指的是将多次运行聚类算法得到的不同聚类结果进行组合,以得到一个更加稳定和准确的聚类结果的过程。通常情况下,单独运行聚类算法得到的聚类结果可能存在一定的随机性和不确定性,因此我们可以采用融合聚类结果的方法,以弥补这种不确定性,提高聚类结果的可靠性和鲁棒性。

常见的融合聚类结果的方法包括:

投票融合:对于每个数据点,统计多次聚类结果中所属的聚类类别出现的次数,然后将出现次数最多的类别作为该数据点所属的聚类类别。

均值融合:对于每个数据点,将多次聚类结果中所属的聚类类别的类别中心取平均值,作为该数据点所属的聚类类别的类别中心。

加权平均融合:将多次聚类结果进行加权平均,权重可以基于各个聚类结果的评估指标或者聚类结果的稳定性来分配。

需要注意的是,融合聚类结果需要选择合适的聚类数目,聚类算法的参数以及融合方法,以获得最佳的聚类结果

非参数估计和半参数估计

非参数估计和半参数估计是概率统计学中两种不同的估计方法。

非参数估计是指不对总体的分布形式作出任何假设的估计方法,也就是说,它不要求我们对总体的分布形式有任何先验知识。相反,它通过观察样本数据来估计总体的分布形式。常见的非参数估计方法包括核密度估计、分位数回归等。

半参数估计是指假设总体的分布属于某个已知的参数化分布族,但只估计其中一部分参数的方法。这种方法通常适用于我们对总体分布的某些特征有一定的先验知识,但对分布的其他特征则没有先验信息的情况。半参数估计在实践中广泛应用,包括经典的生存分析中的Cox比例风险模型等。

总之,非参数估计不对总体的分布形式作出假设,而半参数估计假设总体的分布属于某个已知的参数化分布族,并仅估计其中一部分参数。

指数族分布

1)给定的概率密度函数形式

2)共轭性质:后验分布 + 似然函数 = 先验分布,符合同一个指数族分布,例如狄利克雷分布

数据增强(Data Augmentation)

可以看作是一种KDE,等概率地从原始训练样本抽取样本并增加一个正态噪声

SUTVA 假设

稳定单位处理值假设:

1)任何单位的潜在结果都不会随着分配给其他单位的治疗而变化;受试者的潜在结果不受其他受试者暴露于治疗的影响(这就是安慰剂的作用和非明显告知处理组用药的作用)

2)对于每个单元,每个处理级别没有不同的形式或版本,这会导致不同的潜在结果(一致性);意味着**政策到各个地方上的执行力度和执行方式是不一致的;处理的定义要明确,例如"15分钟的运动"

参见:https://bookdown.org/paul/applied-causal-analysis/which-variables-causes1.html

黑箱

反对使用 ML 工具的一个常见反对意见是,它们是“黑匣子”,模型在其中学习的关系不容易解释。尽管许多 ML 方法比对应的线性回归方法更复杂,但这并不是 ML 工具的固有问题,而是反映了任何方法都面临的灵活性和可解释性之间不可避免的权衡。一旦我们旨在反映非线性、相互作用或异质性,模型解释就会变得更加困难。考虑增加线性回归灵活性的 tobit 模型,以系数无法直接解释为代价对删失观察进行建模,边际效应取决于所有解释变量。分位数回归或局部加权回归允许更大的灵活性,但在模型产生大量边际效应的意义上以复杂化可解释性为代价。灵活性与可解释性之间的这种权衡也适用于模拟方法。例如,与复杂的可计算一般均衡模型相比,简单的分析经济模型在可解释性方面可能更胜一筹。因此,关于可解释性的相关问题不是机器学习工具与“传统”方法的对比,而是回答某个研究问题是否需要高度灵活的复杂模型,能够反映非线性、相互作用、异质性或动态。灵活性与可解释性之间的这种权衡也适用于模拟方法。例如,与复杂的可计算一般均衡模型相比,简单的分析经济模型在可解释性方面可能更胜一筹。因此,关于可解释性的相关问题不是机器学习工具与“传统”方法的对比,而是回答某个研究问题是否需要高度灵活的复杂模型,能够反映非线性、相互作用、异质性或动态。灵活性与可解释性之间的这种权衡也适用于模拟方法。例如,与复杂的可计算一般均衡模型相比,简单的分析经济模型在可解释性方面可能更胜一筹。因此,关于可解释性的相关问题不是机器学习工具与“传统”方法的对比,而是回答某个研究问题是否需要高度灵活的复杂模型,能够反映非线性、相互作用、异质性或动态。

虽然可解释性是因果分析的基础,但它也有助于纯预测任务。可解释性有助于调试模型或评估估计的关系是否合理。可解释性对于评估 ML 算法是否具有歧视性也至关重要,例如,当银行使用它来确定贷款或为法院量刑提供指导时(Molnar,2018年)。

在 ML 和计量经济学中,存在许多解释方法。Molnar (2018)提出了一个很好的概述,从中得出了以下大部分讨论。更详细的讨论在附录 A1( ERAE在线补充数据中的附录)。解释的主要方法之一是绘制一个或多个特定特征的隐含边际效应,例如通常用于解释 tobit 或 logit 模型的输出。部分依赖图( Hastie、Tibshirani 和 Friedman,2009:369)和累积局部效应图( Apley,2016)将一个或两个变量的结果与其预测结果进行比较,而个体条件期望图( Goldstein等人,2015;莫尔纳, 2018) 生成它们以供个人观察。其他方法使用模型结果来模拟边际效应,就像政策分析的大型模拟模型经常做的那样。Shapley 值解释系统地执行此操作,通过计算从具有和不具有感兴趣特征的其他特征的分布得出的预测来估计边际效应。

如果不是产生边际效应,而是旨在了解模型的预测如何与特定输入相关,则可以使用可解释的模型来估计输入与更复杂模型的预测输出之间的关系。当用于数据的整体分布时,这被称为全局代理模型。局部可解释模型不可知论解释 (LIME) 侧重于理解单个数据点的预测(Ribeiro、Singh 和 Guestrin,2016 年)。

另一种通用方法是确定每个解释变量对结果预测的影响有多大。对于基于树的模型,可以通过对不同预测变量的重要性进行排名来评估预测变量的相对重要性(Hastie、Tibshirani 和 Friedman,2009 年:367)。Fisher、Rudin 和 Dominici (2018)将这种方法扩展到任何其他模型。抛开敏感性测试的想法,ML 中的一种常见方法是确定导致特定模型预测发生变化的解释变量的最小变化(Molnar,2018 年)). 其他方法开发了所谓的“对抗性示例”,确定观察的哪些特征需要改变才能产生错误预测。最后,还有一些方法可以通过识别一些代表性数据点,称为“prototypes”;与罕见事件,使用聚类算法称为“critisims”(参见 Kim、Khanna 和 Koyejo,2016 年)来探索模型捕获的异质效应。然后将模型对这些原型和批评的预测与它们的实际结果进行比较。

参见:https://academic.oup.com/erae/article/47/3/849/5552525?login=false

econ_daily_note's People

Contributors

chongruiyang avatar

Watchers

 avatar

econ_daily_note's Issues

Perturbation and Projection (摄动法与投影法求解HAM)

Runge-Kutta methods

$$ y_{n+1} = y_n + h/6·(k_1 + 2k_2 + 2k_3 + k_4)$$

  • 四级四阶

级(Stage)表示龙格库塔法的迭代步数。四级龙格库塔法表示迭代四步。在每一步中,根据微分方程计算出一次近似解,然后将这四次近似解的线性组合作为最终的近似解。

阶(Order)表示龙格库塔法的精度或误差项的阶数。四阶龙格库塔法表示方法的误差为O(h^4),即随着步长h的减小,误差会以h^4的速度减小

  • 解的精度:

$y_{n+1} - y_{n} $的局部截断误差为步长 $h$$O\left(h^{p+1}\right) $之时称该方法有 $p$ 阶精度

一般而言:

$$ y_{n+1} = y_n + h·\phi(·) $$

其中 $h$ 是仿真步长, $\phi(·)$ 是增量函数

不同的求解方法,需要构造不同的增量函数:
1) $\phi(·)= \phi(x_i,...,x_n,x_{n+1},y_i,...,y_n,y_{n+1},h)$ 增量函数
2) $\phi(·)$ 中不包含 $y_{n+1}$ 是显格式算法,否则隐格式
3) $\phi(x_n,x_{n+1},y_n,y_{n+1},h)$ 是单步法,否则是多步法

那么基础求解方法有欧拉法,后退欧拉法,梯形法,改进欧拉法等求解格式,可以看出积分的近似效果并不是很好

方程解的精度取决于数值积分的精度,上述的四种经典方法由于积分点的限制,最高也只能到2-阶精度;提高精度的办法是增加积分点

不同的求解格式对于目标值的计算积分可能产生方向确定的偏误,有些求解近似可能不能确定偏误的方向

import numpy as np
import matplotlib.pyplot as plt
import sympy as sy

def diff_eq(t,x):
    return sy.diff(x(t),t,1) - x(t) 
    
t = sy.symbols('t') #定义微分方程的符号变量
x = sy.Function('x') #创建函数符号x
sy.pprint(sy.dsolve(diff_eq(t,x),x(t)))

def dot_x(t,x):
    return np.sqrt(x)  #定义微分方程的函数x' = x

def rk4(f,t,x,h):
    k1 = f(t,x);
    k2 = f(t+0.5*h,x + 0.5*h*k1)
    k3 = f(t+0.5*h,x + 0.5*h*k2)
    k4 = f(t+h,x + h*k3)
    return h/6*(k1+2*k2+2*k3+k4)

t_list = np.arange(0,5,0.1);
#print(t)
x1_list = np.exp(t_list)
x2_list = []
x3_list = []
h = 0.1
x2 = 1;
x3 = 1;

for t in t_list:
#   print(t,idx)
    x2_list.append(x2)
    x3_list.append(x3)
    x2 = x2 + rk4(dot_x,t, x2, h)
    x3 = x3 + dot_x(t,x3) * h               
error_2 = x1_list - x2_list
error_3 = x1_list - x3_list

plt.figure()
plt.subplot(2,1,1)
plt.plot(t_list,x1_list, 'b-',label='Real')
plt.plot(t_list,x2_list,'r--', label = 'RK4')
plt.plot(t_list,x3_list,'g--', label = 'None')
plt.legend()

plt.subplot(2,1,2)
plt.plot(t_list,error_2, 'r--',label='Error_RK4')
plt.plot(t_list,error_3, 'g--',label='Error_none')
plt.legend()
plt.xlabel('Time(s)')
plt.show() 

ref: https://zhuanlan.zhihu.com/p/452525470

  • 为什么选用四级四阶的RK
  1. 由于 Runge-Kutta法的导出基于 Taylor 展开,所以精度依赖于解函数 $y(x)$ 的光滑性的好坏。实际问题的解函数的光滑性不一定会那么好,因此,不如采用低阶算法而将步长 $h$ 取小更妥当。
  2. 其次,Runge-Kutta 法的主要运算量在于计算 $K_R$ (即 $f$ )的值,即所谓 $R$ 级公式。 $R&gt;8$ 的时候精度只能达到 $R-2$
  3. 泛用,综合时间成本与效率来说最恰当
  • 什么情况下不适合用RK求解
  1. 方程中包含高阶导数。龙格库塔法由于采用泰勒展开,难以有效求解含有高阶导数的方程。这时通常需要采用更高精度的方法,如预测-修正法等。
  2. 方程中包含快速变化或奇点。龙格库塔法是一种单步法,在快速变化或奇点区域,单步法难以捕捉变化,导致低精度或不收敛。这时通常需要采用自适应步长方法。
  3. 需要高精度解。龙格库塔法的精度取决于采用的公式,四阶龙格库塔法精度较低。当需要高精度解时,通常需要采用更高阶方法,如六阶龙格库塔法、黑塞方法或NM方法等。
  4. 方程具有离散特征。对于含有离散模式的方程,龙格库塔法由于采用连续近似,无法有效捕捉离散特征,导致错误结果。这时通常需要采用具有离散化机制的方法,如离散化galerkin法等。
  5. 存在约束条件。龙格库塔法难以有效考虑方程中存在的约束条件,这会导致求解结果不满足约束条件。这时通常需要采用能够考虑约束条件的方法,如罚函数法等

Perturbation

  • 在HA里面,会添加一些内生冲击与随机扰动,求解近似的速度很慢
  • 将影响到解析解的项视为扰动,求解有效近似精确解;在总体状态向量(aggregate state vector)很大的情况下,求解速度也很快
  • 将函数按照基函数展开到n项,后一项是关于前一项的小量

Incremental PCA

Increnmental PCA

Incremental PCA(IPCA)是一种用于主成分分析(PCA)的算法,其主要目的是在处理大规模数据时降低计算成本。相比于传统的PCA算法,IPCA允许将数据集分成多个小批量并逐个处理,从而避免一次性加载整个数据集的需求,使得处理大规模数据变得更加高效。

在IPCA中,数据集被分为多个批次,每个批次只包含一部分数据。该算法首先通过对第一个批次数据进行PCA分析来计算出数据集的前k个主成分。然后,它在后续的批次中使用递归公式来更新这些主成分的估计值。

由于IPCA允许分批处理数据,因此它可以在需要处理大量数据的情况下显著提高PCA算法的效率和可扩展性。

PCA的递归公式用于更新已经计算出来的前k个主成分的估计值。假设我们已经得到了第 $i-1$个批次中的前 $k$个主成分的估计值,我们需要将它们更新为第i个批次中的数据的主成分的估计值。具体来说,我们可以使用以下递归公式:

对于第 $i$ 个批次中的每个样本向量 $x$,我们首先将其居中(减去数据集的平均值)。

然后,对于第 $j$ 个主成分,我们计算其权重向量 $w_j$ 的更新:

$$ w_j = w_j + α * (x * v_j) * x - β * v_j $$

其中, $α$$β$ 是调整权重的超参数,$x * v_j$ 表示 $x$$v_j$ 之间的点积。

接下来,我们需要将权重向量 $w_j$ 归一化:

$$w_j = w_j / ||w_j||$$

其中, $||w_j||$ 表示 $w_j$ 的欧几里得范数。

最后,我们需要更新主成分的估计值 $v_j$
$$v_j = (1-λ) * v_j + λ * w_j$$

其中, $λ$ 是控制新旧估计值之间权重的超参数,一般取值为0.1到0.5之间。

IPCA算法在GPU上使用时,其内存使用情况取决于数据集的大小、批次大小、主成分数量以及GPU的内存大小等因素。

  • 具体地,IPCA算法在处理大规模数据时,可以将数据集分成多个小批量,然后逐个将它们加载到GPU中处理。在处理每个批次时,算法只需加载当前批次的数据和前一个批次计算得到的前 $k$ 个主成分的估计值

  • 在IPCA算法中,权重向量是用来计算每个样本在每个主成分方向上的投影的。在处理第 $i$ 个批次的数据时,可以使用前 $i-1$个批次的数据来估计前 $k$ 个主成分的权重向量。

具体地,IPCA算法的权重向量是通过以下递归公式来逐步更新的:

  • 初始化:将第一个批次的数据作为初始数据,使用传统的PCA算法来估计前k个主成分和权重向量。

  • 对于第i个批次的数据(i>1),可以将前 $i-1$ 个批次的数据和前一个批次计算得到的前 $k$ 个主成分的权重向量作为输入,使用传统的PCA算法来估计第 $i$ 个批次数据的前 $k$ 个主成分和权重向量。具体地,可以采用以下步骤来更新权重向量:

a. 对于第 $i$ 个批次的数据,计算每个样本在前 $k$ 个主成分方向上的投影。

b. 对于每个主成分方向,将前 $i-1$个批次的数据和当前批次的投影拼接成一个矩阵,然后使用SVD或其他基于矩阵分解的方法来估计该方向上的权重向量。

c. 将估计得到的前 $k$ 个主成分的权重向量作为第 $i$ 个批次的权重向量。

Double Machine Learning(DML)

Double Machine Learning(DML)是一种半参数估计方法,旨在通过结合机器学习和传统经济计量学技术来解决因果推断问题。该方法最初由 Victor Chernozhukov、Denis Chetverikov和Christian Hansen等人于2017年提出。

DML方法的主要**是使用两个机器学习模型来估计因果效应。第一个模型被用来预测因变量,而第二个模型被用来预测干扰变量。然后,通过将这两个模型的预测结果结合起来,可以估计出因果效应。DML方法具有一定的灵活性,可以适用于各种因果推断问题,包括交互效应和高维数据问题。

相比于传统的因果推断方法,DML方法具有一些优点。首先,它可以处理大规模和高维数据,而传统的因果推断方法可能会面临维数灾难的问题。其次,DML方法可以通过机器学习的方式自动进行变量选择和调整,从而避免了传统方法中的模型规范性问题。最后,DML方法具有较高的效率和准确性。

需要注意的是,DML方法仅适用于观测数据,而不适用于实验数据。此外,DML方法也存在一些限制和假设,如对模型的正确指定、数据的平稳性和随机抽样的假设等。因此,在使用DML方法时需要注意其适用范围和前提条件。

Hierachy for ``package``

给定要聚类的N的对象以及N*N的距离矩阵(或者是相似性矩阵), 层次式聚类方法的基本步骤(参看S.C. Johnson in 1967)如下:

  1. 将每个对象归为一类, 共得到N类, 每类仅包含一个对象. 类与类之间的距离就是它们所包含的对象之间的距离.
    
  2. 找到最接近的两个类并合并成一类, 于是总的类数少了一个. 
    
  3. 重新计算新的类与所有旧类之间的距离. 
    
  4. 重复第2步和第3步, 直到最后合并成一个类为止(此类包含了N个对象).
    

Attention in BERT

这不是BERT和RobertA的注意力机制,只是为了帮助理解:

BigBird是在Transformer模型基础上提出的一种稀疏注意机制。相比于Transformer中的全连接注意力,BigBird的注意力机制是线性的,这使其具有更高的计算效率。

BigBird的稀疏注意力由三个主要部分组成:

  1. 一组全局令牌,对输入序列的所有部分进行注意力。这可以捕捉到输入序列的全局上下文信息。
  2. 所有令牌都会对一组局部相邻的令牌进行注意力。这可以建模输入序列的局部上下文依赖关系。
  3. 所有令牌都会对一组随机选择的令牌进行注意力。这有助于模型学习到更丰富的上下文表达。
    相比于ETC模型,BigBird不需要任何关于源数据结构的先验知识。它是一个通用的注意力替代机制,可以直接替换Transformer中的全连接注意力。

具体来说,BigBird的注意力可以表示为:
Attention(Q, K, V) = βqZqKV + αqMqKV + γqRqKV

其中:

  • ZqKV对应全局令牌的注意力,βq是全局注意力系数
  • MqKV对应相邻令牌的注意力,αq是局部注意力系数
  • RqKV对应随机令牌的注意力,γq是随机注意力系数

与Transformer相比,BigBird的主要优点是:

  1. 线性时间复杂度。全连接注意力的时间复杂度是O(n2),BigBird的时间复杂度为O(n)。这大大提高了模型的计算效率。
  2. 不需要任何先验知识。BigBird是一个通用的机制,可以直接替换Transformer的注意力模块,不需要任何关于任务或数据的先验知识。
  3. 性能不下降。BigBird可以达到与Transformer相当的性能,在一些任务上甚至优于Transformer。
  4. 更广的应用前景。由于更高的计算效率,BigBird可应用于更长序列的NLP任务,这些任务Transformer难以处理。

所以,总体来说,BigBird是在Transformer基础上的一种稀疏注意力机制。相比于全连接注意力,它具有线性时间复杂度,不需要任何先验知识,可以在性能不下降的情况下大大提高模型的计算效率。这使其有望在更广范围内应用于NLP。

Server with Abnormal Interrupted

Dear Vinci,

I’m Chongrui, I just ran the code in the JRC A100 cards, I tried to do the ‘’compute’’ or “srun” to connect the A100 JRC but failed several times. I just find:

I can connect the rtx3090 in econ department in other nodes
I can ping to the scrp-node-11 in JRC
I am pretty sure that Just I use the node now to run the code, but it showed that the task is queued
What’s wrong with that cards, I just do some works on it this afternoon for the problems check:

More precisely, I used the RAPIDS, a distributed framework for machine learning. When I run the code with a Kmeans clustering with 90G data (50196MiB/81920MiB;46520MiB/81920MiB for each cards, cpu occupation is 488G/700G I applied), but suddenly it returned the nvml error below and i can’t use ssh scrp-node-11 to run watch -n 0.1 nvidia-smi any more. And then I have to quit the node but can’t applied anymore.

I wonder what’s wrong with the cards, thanks so much for your help! I hope the card didn't fall into any problems due to my computing tasks.

Oracle Property

在统计与机器学习中,oracle property是指一个估计量在某些条件下可以达到理想状态的性质。具体而言:

  1. 一致性。这表示估计量在样本量趋向无穷大时,其估计值会收敛到真实值。这保证了估计量在大样本理论下的无偏性和拟合优度。
  2. 选择性。这表示估计量能够在训练过程中实现变量或特征选择,选出真正相关的变量或特征。在无穷样本下,选出的变量或特征为真正影响因变量的变量或特征。

所以,在统计学习中,具有oracle property的估计量在理论上具有以下优点:

1)可以在有限样本下产生无偏稳定的估计,并在样本量增加时收敛到真实值。这使得该估计量在统计上是有效的。
2)可以在训练过程中实现真正有意义的变量选择。这使得该估计量产生的模型更加精简和可解释。
3)由于选择出的变量具有真正的预测力,该估计量的预测性能优于包含较多无关变量的模型。这特别适用于高维数据场景。
4)具有更强的可扩展性。由于实现了变量选择,在特征空间维度较高时,该估计量的计算复杂度不会呈指数增长。

典型的具有oracle property的估计量有:

  • lasso回归:它实现了参数估计与变量选择的一致性。
  • 后续子集选择:它可以在无穷大样本下选择出真正相关的变量子集。
  • Dantzig选择器:它实现了参数估计的一致性以及相关变量的选择

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.