平台研究類
資料計算平台搭建,基礎演算法實現,當然,要求支援大樣本量、高維度資料,所以可能還需要底層開發、平行計算、分布式計算等方面的知識;
演算法研究類
資料探勘類
商業智慧型,如統計報表;
使用者體驗分析, **流失使用者。
有的應用方向比較成熟,業界有足夠的技術積累,比如搜尋、推薦,也有的方向還有很多開放性問題等待探索,比如網際網路金融、網際網路教育。在面試的過程中,一方面要盡力向企業展現自己的能力,另一方面也是在增進對行業發展現狀與未來趨勢的理解,特別是可以從一些剛起步的企業和團隊那裡,了解到一些有價值的一手問題。
以下首先介紹面試中遇到的一些真實問題,然後談一談答題和面試準備上的建議。
面試問題
基礎知識
1 無監督和有監督演算法的區別?
2 svm 的推導,特性?多分類怎麼處理?
3 lr 的推導,特性?
4 決策樹的特性?
5 svm、lr、決策樹的對比?
6 gbdt 和 決策森林 的區別?
7 如何判斷函式凸或非凸?
8 解釋對偶的概念。
9 如何進行特徵選擇?
10 為什麼會產生過擬合,有哪些方法可以預防或克服過擬合?
11 介紹卷積神經網路,和 dbn 有什麼區別?
12 採用 em 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?
13 用 em 演算法推導解釋 kmeans。
14 用過哪些聚類演算法,解釋密度聚類演算法。
15 聚類演算法中的距離度量有哪些?
16 如何進行實體識別?
17 解釋貝葉斯公式和樸素貝葉斯分類。
18 寫乙個 hadoop 版本的 wordcount。
……
開放問題
1 給你公司內部群組的聊天記錄,怎樣區分出主管和員工?
2 如何評估**內容的真實性(針對代刷、作弊類)?
3 深度學習在推薦系統上可能有怎樣的發揮?
4 路段平均車速反映了路況,在道路上布控採集車輛速度,如何對路況做出合理估計?採集資料中的異常值如何處理?
5 如何根據語料計算兩個詞詞義的相似度?
7 如何判斷自己實現的 lr、kmeans 演算法是否正確?
8 100億數字,怎麼統計前100大的?
……
答題思路
-用過什麼演算法?
1 最好是在專案/實習的大資料場景裡用過,比如推薦裡用過 cf、lr,分類裡用過 svm、gbdt;
2 一般用法是什麼,是不是自己實現的,有什麼比較知名的實現,使用過程中踩過哪些坑;
熟悉的演算法有哪些?
1 基礎演算法要多說,其它演算法要挑熟悉程度高的說,不光列舉演算法,也適當說說應用場合;
2 面試官和你的研究方向可能不匹配,不過在基礎演算法上你們還是有很多共同語言的,你說得太高大上可能效果並不好,一方面面試官還是要問基礎的,另一方面一旦面試官突發奇想讓你給他講解高大上的內容,而你只是泛泛的了解,那就傻叉了。
用過哪些框架/演算法包?
1 主流的分布式框架如 hadoop,spark,graphlab,parameter server 等擇一或多使用了解;
2 通用演算法包,如 mahout,scikit,weka 等;
3 專用演算法包,如 opencv,theano,torch7,ictclas 等。
基礎知識
-對知識進行結構化整理,比如撰寫自己的 cheet sheet,我覺得面試是在有限時間內向面試官輸出自己知識的過程,如果僅僅是在面試現場才開始調動知識、組織表達,總還是不如系統的梳理準備;
-從面試官的角度多問自己一些問題,通過查詢資料總結出全面的解答,比如如何預防或克服過擬合。
個人感覺高頻話題是 svm、lr、決策樹(決策森林)和聚類演算法,要重點準備;
-演算法要從以下幾個方面來掌握:
產生背景,適用場合(資料規模,特徵維度,是否有 online 演算法,離散/連續特徵處理等角度);
原理推導(最大間隔,軟間隔,對偶);
求解方法(隨機梯度下降、擬牛頓法等優化演算法);
優缺點,相關改進;
求解方法(隨機梯度下降、擬牛頓法等優化演算法);
不能停留在能看懂的程度,還要:
對知識進行結構化整理,比如撰寫自己的 cheet sheet,我覺得面試是在有限時間內向面試官輸出自己知識的過程,如果僅僅是在面試現場才開始調動知識、組織表達,總還是不如系統的梳理準備;
從面試官的角度多問自己一些問題,通過查詢資料總結出全面的解答,比如如何預防或克服過擬合。
開放問題
由於問題具有綜合性和開放性,所以不僅僅考察對演算法的了解,還需要足夠的實戰經驗作基礎;
先不要考慮完善性或可實現性,調動你的一切知識儲備和經驗儲備去設計,有多少說多少,想到什麼說什麼,方案都是在你和面試官討論的過程裡逐步完善的,不過面試官有兩種風格:引導你思考考慮不周之處 or 指責你沒有考慮到某些情況,遇到後者的話還請注意靈活調整答題策略;
和同學朋友開展討論,可以從上一節列出的問題開始。
準備建議
1 基礎演算法複習兩條線
-材料閱讀 包括經典教材(比如 prml,模式分類)、網上系列部落格,系統梳理基礎演算法知識;
-面試反饋 面試過程中會讓你發現自己的薄弱環節和知識盲區,把這些問題記2錄下來,在下一次面試前搞懂搞透。
3 如果真的是以就業為導向就要在平時注意實戰經驗的積累,在科研專案、實習、比賽(kaggle,阿里大資料競賽等)中摸清演算法特性、熟悉相關工具與模組的使用。
總結
如今,好多機器學習、資料探勘的知識都逐漸成為常識,要想在競爭中脫穎而出,就必須做到
**保持學習熱情,關心熱點;**
**深入學習,會用,也要理解;**
**在實戰中歷練總結;**
**重點內容**積極參加學術界、業界的講座分享,向牛人學習,與他人討論。
機器學習和資料探勘的聯絡與區別
從資料分析的角度來看,資料探勘與機器學習有很多相似之處,但不同之處也十分明顯,例如,資料探勘並沒有機器學習探索人的學習機制這一科學發現任務,資料探勘中的資料分析是針對海量資料進行的,等等。從某種意義上說,機器學習的科學成分更重一些,而資料探勘的技術成分更重一些。本文選自 大資料架構詳解 從資料獲取到...
大資料架構簡述(四) 機器學習和資料探勘
機器學習 machine learning,ml 是一門多領域交叉學科,涉及概率論 統計學 逼近論 凸分析 演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。1 監督式學習 輸入 訓練資料 每組資料有明確的標識...
大資料中,機器學習和資料探勘的聯絡與區別
資料探勘是從海量資料中獲取有效的 新穎的 潛在有用的 最終可理解的模式的非平凡過程。資料探勘中用到了大量的機器學習界提供的資料分析技術和資料庫界提供的資料管理技術。從資料分析的角度來看,資料探勘與機器學習有很多相似之處,但不同之處也十分明顯,例如,資料探勘並沒有機器學習探索人的學習機制這一科學發現任...