{eval=Array;=+count(Array);}
一名合格的數據分析師應該掌握
數據清洗
數據分析+可視化歡迎關注我的個人微信公眾號:『運籌OR帷幄』閱讀完整推文:
【數據分析】用大數據帶你了解全球電影行業—華語篇福利:
在我的數據分析討論群里經常有人提到轉行數據分析師,但簡歷投出去總是石沉大海,沒有面試,又或者接到面試不知道面試的側重點在哪里,看過很多面經,有提到算法的,有提到業務分析,所以不知道如何下手準備,今天就來聊聊自己關于轉行數據分析以及如何準備的一些拙見。
數據分析中有很多的分支,而每一個分支就就決定了一個工作崗位的方向,從而也就決定了面試考察的側重點。
EXCEL : 各種計算函數,solver, 自帶的data analysis工具, v-lookup, pivot table
統計學:e.g 假設檢驗,P值,R2,描述性統計,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 二分法,遞歸,雙指針,貪心算法,動態規劃,寬度優先搜索等)需要會。該崗位在準備時需要刷題,筆試代碼題和面試手撕代碼題難度較之前都會有所提升,業務相關知識涉及的則更少。
不同背景的同學都在考慮往數據分析行業轉變,但是轉行并不意味著拋棄過去的所有背景和經歷,那么針對自己的背景該如何選擇?
(以下純屬個人意見,僅供參考,獻給還處于迷茫期的同學,目標明確、興趣鮮明者除外?。?/p>
有很多理工科的同學說道,投遞數據分析師的崗位之后面試收到的很少,感覺自己業務分析能力不夠,一碰到場景題就發怵,商業直覺感覺也不強,這很有可能是因為一開始的方向選擇出了問題,或者換句話說,轉行的跨度一下子太大。
前文提到,數據分析師這個職位,偏商業,偏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
回答