这篇文章给大家聊聊关于云图计划wiki,以及如何通过视觉SLAM构建得到的三维地图进行机器人的路径规划对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
在金融领域,人工智能最大的潜力究竟是什么
近来,人工智能已成为全球各行业的关注点,就金融领域而言,人工智能属于Fintech一系列技术创新中的一种,Fintech,即FinancialTechnology,可界定为是基于大数据、云计算、人工智能、区块链等技术全面应用于支付清算、借贷融资、财富管理、零售银行、保险、交易结算等金融领域,实现金融+科技高度融合。一言蔽之,人工智能同金融科技中的其他技术一样是将科学技术应用于金融行业服务于普罗大众,降低行业成本,提高行业效率的技术手段。
截止今年6月,全球共有超过1362家Fintech公司,来自超过54个国家,融资总额超过497亿美元。埃森哲的研究报告表明,全球金融科技产业投资在2015年增长75%至223亿美元。美国纳斯达克和投资银行KBW携手推出了KBWNasdaq金融科技指数KFTX,该指数共49只成分股,全部市值约为7850亿美元,占美国国内股票市值的4%,这也是第一只仅包含在美国上市的金融科技公司的指数,Fintech产业链井喷式的发展仍然持续,中国金融科技行业增长445%,接近20亿美元,该行业越来越受到全世界的关注。
同样,人工智能在金融领域的运用也在不断被研究深化,应用场景不断多元化。在讨论人工智能在金融领域中的应用潜力之前,我们先来了解下人工智能较其他技术而言独有的特性,用《时空中的金融科技》中的一句话来概括:“人工智能正在提升价值跨时间使用的能力,证明时间就是金钱的这一说法。”具体来说人工智能能够在以下三个方面“跑赢”时间:
1、快速吸收信息、将信息转化为知识的能力。人工智能在对文本、语音和视频等非结构化信息的获取方面出现较大飞跃,人类手工收集、整理、提取非结构化数据中有用信息的能力已不如人工智能程序,特别是文本信息,在自然语言处理和信息提取领域,这样的技术不仅限于二级市场的量化交易,对一个公司上市前各融资阶段或放贷对象的基本面分析乃至在实体经济中对产业生态和竞争格局的分析等都可以使用这样的技术来争取时间优势。
2、在领域建模和大数据分析基础上预测未来的能力。时间最本质的属性就是其箭头不可逆。未来是不确定的,但又是有规律可循的。基于知识图谱的领域建模、基于规模化大数据的处理能力、针对半结构化标签型数据的分析预测算法三者的结合,是人工智能在时间维度上沟通过去和未来,减少跨越时间的价值交换带来的风险的优势所在。
3、在确定规则下优化博弈策略的能力。价值交换领域充满了博弈,博弈皆需解决局势判断和最优对策搜索两个基本问题。人工智能由于人类,第一因为人工智能可以比人更充分地学习有史以来的所有公开数据;第二,人工智能可以比人更充分地利用离线时间采用左右互搏来增强学习策略;第三,人工智能可以几万台电脑共同协作,相对于几万人的协作而言不存在人类面对利益考量以及各种不淡定乃至贪婪的表现。所以,人工智能在博弈环节的普遍应用,也是一个必然的趋势。
具体到人工智能在金融领域的应用,笔者认为具有潜力的应用场景为量化投资以及智能投顾(或智能金融管家)、风险管理领域等。
量化投资已有实际案例,对标全球,世界最大的对冲基金桥水联合在2013年开启一个新的人工智能团队。RebellionResearch运用机器学习进行量化资产管理于2007年推出了第一个纯投资基金。今年9月末安信证券开发的A股机器人大战5万投资者的结局揭晓,从6月1日至9月的三个月里,以24.06%(年化96%)的累计收益率战胜了98%的用户。机器人运作模式是先从基本面、技术面、交易行为、终端行为、互联网大数据信息、第三方信息等衍化成一个因子库,属于数据准备过程,将因子数据提炼生成训练样本,然后选取机器学习算法进行建模训练,最后保留有效因子生成打分方程输出组合。机器人大数据量化选股较人类从基本面、公司财务等方面挑选因子量化选股而言更偏向从基本面、技术、投资者情绪行为类等方面挑选因子,对IT技术、数据处理技术的要求较高。
在智能投顾方面(智能金融管家)也已有初步的运用。广义的智能投顾,考虑投资者的财务情况对其进行个人财富精算配置,比如统筹考虑支票、储蓄、投资和养老保险。对于偏好主动进行资产管理的投资者,智能投顾能够根据投资者的问题,智能的分析海量信息给出答案。从国外的实践来看,智能投顾产品主要有投资推荐、财务规划和智能分析三种。具体应用案例如下:1)摩羯投顾:招商银行发布APP5.0,“摩羯智投”成为最大看点。摩羯智投运用机器学习算法,试图整合招商银行十多年财富管理实践及基金研究经验,并在此基础上构建以公募基金为底层资产,全球范围配置的“智能基金组合配置服务”。在利率市场化尾声之际,摩羯智投的问世,标志着银行等金融机构应对“储蓄搬家”的应对。对标海外智能投顾的资产管理规模已经从2012年几乎为零增加到2015年底的187亿美元。ATKearney预测,未来五年,机器人投顾的市场复合增长率将达到68%,到2020年,机器人投顾资产管理规模将突破2.2万亿美元。2)智能报告:人工智能能够自动搜集企业公告、上百万份研报、维基百科等公开知识库等披露信息后通过自然语言处理和知识图谱来自动生成报告。速度为0.4秒/份,60分钟即可生成全市场9000份新三板挂牌公司报告,在时空上的优势由此得以体现。3)信用卡还款:截至2015年末,全国人均持有银行卡3.99张,现代消费模式中,人们已习惯了信用卡或者手机绑定信用卡进行消费。一人多卡的现象有时会让持卡人忘记按时还款,逾期不还款的高额滞纳金会让用户产生损失。此类情况下人工智能能够将用户所有的信用卡集中管理,帮助用户在不同的还款期内合理安排资金,以支付最少的滞纳金。若账户没有余额的情况发生,开发公司会提供比信用卡公司利率更低的贷款,帮助用户还信用卡账单。
人工智能乃至金融科技的创新,是对金融市场、金融机构以及金融服务供给产生重大影响的新业务模式、新技术应用、新产品服务。他与传统金融并不是相互竞争的关系,而是以技术为纽带,相信未来将为有更多人工智能的应用场景出现,让传统金融行业摈弃低效、高成本的环节从而形成良性生态圈循环。
如何通过视觉SLAM构建得到的三维地图进行机器人的路径规划
这里机器人观察员转载一篇大神关于SLAM方面的文章。SLAMA在服务机器人行业应用比较多。但是也有局限性,包括在草坪地面等特殊的地方。
作者序:开始做SLAM(机器人同时定位与建图)研究已经近三年了。从博士一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解。然而越了解,越觉得这个方向难度很大。总体来讲有以下几个原因:
入门资料很少。虽然国内也有不少人在做,但这方面现在没有太好的入门教程。《SLAMfordummies》可以算是一篇。中文资料几乎没有。
SLAM研究已进行了三十多年,从上世纪的九十年代开始。其中又有若干历史分枝和争论,要把握它的走向就很费工夫。
难以实现。SLAM是一个完整的系统,由许多个分支模块组成。现在经典的方案是“图像前端,优化后端,闭环检测”的三部曲,很多文献看完了自己实现不出来。
自己动手编程需要学习大量的先决知识。首先你要会C和C++,网上很多代码还用了11标准的C++。第二要会用Linux。第三要会cmake,vim/emacs及一些编程工具。第四要会用openCV,PCL,Eigen等第三方库。只有学会了这些东西之后,你才能真正上手编一个SLAM系统。如果你要跑实际机器人,还要会ROS。
当然,困难多意味着收获也多,坎坷的道路才能锻炼人(比如说走着走着才发现Linux和C++才是我的真爱之类的。)鉴于目前网上关于视觉SLAM的资料极少,我于是想把自己这三年的经验与大家分享一下。说的不对的地方请大家批评指正。
本文转自:深度学习大讲堂,转载已获许可。
作者:高翔,清华大学自动化学院博士研究生,主要研究兴趣为基于RGB-D相机的视觉SLAM技术。先后获得清华大学新生奖学金、张明为奖学金并三次获得国家励志奖学金,相关研究成果发表于RoboticsandAutonomousSystems、AutonomousRobot、CCC等期刊和会议。个人博客地址:http://cnblogs.com/gaoxiang12。
SLAM问题
SLAM,全称叫做SimultaneousLocalizationandMapping,中文叫做同时定位与建图。大体说来,一个SLAM系统分为四个模块(除去传感器数据读取),如下图所示:
啊不行,这么讲下去,这篇文章肯定没有人读,所以我们换一个讲法,引入机器人“小萝卜”同学。
小萝卜的故事
从前,有一个机器人叫“小萝卜”。它长着一双乌黑发亮的大眼睛,叫做Kinect。有一天,它被邪恶的科学家关进了一间空屋子,里面放满了杂七杂八的东西。
小萝卜感到很害怕,因为这个地方他从来没来过,一点儿也不了解。让他感到害怕的主要是三个问题:
自己在哪里?
这是什么地方?
怎么离开这个地方?
在SLAM理论中,第一个问题称为定位(Localization),第二个称为建图(Mapping),第三个则是随后的路径规划。我们希望借助Kinect工具,帮小萝卜解决这个难题。各位同学有什么思路呢?
Kinect数据
要打败敌人,首先要了解你的武器。不错,我们先介绍一下Kinect。众所周知这是一款深度相机,你或许还听说过别的牌子,但Kinect的价格便宜,测量范围在3m-12m之间,精度约3cm,较适合于小萝卜这样的室内机器人。它采到的图像是这个样子的(从左往右依次为rgb图,深度图与点云图):
Kinect的一大优势在于能比较廉价地获得每个像素的深度值,不管是从时间上还是从经济上来说。OK,有了这些信息,小萝卜事实上可以知道它采集到的图片中,每一个点的3d位置。只要我们事先标定了Kinect,或者采用出厂的标定值。
我们把坐标系设成这个样子,这也是openCV中采用的默认坐标系。
o'-uv是图片坐标系,o-xyz是Kinect的坐标系。假设图片中的点为(u,v),对应的三维点位置在(x,y,z),那么它们之间的转换关系是这样的:
或者更简单的:
后一个公式给出了计算三维点的方法。先从深度图中读取深度数据(Kinect给的是16位无符号整数),除掉z方向的缩放因子,这样你就把一个整数变到了以米为单位的数据。然后,x,y用上面的公式算出。一点都不难,就是一个中心点位置和一个焦距而已。f代表焦距,c代表中心。如果你没有自己标定你的Kinect,也可以采用默认的值:s=5000,cx=320,cy=240,fx=fy=525。实际值会有一点偏差,但不会太大。
定位问题
知道了Kinect中每个点的位置后,接下来我们要做的,就是根据两帧图像间的差别计算小萝卜的位移。比如下面两张图,后一张是在前一张之后1秒采集到的:
你肯定可以看出,小萝卜往右转过了一定的角度。但究竟转过多少度呢?这就要靠计算机来求解了。这个问题称为相机相对姿态估计,经典的算法是ICP(IterativeClosestPoint,迭代最近点)。这个算法要求知道这两个图像间的一组匹配点,说的通俗点,就是左边图像哪些点和右边是一样的。你当然看见那块黑白相间的板子同时出现在两张图像中。在小萝卜看来,这里牵涉到两个简单的问题:特征点的提取和匹配。
如果你熟悉计算机视觉,那你应该听说过SIFT,SURF之类的特征。不错,要解决定位问题,首先要得到两张图像的一个匹配。匹配的基础是图像的特征,下图就是SIFT提取的关键点与匹配结果:
对实现代码感兴趣的同学请Google“opencv匹配”即可,在openCV的教程上也有很明白的例子。上面的例子可以看出,我们找到了一些匹配,但其中有些是对的(基本平等的匹配线),有些是错的。这是由于图像中存在周期性出现的纹理(黑白块),所以容易搞错。但这并不是问题,在接下来的处理中我们会将这些影响消去。
得到了一组匹配点后,我们就可以计算两个图像间的转换关系,也叫PnP问题。它的模型是这样的:
R为相机的姿态,C为相机的标定矩阵。R是不断运动的,而C则是随着相机做死的。ICP的模型稍有不同,但原理上也是计算相机的姿态矩阵。原则上,只要有四组匹配点,就可以算这个矩阵。你可以调用openCV的SolvePnPRANSAC函数或者PCL的ICP算法来求解。openCV提供的算法是RANSAC(RandomSampleConsensus,随机采样一致性)架构,可以剔除错误匹配。所以代码实际运行时,可以很好地找到匹配点。以下是一个结果的示例。
上面两张图转过了16.63度,位移几乎没有。
有同学会说,那只要不断匹配下去,定位问题不就解决了吗?表面上看来,的确是这样的,只要我们引入一个关键帧的结构(发现位移超过一个固定值时,定义成一个关键帧)。然后,把新的图像与关键帧比较就行了。至于建图,就是把这些关键帧的点云拼起来,看着还有模有样,煞有介事的:
然而,如果事情真这么简单,SLAM理论就不用那么多人研究三十多年了(它是从上世纪90年代开始研究的)(上面讲的那些东西简直随便哪里找个小硕士就能做出来……)。那么,问题难在什么地方呢?
SLAM端优化理论
最麻烦的问题,就是“噪声”。这种渐近式的匹配方式,和那些惯性测量设备一样,存在着累积噪声。因为我们在不断地更新关键帧,把新图像与最近的关键帧比较,从而获得机器人的位移信息。但是你要想到,如果有一个关键帧出现了偏移,那么剩下的位移估计都会多出一个误差。这个误差还会累积,因为后面的估计都基于前面的机器人位置……哇!这后果简直不堪设想啊(例如,你的机器人往右转了30度,再往左转了30度回到原来的位置。然而由于误差,你算成了向右转29度,再向左转31度,这样你构建的地图中,会出现初始位置的两个“重影”)。我们能不能想办法消除这个该死的误差呢?
朋友们,这才是SLAM的研究,前面的可以说是“图像前端”的处理方法。我们的解决思路是:如果你和最近的关键帧相比,会导致累计误差。那么,我们最好是和更前面的关键帧相比,而且多比较几个帧,不要只比较一次。
我们用数学来描述这个问题。设:
不要怕,只有借助数学才能把这个问题讲清楚。上面的公式中,xp是机器人小萝卜的位置,我们假定由n个帧组成。xL则是路标,在我们的图像处理过程中就是指SIFT提出来的关键点。如果你做2DSLAM,那么机器人位置就是x,y加一个转角theta。如果是3DSLAM,就是x,y,z加一个四元数姿态(或者rpy姿态)。这个过程叫做参数化(Parameterization)。
不管你用哪种参数,后面两个方程你都需要知道。前一个叫运动方程,描述机器人怎样运动。u是机器人的输入,w是噪声。这个方程最简单的形式,就是你能通过什么方式(码盘等)获得两帧间的位移差,那么这个方程就直接是上一帧与u相加即得。另外,你也可以完全不用惯性测量设备,这样我们就只依靠图像设备来估计,这也是可以的。
后一个方程叫观测方程,描述那些路标是怎么来的。你在第i帧看到了第j个路标,产生了一个测量值,就是图像中的横纵坐标。最后一项是噪声。偷偷告诉你,这个方程形式上和上一页的那个方程是一模一样的。
在求解SLAM问题前,我们要看到,我们拥有的数据是什么?在上面的模型里,我们知道的是运动信息u以及观测z。用示意图表示出来是这样的:
我们要求解的,就是根据这些u和z,确定所有的xp和xL。这就是SLAM问题的理论。从SLAM诞生开始科学家们就一直在解决这个问题。最初,我们用Kalman滤波器,所以上面的模型(运动方程和观测方程)被建成这个样子。直到21世纪初,卡尔曼滤波器仍在SLAM系统占据最主要的地位,Davison经典的单目SLAM就是用EKF做的。但是后来,出现了基于图优化的SLAM方法,渐渐有取而代之的地位[1]。我们在这里不介绍卡尔曼滤波器,有兴趣的同学可以在wiki上找卡尔曼滤波器,另有一篇中文的《卡尔曼滤波器介绍》也很棒。由于滤波器方法存储n个路标要消耗n平方的空间,在计算量上有点对不住大家。尽管08年有人提出分治法的滤波器能把复杂度弄到O(n)[2],但实现手段比较复杂。我们要介绍那种新兴的方法:Graph-basedSLAM。
图优化方法把SLAM问题做成了一个优化问题。学过运筹学的同学应该明白,优化问题对我们有多么重要。我们不是要求解机器人的位置和路标位置吗?我们可以先做一个猜测,猜想它们大概在什么地方。这其实是不难的。然后呢,将猜测值与运动模型/观测模型给出的值相比较,可以算出误差:
通俗一点地讲,例如,我猜机器人第一帧在(0,0,0),第二帧在(0,0,1)。但是u1告诉我机器人往z方向(前方)走了0.9米,那么运动方程就出现了0.1m的误差。同时,第一帧中机器人发现了路标1,它在该机器人图像的正中间;第二帧却发现它在中间偏右的位置。这时我们猜测机器人只是往前走,也是存在误差的。至于这个误差是多少,可以根据观测方程算出来。
我们得到了一堆误差,把这些误差平方后加起来(因为单纯的误差有正有负,然而平方误差可以改成其他的范数,只是平方更常用),就得到了平方误差和。我们把这个和记作phi,就是我们优化问题的目标函数。而优化变量就是那些个xp,xL。
改变优化变量,误差平方和(目标函数)就会相应地变大或变小,我们可以用数值方法求它们的梯度和二阶梯度矩阵,然后用梯度下降法求最优值。这些东西学过优化的同学都懂的。
注意到,一次机器人SLAM过程中,往往会有成千上万帧。而每一帧我们都有几百个关键点,一乘就是几百万个优化变量。这个规模的优化问题放到小萝卜的机载小破本上可解吗?是的,过去的同学都以为,Graph-basedSLAM是无法计算的。但就在21世纪06,07年后,有些同学发现了,这个问题规模没有想象的那么大。上面的J和H两个矩阵是“稀疏矩阵”,于是呢,我们可以用稀疏代数的方法来解这个问题。“稀疏”的原因,在于每一个路标,往往不可能出现在所有运动过程中,通常只出现在一小部分图像里。正是这个稀疏性,使得优化思路成为了现实。
优化方法利用了所有可以用到的信息(称为full-SLAM,globalSLAM),其精确度要比我们一开始讲的帧间匹配高很多。当然计算量也要高一些。
由于优化的稀疏性,人们喜欢用“图”来表达这个问题。所谓图,就是由节点和边组成的东西。我写成G={V,E},大家就明白了。V是优化变量节点,E表示运动/观测方程的约束。什么,更糊涂了吗?那我就上一张图,来自[3]。
图有点模糊,而且数学符号和我用的不太一样,我用它来给大家一个图优化的直观形象。上图中,p是机器人位置,l是路标,z是观测,t是位移。其中呢,p,l是优化变量,而z,t是优化的约束。看起来是不是像一些弹簧连接了一些质点呢?因为每个路标不可能出现在每一帧中,所以这个图是蛮稀疏的。不过,“图”优化只是优化问题的一个表达形式,并不影响优化的含义。实际解起来时还是要用数值法找梯度的。这种思路在计算机视觉里,也叫做BundleAdjustment。它的具体方法请参见一篇经典文章[4]。
不过,BA的实现方法太复杂,不太建议同学们拿C来写。好在2010年的ICRA上,其他的同学们提供了一个通用的开发包:g2o[5]。它是有图优化通用求解器,很好用,我改天再详细介绍这个软件包。总之,我们只要把观测和运动信息丢到求解器里就行。这个优化器会为我们求出机器人的轨迹和路标位置。如下图,红点是路标,蓝色箭头是机器人的位置和转角(2DSLAM)。细心的同学会发现它往右偏转了一些。
闭环检测
上面提到,仅用帧间匹配最大的问题在于误差累积,图优化的方法可以有效地减少累计误差。然而,如果把所有测量都丢进g2o,计算量还是有点儿大的。根据我自己测试,约10000多条边,g2o跑起来就有些吃力了。这样,就有同学说,能把这个图构造地简洁一些吗?我们用不着所有的信息,只需要把有用的拿出来就行了。
事实上,小萝卜在探索房间时,经常会左转一下,右转一下。如果在某个时刻他回到了以前去过的地方,我们就直接与那时候采集的关键帧做比较,可以吗?我们说,可以,而且那是最好的方法。这个问题叫做闭环检测。
闭环检测是说,新来一张图像时,如何判断它以前是否在图像序列中出现过?有两种思路:一是根据我们估计的机器人位置,看是否与以前某个位置邻近;二是根据图像的外观,看它是否和以前关键帧相似。目前主流方法是后一种,因为很多科学家认为前一种依靠有噪声的位置来减少位置的噪声,有点循环论证的意思。后一种方法呢,本质上是个模式识别问题(非监督聚类,分类),常用的是Bag-of-Words(BOW)。但是BOW需要事先对字典进行训练,因此SLAM研究者仍在探讨有没有更合适的方法。
在KinectSLAM经典大作中[6],作者采用了比较简单的闭环方法:在前面n个关键帧中随机采k个,与当前帧两两匹配。匹配上后认为出现闭环。这个真是相当的简单实用,效率也过得去。
高效的闭环检测是SLAM精确求解的基础。研究者也在尝试利用深度学习技术提高闭环检测的精度,例如本文作者发表在AutonomousRobot期刊上的论文UnsupervisedLearningtoDetectLoopsUsingDeepNeuralNetworksforVisualSLAMSystem采用了无监督的深度自动编码机从原始输入图像中学习紧凑的图像表示,相比于传统的BagofWord方法提高了闭环检测的鲁棒性。方法流程图如下[7]:
小结
本文我们介绍了SLAM的基本概念,重点介绍了图优化解决SLAM问题的思路。本文作者编写了一个基于RGB-D相机的SLAM程序,它是一个Linux下基于cmake的工程,github地址是:https://github.com/gaoxiang12/rgbd-slam-tutorial-gx。
参考文献
[1]VisualSLAM:Whyfilter?Strasdatet.al.,ImageandVisionComputing,2012.
[2]DivideandConquer:EKFSLAMinO(n),PazLinaMetal.,IEEETransactiononRobotics,2008
[3]Relativebundleadjustment,Sibley,Gabe,2009
[4]Bundleadjustment-aModernSynthesis.TriggsBet.el.,Springer,2000
[5]g2o:AGeneralFrameworkforGraphOptimization,KummerleRainer,et.al.,ICRA,2011
[6]3-DMappingwithanRGB-DCamera,IEEETransactiononRobotics,Endresetal.,2014
[7]XiangGao,TaoZhang,UnsupervisedLearningtoDetectLoopsUsingDeepNeuralNetworksforVisualSLAMSystem,AutonomousRobot,2015.
如何学习数据分析
优秀的数据分析师并不能速成,但是零经验也有零经验的捷径。
市面上有《七周七数据库》,《七周七编程语言》。今天我们就《七周七学习成为数据分析师》,没错,七周。
第一周:Excel学习掌握
如果Excel玩的顺溜,可以略过这一周。但很多人并不会vlookup,所以有必要讲下。
了解sum,count,sumif,countif,find,if,left/right,时间转换等。excel的各类函数很多,完全不需要学全。重要的是学会搜索。我学函数是即用即查,将遇到的问题在网上搜索得到所需函数。
重中之重是学会vlookup和数据透视表。这两个对后续的数据转换有帮助。
学会vlookup,SQL中的join,Python中的merge能很快掌握。
学会数据透视表,SQL中的group,Python中的groupby也是同理。
这两个搞定,基本10万条以内的数据统计没啥难度,也就速度慢了点。80%的办公室白领都能秒杀。
网上多找些习题做,Excel是熟能生巧。
养成一个好习惯,不要合并单元格,不要过于花哨。表格按照原始数据、加工数据,图表的类型管理。
附加学习:
1、了解中文编码utf-8,ascii的含义和区别
2、了解单元格格式,帮助你了解后期的timestamp,date,string,int,bigint,char,factor等各类格式。
3、如果时间还有剩余,可以看《大数据时代》,培养职业兴趣。
第二周:数据可视化
数据分析界有一句经典名言,字不如表,表不如图。别说平常人,数据分析师自己看数据也头大。这时就得靠数据可视化的神奇魔力了。
以上就是所谓的可视化。排除掉数据挖掘这类高级分析,不少数据分析师的平常工作之一就是监控数据观察数据。
另外数据分析师是需要兜售自己的观点和结论的。兜售的最好方式就是做出观点清晰数据详实的PPT给老板看。如果没人认同分析结果,那么分析也不会被改进和优化,分析师的价值在哪里?工资也就涨不了对吧。
抽空花一段时间学习可视化的基础,如《数据之美》
另外你还需要了解BI的概念。知名的BI产品有Tableau,PowerBI,还有国产的FineBI等。都有体验版和免费版能下载,网上找一点数据就能体验可视化的魅力。比Excel的图表高级多了。
BI需要了解仪表盘Dashboard的概念,知道维度的联动和钻取,知道绝大多数图表适用的场景和怎么绘制。比如以下FineBI制作的dashboard。
第三周:分析思维的训练
这周我们轻松一下,学学理论知识。
分析思维首推大名鼎鼎的《金字塔原理》,帮助数据分析师结构化思维。如果金字塔原理让你醍醐灌顶,那么就可以学思维导图,下载一个XMind中文网站,或者在线用百度脑图。
再了解SMART、5W2H、SWOT、4P理论、六顶思考帽等框架。这些框架都是大巧不工的经典。你要快速成为数据分析师,思考方式也得跟着改变。网上搜咨询公司的面试题,搜CaseBook。
题目用新学的思维导图做,先套那些经典框架,做一遍,然后去看答案对比。因为要锻炼数据分析能力。所以得结合数据导向的思维。
这里送三条金句:
一个业务没有指标,则不能增长和分析
好的指标应该是比率或比例
好的分析应该对比或关联。
举一个例子:我告诉你一家超市今天有1000人的客流量,你会怎么分析?
这1000人的数量,和附件其他超市比是多是少?(对比)
这1000人的数量比昨天多还是少?(对比)
1000人有多少产生了实际购买?(转化比例)
路过超市,超市外的人流是多少?(转化比例)
这是一个快速搭建分析框架的方法。如果只看1000人,是看不出分析不出任何结果。
第四周:数据库学习
Excel对十万条以内的数据处理起来一点不虚,但是资深的数据分析师还是笑摸狗头,TooYoungTooSample,爷搞得都是百万数据。要百万数据,就得上数据库。
SQL是数据分析师的核心技能之一。有些公司并不给数据库权限,需要分析师写邮件提需求,这非常不好。数据分析师经常有各类假设需要验证,很多时候写十几行SQL就能得到的答案,还得麻烦其他部门导出数据。
SQL学习不需要买书,W3C学习就行了,SQL教程。大多数互联网公司都是MySQL,我也建议学,性价比最高。
作为数据分析师,只要懂Select相关,增删改、约束、索引、数据库范式全部略过。你的公司心得多大才会给你写权限。
了解where,groupby,orderby,having,like,count,sum,min,max,distinct,if,join,leftjoin,limit,and和or的逻辑,时间转换函数等即可。
你看,和Excel的函数都差不多。如果时间充裕,则学习row_number,substr,convert,contact等。和Excel一样,学会搜索解决问题。不同引擎的函数也会有差异,例如Presto和phpMyAdmin。
期间你不需要考虑优化和写法丑陋,查询几秒和几分钟对数据分析师没区别,跑数据时喝杯咖啡呗,以后你跑个SVM都能去吃饭了。
网上搜索SQL相关的练习题,刷一遍就行。也能自己下载数据库管理工具,找些数据练习。我用的是SequelPro。
第五周:统计知识学习
统计学是数据分析的基础之一。
统计知识会要求我们以另一个角度看待数据。当你知道AB两组的差异用平均值看是多傻的事情,你的分析技巧也会显著提高。
这一周努力掌握描述性统计,包括均值、中位数、标准差、方差、概率、假设检验、显著性、总体和抽样等概念。详细的数学推导不用细看,谁让我们是速成呢,只要看到数据,知道不能怎么样,而是应该这样分析即可。
Excel中有一个分析工具库,简单强大。对列1的各名词做到了解。如果是多变量多样本,学会各种检验。
《统计数字会撒谎》休闲读物,有趣的案例可以让我们避免很多数据陷阱。
深入浅出统计学(豆瓣)还是经典的HeadFirst系列,适应它一贯的啰嗦吧。
多说一句,老板和非分析师不会有兴趣知道背后的统计学原理,通常要的是分析后的是与否,二元答案。不要告诉他们P值什么的,告诉他们活动有效果,或者没效果。
第六周:业务学习(用户行为、产品、运营)
这一周需要了解业务。对于数据分析师来说,业务的了解比数据方法论更重要。当然很遗憾,业务学习没有捷径。
我举一个数据沙龙上的例子,一家O2O配送公司发现在重庆地区,外卖员的送货效率低于其他城市,导致用户的好评率降低。总部的数据分析师建立了各个指标去分析原因,都没有找出来问题。后来在访谈中发觉,因为重庆是山城,路面高低落差比较夸张,很多外卖人员的小电瓶上不了坡…所以导致送货效率慢。
这个案例中,我们只知道送货员的送货水平距离,数据上根本不可能知道垂直距离这个指标。这就是数据的局限,也是只会看数据的分析师和接地气分析师的最大差异。
对于业务市场的了解是数据分析师工作经验上最大优势之一。既然是零经验面试,公司肯定也知道刚入门分析师不会有太多业务经验,不会以这个卡人。所以简单花一周了解行业的各指标。
《增长黑客》
数据驱动业务的典型,里面包含产品运营最经典的AAARR框架,部分非数据的营销案例,
《网站分析实战》
如果应聘的公司涉及Web产品,可以了解流量的概念。书中案例以GoogleAnalytics为主。其实现在是APP+Web的复合框架,比如朋友圈的传播活动肯定需要用到网页的指标去分析。
《精益数据分析》
互联网数据分析的入门书籍,归纳总结了几个常用的分析框架。比较遗憾的是案例都是欧美。
还有一个小建议,现在有不少第三方的数据应用,囊括了不少产品领域的数据分析和统计。自学党们即使没有生产环境的数据,也可以看一下应用Demo,有好处的。
除了业务知识,业务层面沟通也需要掌握。另外建议在面试前几天收集该行业的业务强化一下。
第七周:Python/R学习
终于到第七周,也是最痛苦的一周。这时应该学习编程技巧。是否具备编程能力,是初级数据分析和高级数据分析的风水岭。数据挖掘,爬虫,可视化报表都需要用到编程能力。掌握一门优秀的编程语言,可以让数据分析师事半功倍,升职加薪,迎娶白富美。
这里有两条支线,学习R语言或Python。速成只要学习一条,以后再补上另外一门。
R的优点是统计学家编写的,缺点也是统计学家编写。如果是各类统计函数的调用,绘图,分析的前验性论证,R无疑有优势。但是大数据量的处理力有不逮,学习曲线比较陡峭。Python则是万能的胶水语言,适用性强,可以将各类分析的过程脚本化。Pandas,sklearn等各包也已经追平R。
如果学习R,建议看《R语言实战》,照着书本打一遍代码,一星期绰绰有余。另外还有一本《统计学》,偏知识理论,可以复习前面的统计学知识。
R学习和熟悉各种包。知道描述性统计的函数。掌握DataFrame。如果时间有余。可以再去学习ggplot2。
Python拥有很多分支,我们专注数据分析这块,入门可以学习《深入浅出Python》。
需要学会条件判断,字典,切片,循环,迭代,自定义函数等。知道数据领域最经典的包Pandas+Numpy。
在速成后的很长一段时间,我们都要做调包侠。
这两门语言最好安装IDE,R语言我建议用RStudio,Python我建议用Anaconda。都是数据分析的利器。
Mac自带Python2.7,但现在Python3已经比几年前成熟,而且没有编码问题。各类教程也足够多,不要抱成守旧了。Win的电脑,安装Python会有环境变量的问题,是个大坑(R的中文编码也是天坑)。
到这里,刚刚好是七周。如果还需要第八周+,则是把上面的巩固和融会贯通,毕竟速成是以转岗或拿offer为目的。有机会,我会专门写文章讲解每一周的具体知识,并且用爬虫爬一些数据做练习和案例。
为什么现在还有一些人相信地球是平的
可能我们无法理解为什么有人还认为地球是平的,我们只能去认为,这也是一种所谓的“信仰”,一旦一个人的“信仰”形成了,那么去改变它就是相当困难了。
其实我是真的很好奇那群人,因为就感觉像是明明面前摆了两个香蕉,但是偏偏有好多人认为它们看到了一个香蕉另一个是苹果,我是无法理解他们为何会这么想
下面就稍微说说,那群地平说的人,是怎么自圆其说的:
①地球是个扁的,和摊鸡蛋差不多,我们的世界都是在其中的一个面上,中心是北极极点(质心也在),然地球的边就是南极洲,我们跨越不过去,因为被一堵墙封死了。所有的日月星辰都在地球周围绕。
②那么我们的重力加速度是哪里来的呢?是因为地球在宇宙中,是往上加速运动的,这个加速度就是现在的重力加速度。。。
③为什么教材里都告诉我们地球是圆的呢?因为那是在骗我们。。。无语中
上面基本上就是地平说的狂热追随者的理由,大家怎么看吧?我是没话说了。。。
关于云图计划wiki到此分享完毕,希望能帮助到您。


还没有评论,来说两句吧...