问题：﻿数据分析师的前景怎么样? 各位，你们觉得数据分析师可以长期发展下去吗？
话题：﻿互联网、数据挖掘、数据分析、数据分析师、就业方向
回答：﻿MSofBusinessAnalytics毕业，DataScience方向，专业翻译成中文，大概是商业智能与大数据分析。现接了国内大厂offer，打算回国工作，title是数据分析师，方向是算法建模与数据挖掘。根据我在学校受到的训练，及几次工业界实习和项目经历，对数据分析的理解是，数据分析是跨了统计、计算机和某一专业领域（对我来说是business，也可以称之为业务）的学科。题主问的是数据分析师的前景，我只能从个人的角度去猜测，如果你真的具备一个世界级大厂数据分析师该具备的能力（而不是打着数据分析师名号干的只是数据相关但很基础很机械的低门槛重复工作），职业发展的下限和上限是非常高的，而且在一定阶段可以根据自己擅长的方向，往数据科学家、技术项目管理、战略专家……各个进阶去发展。数据分析知识范围：1.统计学包括基础统计、多元统计及统计学习（statisticallearning），其中统计学习基本等同于机器学习（machinelearning）及其分支深度学习（deeplearning）数据挖掘需要的统计知识非常广，而针对不同项目，需要了解及深入的程度也不同。最基础的为Hypothesistest，这大概是所有学习统计学的入门知识，实际项目中的体现，大概会在一开始的数据EDA和中间阶段的假设设计和判断中应用到。多元统计，顾名思义，此时研究的不再是单个因素，而是多因素共同作用时发生的事情。可以研究不同因子间的相互影响，可以研究多因子综合对最终目标产生的影响……根据目标不同，运用的方式是不一样的。而统计学习，即目前被炒得很热的机器学习，说得简单点，就是通过将历史数据拟合进不同算法，判断新的数据输入时会产生什么结果（classification），或是按照一定规律将相似数据放到一块（clustering），或是完成其他更复杂的任务。目前来说，分类和聚合是用的比较多的，其他的任务目标，譬如推荐系统等等，都有独特的算法，需要的知识除了统计学，还有数学和计算机等。好像还是不够直白……好吧，举个栗子，分类任务类似一个小朋友刚开始学英语，老师教ta单词的读音，当小朋友学了10000个or更多单词的读音后，可能在看到一个新的单词后，能够根据自己归纳总结出的单词发音规律，“猜”出一个从没见过的新单词怎么读。机器学习的classification实现的事情差不多，当我们把手头10000个单词作为训练集，10000个单词的读音作为训练目标，拟合进机器中一个选定的算法，这个过程相当于小朋友在学习的过程。算法的优劣之分，大概可以理解为这个小朋友的归纳总结发音规律的能力，而“聪明伶俐”的算法，在训练完后便能更准确判断一个新的单词该怎么读。其他还有各种各样有趣的事情是机器学习可以做的，譬如说无人车、图像识别、自然语言处理等等，都需要具备机器学习领域的知识。而未来，一个合格的数据分析师也必然要具备挖掘文字、音频、图像信息，甚至挖掘视频信息的能力。这也意味着，数据分析师还要具备深度学习的知识，了解神经网络（NeuralNetwork）及其常用的各种变形如卷积神经网络（CNN），递归神经网络（RNN）……才能更好挖掘文字和图像这类数据。综上，我的理解中，机器学习是数据分析师必备的知识体系，因为这是数据挖掘的核心，也是人工智能支持商业决策的最关键的点。2.计算机知识包括但不限于数据库、SQL、Python、R、Java、JavaScript、CSS、HTML、NaturalLanguageProcessing、ComputerVision……和CS专业出身的开发工程师不一样的是，编程对数据分析来说是实现目的的工具，而不是工作本身。完整的数据分析项目中我们有许多事情要做，譬如：a.收集数据此时如果是内部数据可以用SQL取数，如果是分布式储存的大数据要用Hadoop和Spark来进行分布式地选取清理，如果是外部数据需要用Python开发爬虫bot或接入api……光是收集数据就要用到各种不同的计算机语言和知识了。若是像某些答主所言，数据分析师只懂得SQL取数，大概在不远的将来会很容易被淘汰。因为SQL数据库无法支持更大量级的数据流量，无法支持streaming的实时的数据，无法支持unstructured的数据……太多的限制意味着在分析用数据越来越大量，越来越复杂多样时，SQL渐渐不再合适。处理中等量级structured的数据，和Excel表格对比，SQL胜出；处理极大量数据，和SQL对比，Spark胜……日后会有更新的方法对应不同的情况，而SQL只是方法的一种，适合应用于经过业界检验的一小部分场景，但也有不适用的时候。没有不断update精神的数据分析师，也许很快被市场淘汰。b.数据清洗和处理数据是数据分析的原材料，虽然数据中带了个“数”字，但除了数字外，类别也是数据，文本譬如用户评论、歌词、简历、新闻也是数据，图片、视频……也是数据。后几类数据处理门槛较高，但未来在数据中的分量会逐渐加重，只懂得处理数字和分类，不懂处理文字、图片和视频这类数据，自然就缺了一些竞争力。-数字（numericaldata）和类别（categoricaldata）一般处理数字和类别数据时，量级少的话Excel也是能用用的，Excel的某些分析功能也是相当强大，但缺陷也很明显，不适合工业级的数据分析。在工业界，一份数据集，百万千万行起，几十几百个features，手动清理几小时都不一定洗得了一半。写代码只是写的时候累点，跑起来十几秒完成，代码写了这次，下次还能重复利用。所以这是很自然的选择题，随着数据量越来越大，用R或Python处理数据，生产效率会高上不少。个人更喜欢Python，不但有现成的pandas之类的数据处理library，之后在数据挖掘时现成的library也很多，省了不少自己从底层开发library的时间。R也不错，和Python类似。编程有个好处，那就是用过的脚本、function把代码存一存，下次差不多的数据改改接着用，多么环保省事，避免重复劳动。-文本（textualdata）当处理文本数据时，用Excel就相当艰辛了，不过也不是完全不能用。我有个教NLP的教授，怕我们不清楚原理，只会调包，所以一步步用Excel进行了自然语言处理全过程。但还是需要知道怎么用Excel算出tf-idf，没有自然语言处理的知识，也同样做不到。而且教授举例时只用了不到10个文本，多了Excel就挂了。对我这样的懒人来说，学的时候要懂原理，没毛病，做项目时还是Python加现成的NLTK、Spacy和Sklearn包以及一些自编的function最方便。-图片、音频和视频图片处理，是现在流行的图像识别的基础。图像识别，同计算机视觉，感知计算的图像感知……说的其实是差不多的东西，简单来说就是让计算机自己辨认图片。机器是不懂阅读图片的，我们在电脑里去打开一张图片的时候，只是将图片文件解码显示在屏幕上而已，电脑是不知道这张图片的含义的。要让电脑识别图片，首先要将图片中以像素为单位，转化为二进制数据或matrix，这个过程，特别是在图片训练集数百万张以上的时候，没些基本的计算机知识是难以完成的。视频数据可以看作是许多许多张图片数据组成的，处理的原理也类似，但对电脑的GPU运算速率要求会更高。而且视频通常会带有音频，也要先将这些音频转化为文本数据，或如果是音乐这种音符本身蕴含信息的形式，也要将音符转化成二进制数据或matrix，再具体些，音频中人物对话的语气，所处背景环境……都有可挖掘之处。挖掘文本、图片、音频和视频中的信息，也许是未来数据分析师的一个重要方向。因为随着手机和互联网的普及，越来越多的数据以文字、图片和视频方式产生储存，更多的有价值的信息潜藏其中，想要获取这些价值，就要求数据分析师具备更多的计算机知识了。c.算法建模针对不同的问题和目标，数据分析师会用到的算法太多了，针对优化运筹问题，我们用linear或non-linearprogramming的算法；针对分类问题，我们用NaiveBayes,LogisticRegression,DecisionTree,RandomForest,SupportVectorMachine,NeuralNetwork……；针对聚类问题，我们用K-meanClustering,HierarchicalClustering……；针对市场营销，我们用Exponentialsmoothing,Winter去预测销量，用ConjointAnalysis去研究顾客偏好，用Regression预测供求关系……；针对推荐系统，我们有Co-occurrence,CollaborativeFiltering,MatrixFactorization,甚至用神经网络去构建推荐系统；针对图像识别，我们用CNN，不同形状层次千变万化……用老套一点的话来说，只有最适合的算法，没有最好的算法。这些算法很多基于数学，作为本科商科出身的数据分析师，至少我个人还没有改进底层算法的能力，基础数学能力上差得太远了，改进算法至少至少也要本硕级别的数学专业素养，Phd级别的数学是业界正常水平。不过至少我们可以应用这些算法，并优化参数来让算法表现得更好，计算机能力就体现在这里。怎么将处理完的数据导入算法？怎么用脚本实现算法拟合和预测？怎样重复训练，输出结论，保存预训练模型？都需要懂得一些Python、R或Java的编程知识，并阅读项目相关的开发者文档。当然，实在是不想写代码的话，可以用SAS，SAS的功能虽然不够灵活，但绝对覆盖了从基础统计到机器学习和自然语言处理的全功能。虽然SAS也有些代码工作，但已经很简单很简单了，跟着教程sample，改改变量名就行……不过首先，你的公司要有钱买SAS，SAS可是很贵的，当然，贵也有贵的道理，打个电话就有远程实时教学，这个售后做的还是可以的，就是你得先找到这个售后电话号码，藏的可深了。d.数据可视化数据结论，或者说数据产品是数据分析师的最终产出，什么样的数据产品是能吸引人注意又好变现的？自然是颜值高的。分析完输出一些丑的自己都不想看的报表和结论，那是不可能的，一定要够美够炸才行。说笑了……如果结论的预计观众本身是搞技术的或是搞数据工作的，输出个表格我猜应该就能满足他们？但如果真的想产出能够令人surprise的发布会级别的数据产品，还要实现各种互动功能，JavaScript、HTML和CSS三剑客，缺一不可，其中JS的D3.js包实乃数据可视化之开挂神器。当然，像我这样为了赶project，自学前端的时间精力投入实在是太大了，而且对于大厂而言，分工很细，数据分析师一般不用这么拼吧？肯定会有专门的开发工程师负责开发可视化的数据产品，肯定会有的，最多是等需求排期会比较久……不过技多不压身，反正我是学了，大家随意。那有没有既输出优雅美观的数据可视化，学习曲线又比较舒适的工具呢？这就要介绍一下Tableau了，那些和我一节课但没有自学前端的小伙伴，大多机智地用了Tableau，5分钟出数据可视化，了解一下？然而用几次Tableau就会发现Tableau结果好看归好看，但功能太死板了，虽然也有数学函数的功能，甚至优雅些可以配合python开发，可总归没有自己开发灵活。除了以上提到的传统前端JavaScript、HTML、CSS和无脑开挂Tableau外，另外推荐个介乎于两者之间的好用工具plotly.dash。这是个基于Python的包，初学者仅需要Python基础编程知识就能开始使用，前端知识非必需。简单来说，这个包能够让开发者在Python的环境中开发网页，在网页上添加各种元素的过程，均能用Python代码实现，且能够将算法模型或其他python应用都嵌入其中。而更高阶的用法，则是把外部CSS主题，JavaScript的包也都引入使用。有兴趣的自己搜搜看吧，dash官网给的gallery里的例子，已经很具体了。3.某一专业领域（domain）的理解和经验积累某一专业领域涵盖的范围非常广，就好像你去快餐店买套餐，汉堡（统计）+薯条（计算机）外喝点什么这个可以根据自己的偏好决定，不一定人人都得喝可乐。好比我个人的专业领域是商业，更具体点可以是商业策略和市场营销……但不固定，大的范围不会超过这其中，至少之后的3-5年时间，我的经验也会围绕这方面进行积累。同读硕士的小伙伴，横跨的专业领域就我见到的，包括金融、制药、生物、政治、历史、经济、新闻传媒、物流、时尚、旅游、环保……这些专业的领域积累读个Analytics的Master甚至MBA都起不到太大作用，更多的经验积累是在实际的项目和工作中完成的。对一个领域的理解和深耕该领域的经验，体现在数据分析上时，大概就是你能更好地发现并定义实际问题，在数据分析后，也能更好定位符合行业发展规律的方式去解决这个问题。这一点，我这个应届生就不嫌丑了，我在真实商业环境中的经历，加起来都不到2年，也都是实习经历。在国内的两个实习基本以打杂为主，可能是国内商科实习通病？我了解的不多，不好评论。后来在外面的几个实习才有了那么些积累businesssense的意思，但是和工作多年的职业经理人肯定不能比，这点自知之明还是有的。数据分析师我的理解中是个很大的概念，并不等同于商业分析师，商业只是无数值得关注的领域之一。如果以为数据分析只是公司级别里某一商业业务的辅助，你把那些弄金融、生物基因、宏观经济、国际关系……的数据分析师放在眼里了吗？数据分析是工具，这个观点我不反对，统计也好，数学也好，计算机技术也好……都是我们手上的武器，有的数据分析师用的是航母，有的数据分析师手上也可能只有一把菜刀，但无论什么样的武器最终目的都是为了更了解某一领域，并用从数据中挖掘出的insight去解决这一领域中的迫切需要的问题。而无论是航母还是菜刀，还是航母+菜刀，whatever，能解决得了实际问题的，才是适合的武器。以上。未免有人说我在梦中拿到的offer，上个图为证ps:想了想还是匿了，名字和背景太明显了，今年录的人太少，被认识的人看到怪不好意思的。