还是熟悉的feng.li老师,还是熟悉的瓜皮禾禾,哈哈哈哈。
没想到研究生依然能听李丰老师的课。欢迎参观李丰老师主页,课程主页
李丰老师合著的参考书依然在编
10.07记:被李丰老师表扬了!!甚至还被打赏了(笑
继续努力啊小禾禾
分布式0924-分布式服务器基础Linux中主机的远程交互(ssh)
做个综述-Why Distributed Statistical Computing?
现成的统计软件提供了常用的计算方式。
我们学牛顿迭代,学QR分解,可以用在广义线性模型里。
这些方法,可以适用于各种模型。并非是重复应用现成统计工具。统计计算旨在让你理解工具,并且实现新的目标。一个线性回归,也有很多的东西。
上面是传统的统计计算的目标。
下来类推到分布式计算。
spark里也可以做线性回归与逻辑回归。Spark.ml(里有机器学习,有回归)
为何要花时间学hadoop版本的线性回归,目的是能够把知识平行迁移到分布式平台上。
不仅仅是告诉我们ml下有什么模型,这个是初级阶段。
如果某一天,spark里没有机器学习模块了,而我们仍然有能力写自己的模型。
在很多时候,能够写出自己的模型是有优势的。
如,现有一份稠密的数据,我想做一个分布式的模型。我想做一个ar模型,我想做screening,我想做分位数回归,可是spark上没有。但是作为统计学背景的,我们知道很多统计方法,结合现在这个分布式计算的时代,适当地借助现有的工具,在spark上实现这样的操作,那么这门课就步入中级了。
如果自己开发了个spark,那就是高级了。(氦核:啊这)
r软件里写这样的相对容易。spark里则是有难度的。如果你不善于整理归纳,统计学很多方法、算法可能看起来非常混乱。真正意义上的统计学只有八十年,统计计算开始于上世纪90年代。
1.数据状态(静态线下数据—动态实时大样本全量数据)
2.计算模式(单机存储单机计算—分布式存储分布式计算)
3.数据存储(统计模型与数据一体化—统计模型部署到数据)对y和x没要求,分布式中很挑剔,rdd还是dataframe,是稀疏矩阵还是稠密矩阵是sparkml(dataframe形式)还是mllab(rdd形式)
4.计算逻辑(单个模型对应单个算法实现—所有模型一体化计算框架)
5.需求实现(模型评估与应用—实时模型评估与预测需求)
我们对数据要有一定的认识。比如数据必须保存成特征(feature)+标签(label)的形式。
先写一个目标函数,然后优化。常见的优化算法,列出来12345。计算机背景的人,首先定义一个损失函数Loss,第二选一个合适的数据,第三做优化(牛顿迭代,梯度下降)。一二三就是一个流水线,通过管道(pipe)来进行。
我们搞统计的,就应该适应这种管道形式的建模思路,分布式的建模策略。
很多时候,我们的模型假设性太强,但现在的分布式平台中,根本没法满足传统假设。原来的统计方法还能否适用?传统的统计学家不关心。这好吗,这不好。要迁移到分布式的计算上来,要有很多新的观念上的转变,要有持续的转变思维。
比如,时间序列数据在分布式平台上就很缺乏。如果我们做开发,那么我们的平台/接口一定要有计算性+可延展性:即需要易用性、通用性,能使用户拥有比较统一的输入和输出,全流程都能解决,通过统一的分布式接口,使你的平台将来能更好地被别人所接受。
统计学,每个学科都要学。计算机,经济学,管理学,等等都要学统计。
——李丰老师
我们要有新的平台,在最后做一个组合,能够完成大多数场景的统计计算,Hadoop就是一个足够好的分布式计算平台,但是hadoop不是足够好的统计计算平台。有一天你也能开发出足够好的统计计算平台。
海量数据下,现有应用场景,再想在应用场景下的工具。产品经理与算法工程师都是如此,用什么方法不重要,重要的是能够支持负载,能把这些都算出来,保证不宕机。
当前的情况不一样了,举一个例子:后台监管中,可能刻意回避一些东西。曾经有个跨境交易不能超过20w美元,风险点。于是各大银行会把跨境的交易全部拆成199美元。这些东西必须要学习模型来识别。核酸检测也是如此,识别feature。再比如,人类的基因组计划,ATCG的特征,每个人都要产生很大的核酸数据。
三步走:
应用场景:稳定性检测预警+动态监测与预报+样本实时监测
1.实时数据
2.统计计算
3.需求:分布式模型选择,分布式模型选择准则,约束下模型选择与决策
实时数据源:历史数据集+实时采集数据集
现在不像以前那么简单了。不过,蓝图应如此。
老师的研究
如何在现有平台上开发出自己的东西呢?
最小二乘近似,这是面对统计计算的接口。
能够使各种各样的统计模型都能应用在分布式平台上。
数据不动,最后算完合并。性质不好。
NIPS讨论了以更好方式重新对参数进行聚合,保证聚合的效果。2014
用在具体模型中,比如主成分。2017(范剑青老师的文章)
每次开发成本较高。每次一个新模型都要适配。
若采用一次性的估计,效率很有问题。而采用多次的时候迭代中通讯成本较高。
如果想把大数据合成小块,其实有个默认假设:数据随机分布。
一个桶倒满之后,再倒第二个桶,是增量的形式。如果完全利用one-shot(之前有介绍,是一种稀疏数据储存方式)会损失很多信息。
老师就希望提供一个解决方案。希望提供一个有效地估计,在计算节点上也有效,且有普适性,能够迁移到其他算法中。
此时,就轮到DLSA分布式的最小二乘近似出场了。(严格证明略)
给定某一个参数theta,似然函数就是当前数据所有特征最大的体现。
如果n个样本,这个似然函数可能是对n个密度的求和。
如果让似然函数除以n,则变成了一个损失函数。此时与机器学习中的方案对应起来了。
对似然函数没有任何假设。线性、非线性、时间序列都行。
对似然函数二阶导展开,展开后变换,之后新的似然函数会变成原始的似然减去新的目标,再加上一个常数c。就能近似写成某个形式。最后等价于一个加权最小二乘的表达式。极大化似然估计,就等价于如何对公式做最小二次近似。
这是一个标准的思路:统计理论,实现,组合成可应用形式。
spark上能不能做到逻辑回归,是否有你的方法好,是否贡献了全新的接口,是否解决了问题(推荐航班(此处指那时候刚结束的air-delay数据清洗工作),不延误,省钱)。
还有很多工作待发掘,未来可期。
还发现一个repo,没来的及看:分布式上的时间序列数据darima
(完)
本文链接: https://konelane.github.io/2021/01/04/20-21分布式计算汇总文件/
-- EOF --
转载请注明出处 署名-非商业性使用-禁止演绎 3.0 国际(CC BY-NC-ND 3.0)