{eval=Array;=+count(Array);}
一名合格的数据分析师应该掌握
数据清洗
数据分析+可视化欢迎关注我的个人微信公众号:『运筹OR帷幄』阅读完整推文:
【数据分析】用大数据带你了解全球电影行业—华语篇福利:
在我的数据分析讨论群里经常有人提到转行数据分析师,但简历投出去总是石沉大海,没有面试,又或者接到面试不知道面试的侧重点在哪里,看过很多面经,有提到算法的,有提到业务分析,所以不知道如何下手准备,今天就来聊聊自己关于转行数据分析以及如何准备的一些拙见。
数据分析中有很多的分支,而每一个分支就就决定了一个工作岗位的方向,从而也就决定了面试考察的侧重点。
EXCEL : 各种计算函数,solver, 自带的data analysis工具, v-lookup, pivot table
统计学:e.g 假设检验,P值,R²,描述性统计,F检验,T检验
机器学习常用模型:(首先分清楚有监督学习和无监督学习)聚类,回归,决策树,随机森林,xgboost, SVM
python常用package:pandas,numpy,scikit-learn,statsmodel,matplotlib
SQL常用查询操作:SELECT, GROUP BY, ORDER BY, HAVING, WHERE, JOIN, 窗口函数
游戏数据分析师:从数据分析师中多带带把这个职位提出来是因为其具有一定的行业特殊性,这个职位需要对游戏特别感兴趣,从我面过的网易雷火游戏数据分析师岗位来看,考察重点在于SQL和游戏场景题
数据分析师:重点考察业务场景的分析能力,这里的业务场景包括数据变动的原因分析,衡量结果的指标设计,产品功能的评定及优化,因此需要多去了解一些产品方面的知识,培养自己的商业直觉和分析能力。数据分析师极少(几乎没有)有需要手撕代码的情况,至多会问几个SQL题但是也不会过于复杂。
数据产品经理:和数据分析师类似,但更强调产品思维。一个好的数据产品经理一定是一个有创造力,能够设身处地站在用户角度思考,并且沟通能力很强的人。数据产品经理的角色更像是一个翻译者或者是一个桥梁,前端连接的是用户,后端连接的是工程师和开发人员。一方面需要将前端的零散的、感性的需求转化为工程师需要的结构化,条理化的要求,另一方面,需要懂技术、理解技术,将工程相关的专业术语转化为产品优势,通俗易懂地传达给最终的用户。
这里推荐俞军先生的《产品方法论》,无论是数据分析师还是数据产品经理,这本书都同样适用。
数据挖掘工程师:属于工程类职位,需要刷题,通常会有笔试(机考),考察算法能力,面试中考察重点会放在机器学习的相关模型和算法上,通常也会出现手撕代码的情况。工程类职位考察的使用工具的能力,所以对于数据挖掘算法的理解以及代码能力很重要,考察业务知识方面比较少。
大数据工程师:同样属于工程类职位,在数据挖掘工程师的基础上,同时需要熟练掌握Hadoop, Hive, Spark等大数据平台的使用
人工智能工程师:是数据挖掘算法更深层次的版本,需要学习神经网络相关的内容,这也是以机器学习为基础,但层次更高的框架型内容。涉及到的具体平台包括Tensorflow, Pytorch这些,良好的代码能力当然也是需要的。
NLP(自然语言处理)工程师:主要处理对象为文本型数据,因此NLP这个板块又需要拉出来多带带学习。
算法工程师:对编程技术提出了更高的要求,甚至还涉及一些开发的内容。首先对机器学习的相关算法需要了解的比较透彻,同时,针对解决算法题的一些具体算法(e.g 二分法,递归,双指针,贪心算法,动态规划,宽度优先搜索等)需要会。该岗位在准备时需要刷题,笔试代码题和面试手撕代码题难度较之前都会有所提升,业务相关知识涉及的则更少。
不同背景的同学都在考虑往数据分析行业转变,但是转行并不意味着抛弃过去的所有背景和经历,那么针对自己的背景该如何选择?
(以下纯属个人意见,仅供参考,献给还处于迷茫期的同学,目标明确、兴趣鲜明者除外!)
有很多理工科的同学说道,投递数据分析师的岗位之后面试收到的很少,感觉自己业务分析能力不够,一碰到场景题就发怵,商业直觉感觉也不强,这很有可能是因为一开始的方向选择出了问题,或者换句话说,转行的跨度一下子太大。
前文提到,数据分析师这个职位,偏商业,偏sense,偏产品,因此在筛选的时候显然会看中相关的项目或者实际经验,而理工背景的同学所做项目和这些关联并不大,如果想强行转入这个领域,自然需要去学习的内容就更多,同时还涉及到一个思维的转变。理工科可能更多的是理性思维,一板一眼,接触惯了公式、数字、图形,而做商业类分析时需要一些感性思维,有时会强调自己站在用户的角度去思考问题。
但是理工背景的优势就在于,在学校中必然会接触高数和编程类课程(C语言,JAVA等),这就给学习统计,机器学习模型以及python编程能力的提高打下了很好的基础,学习起来会感觉顺利很多。同时,在以往做过的项目中,但凡涉及到数字的内容,就可以通过语言的包装,将其往数据分析相关的经验上靠,增加获得面试的概率。
因此理工科类同学如果想转行,可以试着优先考虑工程类职位,转换一下思路,可能就不会如此苦恼了。
国外一个做数据类项目比较流行的平台是Kaggle,国内据我了解的平台有天池,CSDN, 都可以去了解一下。
文科类背景出身的同学,通常最害怕的应该就是代码了,因为习惯了理论型的知识和感性思考,而编程是一门非常强调逻辑和练习的技能,所以强行的转换和跨越就会显得比较吃力,但是只要熬过了最痛苦的时光,入门后剩下的就是多练习就好了。
数据分析师或者商业分析师,是文科类背景同学转行比较好的选择,对编程和算法能力没有那么高的要求,更考验求职者的实际场景分析、用数据讲故事以及解读图表的能力。数据分析师的真正价值在于深入探索数据背后真正的逻辑所在,并且将这些逻辑为商业决策所用,提供数据支持,使每个决策更加客观和科学,也就是我们所说的data-driven。
同时,如果是商科出身的朋友,并且对于自己的算法能力及代码能力比较有自信的话,还可以有更多的选项,其中包括券商的量化分析师、数据研究员,各大银行的技术精英人才计划、数据部门,金融科技公司的模型工程师、信贷策略分析师、风控模型分析师,这些可以根据自己所掌握的商科类知识程度进行选择,有的可能会需要相关证书如CFA, FRM等。
同样的,简历方面需要将自己过往经历中任何和数字、数据沾边的内容进行重新包装,哪怕只是用EXCEL画了几张表,整理了一下数据,或者是将年报、财报中的数据进行了重新的统计,都尽量往数据分析的层面挂靠,从而更大机率通过简历的筛选。
转行本来已经是人生中做出的一次重要的选择,但在这个路口之后还有更多的分岔路口。在一筹莫展,努力却没有回应之时,不妨想想自己是不是把力气用错了地方,重新思考,扬长避短,选择适合自己的阳关大道再次出发,也许会发现,事情,并没有自己想的这么差~
文源:做一块顽强的石头
数据分析师不是多带带存在某一个团队的,他是为整个业务服务的,因此需要与多个团队来进行沟通,所以在成为优秀的数据分析师时,也需要超强的沟通协作能力。 硬技能:SQL能力、ETL能力、数据库基本操作。 数据挖掘、数据清洗能力。 大量的原始数据及脏数据会困扰数据分析,所以在做数据分析前,需要将数据进行清洗,汇总,建模形成可用的业务数据。 具有高级Excel数据分析能力。 因为大部分的原始数据是以Excel数据存储或者导出为Excel文件进行分析的。 所以大部分的数据分析会依附于Excel。 对于一个优秀的DA来说,基础的Excel操作并不能满足,需要的是高级Excel数据能力。 具备基本的机器学习知识。
数据分析师需要的技能大致有这些:Excel、SQL、统计学及SPSS、Python/R等。
建议从Excel开始,因为Excel是使用最多,也是最强大的数据分析工具,入门简单,因为大部分人都接触过Excel。
分库分表原则,MySQL分层,SQL优化题,然后数据量上来了,还要会Redis,分布式,然后还有其他NoSQL,统计学的内容。
1、什么是SQL?
SQL(结构化查询语言)是一种设计用于检索和操作数据的数据库。它属于美国国家标准协会(ANSI)的一种标准,可用于执行Select(选择)、Update(更新)、Delete(删除)和Insert(插入)等数据任务。
2、数据库中的表和字段是什么?
表是在具有列和行的模型中设计的数据集合。在表中,指定了列数称为字段,但未定义行数称为记录。
3、什么是数据库?
数据库是有序形式的一组信息,用于访问、存储和检索数据。
4、DBMS的类型是什么?
DBMS是一个控制数据维护和使用的程序,它被认为是管理数据的文件管理器。有四种类型的DBMS:
· 关系DBMS
· 分层DBMS
· 网络DBMS
· 面向对象的关系DBMS
最有用的DBMS是Relational DBMS。它为数据提供了一个关系运算符。
5、编写一些不同类型的SQL命令
SQL命令分为以下类型:
· DDL(数据定义语言) - 用于定义数据库的结构。
· DCL(数据控制语言) - 用于为用户提供权限。
· DML(数据操作语言) - 用于管理数据。
· DQL(数据查询语言) - 所有命令都在SQL中,用于检索DQL中的数据。
· TCL(事务控制语言) - 用于管理DML所做的更改。
6、SQL中的视图是什么?
它包含来自一个或多个表的行和列,可以定义为虚拟表。它消耗的内存较少。
句法:
CREATE VIEW view_name AS
SELECT column_name1, column_name2
FROM table_name
WHERE CONDITION;
7、什么是SQL中的Joins(连接)?
Join用于从相关的行和列中检索数据。它在两个或多个表之间工作,并且它从两个表返回至少一个匹配。
Joins类型是:
· Right Join (右连接)
· Left Join(左连接)
· Inner Join(内连接)
· Outer Join(外连接)
· Self-Join (自连接)
· Cross Join(交叉连接)
· Full Join(全连接)
8、SQL中的Query(查询)是什么?
数据库查询是数据库表中的数据请求。查询可以是选择查询或任何其他类型的查询。
9、什么是Subquery(子查询)以及什么是Types(类型)?
子查询是查询的一部分。外部查询已知主查询,内部查询识别子查询。始终首先执行子查询,并将结果传递给主查询。
10、什么是Autoincrement(自动增量)?
Autoincrement是一个关键字,用于在表中插入新记录时生成数字。
11、SQL中的Constraints(约束)是什么?
它可用于设置表中数据类型的限制。在创建或更新表语句时,可以使用约束。一些限制是:
· NOT NULL
· PRIMARY KEY
· FOREIGN KEY
· UNIQUE
· CHECK
· DEFAULT
12、SQL中有多少Key(键),它们如何工作?
SQL中有不同类型的键:
· SuperKey(超级密钥)——一个或多个密钥的集合被定义为超级密钥,它用于唯一地标识表中的记录。主键,唯一键和备用键是超级键的子集。
· PrimaryKey(主键)——它是表中的一个或多个字段的集合。它们不接受空值和重复值。并且表中只存在一个主键。
· ForeignKey(外键)——在一个表中定义主键并在另一个表中定义字段的键被标识为外键。
· UniqueKey(唯一键)——除了主键之外,表中还有更多键,它们只标识记录,但唯一的区别是它们只接受一个空值但不接受重复值。
· CandidateKey(候选密钥)——在任何情况下,如果需要,任何候选密钥都可以作为主键。
· CompoundKey(复合键)——此键是候选键和主键的组合。
· AlternateKey(备用密钥)——在任何情况下,如果需要,任何备用密钥都可以作为主键或候选键。
13、什么是Normalization(规范化)?
规范化是一种设计技术,它以减少数据依赖性的方式排列表,将表分成小模块并按关系链接。
14、什么是Denormalization(非规范化)?
非规范化是一种优化方法,我们将多余的数据增加到表中,并在规范化后应用。
15、什么是Stored Procedure(存储过程)?
存储过程是一组SQL语句,用作访问数据库的函数。为了减少网络流量并提高性能,可使用存储过程。
句法:
CREATE Procedure Procedure_Name
(
//Parameters
)
AS
BEGIN
SQL statements in stored procedures to update/retrieve records
END
16、什么是Index(索引)?
索引用于加速查询的性能。它可以更快地从表中检索数据。可以在一组列上创建索引。
17、Clustered(群集)和Non-Clustered Index(非群集)索引之间有什么区别?
聚集索引——有助于轻松检索数据,并且只有一个聚集索引与一个表一起分配。它会更改记录在数据库中的保存方式。
非聚集索引——与聚集索引相比,非聚集索引很慢。并且在非集群索引的情况下,该表可以具有多个索引,为表创建一个对象,该表是搜索后指向表的一个点。
18、什么是Trigger(触发器)?
触发器用于对表执行特定操作,例如INSERT、UPDATE或DELETE。它是一种存储过程。动作和事件是触发器的主要组成部分。执行Action时,事件响应该操作而出现。
19、数据库中的Properties(属性)是什么?
通常,这些属性称为ACID。它们在数据库事务中起作用。
Atomicity(原子性)——在连接两个或多个多带带数据的事务中,要么所有部分都已提交,要么都没有。
Consistency(一致性)——事务或者生成新的有效数据状态,或者如果发生任何失望,则在事务启动之前将所有数据返回到其状态。
Isolation(隔离性)——正在进行且尚未提交的事务必须继续与任何其他操作隔离。
Durability(持久性)——在此操作中,系统保存已提交的数据,每当事件失败和系统重新启动时,所有数据都可在其正确位置获得。
20、SQL中有多少Statements(语句)?
SQL语句分为几类:
· 数据定义语言语句
· 数据操作语言语句
· 交易控制声明
· 会话控制声明
· 系统控制声明
· 嵌入式SQL语句
21、什么是CLAUSE(字句)?
它被定义为通过为查询提供条件来设置结果集的限制。他们从整个记录中过滤掉一些行。
一些SQL的字句是WHERE和HAVING。
22、什么是Aggregate Functions(聚合函数)?
它是一个返回单个值的数学函数。
SQL中的聚合函数是:
· AVG()——返回平均值
· COUNT()——返回行数
· MAX()——返回最大值
· MIN()——返回最小值
· ROUND()——基于十进制规范,此函数对数字字段进行舍入
· SUM()——返回总和
23、什么是String Functions(字符串函数)?
为了操作字符串,我们使用字符串函数。其中一些是:
· LEN()——返回值的长度。
· LOWER()——将字符数据转换为小写。
· UPPER()——将字符数据转换为大写。
· SUBSTRING()——提取字符。
· LTRIM()——从头开始删除字符串的所有空格。
· RTRIM()——删除结尾处字符串的所有空格。
· CONCAT()——连接函数。
· REPLACE()——更新内容。
24、什么是Collation(排序规则)?
排序规则是一组规则,用于确定数据如何通过比较进行排序。例如使用一组规则存储的字符数据,这些规则定义了正确字符的序列以及类型、重音和区分大小写。
25、什么是Cursor(游标)?
在系统内存中执行SQL语句时,会创建一个临时工作区,称为“游标”。在select语句中,游标存储了信息。游标可以使用多行,但一次只能处理一行。这组行称为活动集。
游标有两种类型:
· ImplicitCursor(隐式游标)
· ExplicitCursor(显式游标)
26、什么是SQL Server?
SQLserver是Microsoft关系数据库管理系统(RDBMS)的一种类型或示例。它在IT环境下提供广泛的事务处理和商业智能。
27、SQL中有哪些Operators(运算符)?
运算符是一个保留字,主要用于SQL语句的WHERE子句中以进行操作。
· 算术运算
· 逻辑运算
· 比较运算符()
· 复合算子()
28、如何定义NULL值,Blank Space(空格)和ZERO(0)?
Null值是没有值的字段。它与0不同。假设有一个表,并且在表中有一个字段,可以在不添加值的情况下将记录插入字段,然后该字段将以NULL值保存。
空格是我们提供的值。
0只是一个数字。
29、什么是Data Warehouse(数据仓库)?
数据仓库被称为来自多个信息源的中央数据中心。这些数据可用于在线处理和挖掘。
30、UNIQUE KEY(唯一键)和PRIMARY KEY(主键)之间有什么区别?
在表中,应该只有一个主键,但在另一种情况下,唯一键可以为任意数量。
主键不允许NULL值,但唯一键允许NULL值。
基本来说,HR6分钟就可以确定要不要你了。
他会从你的仪态、神情,看出你是不是对这个岗位很有自信。所以一般面试,自信很重要,给人的第一印象就会很好。不要把面试当做一个屠宰场,面试进去就是提高的,就积极表现你的专业素养,作为一个职业人,还哆哆嗦嗦的像小学生中学生肯定不行。
项目。企业在问你项目的时候,他可能想知道你曾经做过的项目跟他的项目合不合,你有没有能力去胜任即将给你的工作。我们永远不可能做一模一样的项目,一辈子也不可能做一模一样的项目,因此你解决问题的能力非常强。这就要求去面试的时候,讲做过的项目的时候要说得非常清楚。如果你连你以前做过什么项目都讲不清,你让别人怎么相信你能做好这个工作。每一个细节你都要说得清楚,你为什么要做这个东西?当时为什么要这么决定等等,他想知道你解决问题的能力。
一般项目里会有三个大问题:碰到什么问题了?如何解决的?结果是什么?
从三个打问题又可以分化出:为什么做这个项目?怎么解决的?最后得到什么结果?或者HR会专注其中的某一个继续问,为什么用逻辑回归,而不是用线性回归?碰到了什么问题?如何去解决?最后的结果怎么样?有些老道的面试官想知道你的水平,因为他要想知道你到底对这个项目的了解程度,考验你应用能力和知识储备,他可能会问到逻辑回归里面的特征变量怎么选取?特征变量里碰到什么问题你怎么解决?
面试官问的一定是他熟悉的东西,不是你熟悉的东西。
所以我们一般在准备项目技术里的面试的时候一定要准备的非常详细,你们做过的每一个项目里面的细节都要知道,为什么要做这个?为什么要做那个?当时为什么这么考虑?为什么要那么干?
面试官特别怕什么人,“我是过来学习的”。千万不要这么说,人家是来招人来解决问题的,不是学校。
在“九道门聊数据”的“【分析思维】大数据分析师找工作时有哪些可以规避的误区”中有详细的讲解数据分析师的面试
针对数据科学工作准备简历要有:
项目经验
你在学校参加数据科学的项目,能够写入简历么?这些项目经历能够使你大放异彩么?
你的专业课程之外完成的数据科学项目,最能说明问题。因为如果你愿意花费自己的空闲时间完成一些项目,则能显示出一个人对数据科学的热情。更重要的是,课外项目的完成,在一定程度上能够显示出你的能力。
团队工作
如果一个人要在数据科学甚至人工智能领域工作,那么能够在一个团队中工作是非常重要的,无论是领导还是团队成员的角色。因此,展示团队项目以及所取得的结果是很重要的,最好是量化你在团队中发挥的作用。专业的面试官通常会要求你分享一个合作项目的经验,因为,他可以就此判断你是否能够在一个团队中工作。
数学和统计背景
面试官很青睐那些有数学和统计功底的面试者,这一项技能可以从面试者所做过的项目一探究竟。
有些项目和工具确实有助于推断数学背景。可以通过查看他们使用的机器学习模型,询问面试者如何实现它以及如何看待实现过程,来了解面试的数学水平。面试官通常会问,在这些项目中面临的挑战是什么,选择一个特定的解决方案的原因,并尽可能地解释背后涉及的数学原理。
编程
在可能的情况下,应展示所写的代码,特别是如果代码是为数据科学项目编写的。面试官非常欢迎你展示其他编程语言,不一定必须是数据科学中使用的通用语言(R,Python,Scala)。
确保编码有据可查的。有着详细有意义的注解,包括代码在做什么,为什么代码需要以这种方式编写等等。主要目的是帮助面试官理解面试者通过编写代码并从项目中获得见解。
相关:
从面试官的角度谈谈大数据面试
https://www.toutiao.com/i6615361565526852110/
大数据面试:程序员求职面试时怎么和HR沟通?
https://www.toutiao.com/i6574254425492161032/
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答