數據挖掘工程師的面試問題與答題思路

一個Java程序可以認為是一系列對象的集合,而這些對象通過調用彼此的方法來協同工作。下面簡要介紹下類、對象、方法和實例變量的概念。

  • 對象:對象是類的一個實例,有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
  • :類是一個模板,它描述一類對象的行為和狀態。
  • 方法:方法就是行為,一個類可以有很多方法。邏輯運算、數據修改以及所有動作都是在方法中完成的。
  • 實例變量:每個對象都有獨特的實例變量,對象機器學習、大數據相關崗位根據業務的不同,崗位職責大概分為:

1、平臺搭建類
  數據計算平臺搭建,基礎算法實現,當然,要求支持大樣本量、高維度數據,所以可能還需要底層開發、并行計算、分布式計算等方面的知識;

2、算法研究類
  - 文本挖掘,如領域知識圖譜構建、垃圾短信過濾等;
  - 推薦,廣告推薦、APP 推薦、題目推薦、新聞推薦等;
  - 排序,搜索結果排序、廣告排序等;
  - 廣告投放效果分析;
  - 互聯網信用評價;
  - 圖像識別、理解。

3、數據挖掘類
  - 商業智能,如統計報表;
  - 用戶體驗分析,預測流失用戶。
  以上是根據求職季有限的接觸所做的總結。有的應用方向比較成熟,業界有足夠的技術積累,比如搜索、推薦,也有的方向還有很多開放性問題等待探索,比如互聯網金融、互聯網教育。在面試的過程中,一方面要盡力向企業展現自己的能力,另一方面也是在增進對行業發展現狀與未來趨勢的理解,特別是可以從一些剛起步的企業和團隊那里,了解到一些有價值的一手問題。

  
以下首先介紹面試中遇到的一些真實問題,然后談一談答題和面試準備上的建議。

面試問題
  1、你在研究/項目/實習經歷中主要用過哪些機器學習/數據挖掘的算法?
  2、你熟悉的機器學習/數據挖掘算法主要有哪些?
  3、你用過哪些機器學習/數據挖掘工具或框架?
  4、基礎知識
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。
……
  5、開放問題
1)給你公司內部群組的聊天記錄,怎樣區分出主管和員工?
2)如何評估網站內容的真實性(針對代刷、作弊類)?
3)深度學習在推薦系統上可能有怎樣的發揮?
4)路段平均車速反映了路況,在道路上布控采集車輛速度,如何對路況做出合理估計?采集數據中的異常值如何處理?
5)如何根據語料計算兩個詞詞義的相似度?
6)在百度貼吧里發布 APP 廣告,問推薦策略?
7)如何判斷自己實現的 LR、Kmeans 算法是否正確?
8)100億數字,怎么統計前100大的?
……

答題思路
1、用過什么算法?
  最好是在項目/實習的大數據場景里用過,比如推薦里用過 CF、LR,分類里用過 SVM、GBDT;
  一般用法是什么,是不是自己實現的,有什么比較知名的實現,使用過程中踩過哪些坑;
優缺點分析。

2、熟悉的算法有哪些?
  基礎算法要多說,其它算法要挑熟悉程度高的說,不光列舉算法,也適當說說應用場合;
  面試官和你的研究方向可能不匹配,不過在基礎算法上你們還是有很多共同語言的,你說得太高大上可能效果并不好,一方面面試官還是要問基礎的,另一方面一旦面試官突發奇想讓你給他講解高大上的內容,而你只是泛泛的了解,那就傻叉了。

3、用過哪些框架/算法包?
  主流的分布式框架如 Hadoop,Spark,Graphlab,Parameter Server 等擇一或多使用了解;
  通用算法包,如 mahout,scikit,weka 等;
  專用算法包,如 opencv,theano,torch7,ICTCLAS 等。

4、基礎知識
  個人感覺高頻話題是 SVM、LR、決策樹(決策森林)和聚類算法,要重點準備;
  算法要從以下幾個方面來掌握:
1)產生背景,適用場合(數據規模,特征維度,是否有 Online 算法,離散/連續特征處理等角度);
2)原理推導(最大間隔,軟間隔,對偶);
3)求解方法(隨機梯度下降、擬牛頓法等優化算法);
4)優缺點,相關改進;
5)和其他基本方法的對比;
6)不能停留在能看懂的程度,還要對知識進行結構化整理,比如撰寫自己的 cheet sheet,我覺得面試是在有限時間內向面試官輸出自己知識的過程,如果僅僅是在面試現場才開始調動知識、組織表達,總還是不如系統的梳理準備;
7)從面試官的角度多問自己一些問題,通過查找資料總結出全面的解答,比如如何預防或克服過擬合。

5、開放問題
  由于問題具有綜合性和開放性,所以不僅僅考察對算法的了解,還需要足夠的實戰經驗作基礎;
  先不要考慮完善性或可實現性,調動你的一切知識儲備和經驗儲備去設計,有多少說多少,想到什么說什么,方案都是在你和面試官討論的過程里逐步完善的,不過面試官有兩種風格:引導你思考考慮不周之處 or 指責你沒有考慮到某些情況,遇到后者的話還請注意靈活調整答題策略;
  和同學朋友開展討論,可以從上一節列出的問題開始。

準備建議
1、基礎算法復習兩條線
  材料閱讀 包括經典教材(比如 PRML,模式分類)、網上系列博客(比如 研究者July的“結構之法,算法之道”),系統梳理基礎算法知識;
  面試反饋 面試過程中會讓你發現自己的薄弱環節和知識盲區,把這些問題記錄下來,在下一次面試前搞懂搞透。

2、除算法知識,還應適當掌握一些系統架構方面的知識,可以從網上分享的阿里、京東、新浪微博等的架構介紹 PPT 入手,也可以從 Hadoop、Spark 等的設計實現切入。

3、如果真的是以就業為導向就要在平時注意實戰經驗的積累,在科研項目、實習、比賽(Kaggle,Netflix,天貓大數據競賽等)中摸清算法特性、熟悉相關工具與模塊的使用。

總結
如今,好多機器學習、數據挖掘的知識都逐漸成為常識,要想在競爭中脫穎而出,就必須做到:
 保持學習熱情,關心熱點;
 深入學習,會用,也要理解;
 在實戰中歷練總結;
 積極參加學術界、業界的講座分享,向牛人學習,與他人討論。

找好自己的定位:

1、數據分析師,主要技能SQL、Excel,從數據庫里寫SQL語句得到數據,然后在EXCEL里加工可視化后做成報表或者報告,利用你的商業敏感度,給出可靠的結論。聽起來很簡單是不是,但這其中需要的商業敏感度,確是最需要積累的。具體方向有3個:數據產品、決策支持、數據運營。其中,數據產品 PK需求把控&項目管控能力;決策支持 PK商業sense(例如做營銷,360網址導航這種每月幾百萬的框架到底要不要簽?);數據運營 PK提煉特征能力綜上,你會發現在互聯網公司,數據分析師要處理的問題,跟營銷、產品、運營一樣。

2、算法工程師,主要技能數學功底+統計功底+實打實的寫代碼能力+看論文讀最新算法論文的能力。要求相當高。對應崗位推薦算法工程師、搜索算法工程師、文本挖掘、語音識別、圖像處理這類算法工程師。比如阿里,做推薦的算法工程師基于訪客、商品、商家的在線、離線信息等等數據庫的數據,來得到一套推薦的邏輯,通俗點說,怎么給出個公司,給每個商品算個得分,排列出來給買家看到,買家會想要買更多的商品。而這背后的算法,其實市面上大部分機器學習的書都覆蓋不到,是需要算法工程師基于算法基本功(數據結構、核心算法范式)+商業感覺(業務邏輯、綜合行業運營、分析師的假設經驗)+利用數據不斷的實驗迭代得到最好的結果、獲得參數、還要擔心本身樣本不隨機帶來的系統偏差等等問題。

以上轉自公眾號:數據挖掘DW
  

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386032.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386032.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386032.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【干貨】java課程實戰培訓

開頭 消息隊列 RocketMQ 是阿里巴巴集團基于高可用分布式集群技術,自主研發的云正式商用的專業消息中間件,既可為分布式應用系統提供異步解耦和削峰填谷的能力,同時也具備互聯網應用所需的海量消息堆積、高吞吐、可靠重試等特性,…

Java的幾個特點

Java語言是簡單的: Java語言的語法與C語言和C語言很接近,使得大多數程序員很容易學習和使用。另一方面,Java丟棄了C中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地&#xff0c…

【干貨】mysql建表語句注釋

前言 難道程序員的職業生命線是青春飯?答案是的。 35歲考慮轉行,然后35歲又成了一個新人,而外國可以做到60歲,啥也不說了,可能是覺得中年大叔油膩,不及小鮮肉便宜,唉,可嘆市場更新…

軟件測試知識整理

在一個測試計劃匯總能包含哪些內容? 答:在一個測試計劃中可以包含需要測試的產品的特點和主要功能模塊,列出需要測試的功能點,并標明側重點;測試的策略和記錄(測試工具的確認,測試用例等文檔模…

【干貨】mysql查詢重復數據sql

前言 本系列的目的是明明白白、徹徹底底的搞定日期/時間處理的幾乎所有case。上篇文章鋪設所有涉及到的概念解釋,例如GMT、UTC、夏令時、時間戳等等,若你還沒看過,不僅強烈建議而是強制建議你前往用花5分鐘看一下,因為日期時間處…

【微信小程序】java最簡單觀察者模式

開頭 對于一個Java程序員而言,能否熟練掌握并發編程是判斷他優秀與否的重要標準之一。因為并發編程是Java語言中最為晦澀的知識點,它涉及操作系統、內存、CPU、編程語言等多方面的基礎能力,更為考驗一個程序員的內功。 那到底應該怎么學習并…

操作系統知識點整理

作業 用戶在一次解題或一個事務處理過程中要求計算機系統所做工作的集合。它包括用戶程序、所需要的數據及控制命令等。作業是由一系列有序的步驟組成的。 進程 一個程序在一個數據集合上的一次運行過程。所以一個程序在不同數據集合上運行,乃至一個程序在同樣數…

【性能優化實戰】java驗證碼識別訓練

前言 今天剛好有空,跟大家聊聊如何學好算法進大廠。 前兩天一個讀者和我說,他堅持刷算法題2個月,薪資翻番去了他夢寐以求的大廠,期間面字節跳動還遇到了原題…其實據我所知目前國內的大廠和一些獨角獸,已經越來越效仿…

計算機網絡知識整理

OSI七層 物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層。 物理層涉及信道上傳輸的比特流。 數據鏈路層的主要任務是加強物理層傳輸原始比特流的功能,是指對應的網路層顯現為一條無錯線路。發送包把數據封裝在數據幀,按順序傳送出去并處…

吸水間最低動水位標高_體驗長安逸動EV460:再也不用為電動車續駛里程焦慮了...

文| 車突突車圖騰出品,未經許可,謝絕轉載● ● ●人們都在期待碧水藍天,而且越來越多的消費者也開始踐行環保理念,在買車時關注起了純電動汽車。不過遺憾的是,純電動汽車目前還沒能成為主流。一方面,是因為…

java開發工具包jdk包括哪些

害怕干不過SpringBoot?莫慌,我送你套神級pdf文檔 隨著 Spring Boot 使用越來越廣泛,Spring Boot 已經成為 Java 程序員面試的知識點,很多同學對 Spring Boot 理解不是那么深刻,經常就會被幾個連環追問就給干趴下了&am…

微信計步器怎么不計步_難以關閉的微信朋友圈廣告

太難關掉了。”試圖關閉朋友圈廣告的小曾,在對照著騰訊視頻上的一個長達6分鐘的視頻演示之后,通過14次操作才得以關閉。這14步操作具體如下:點擊“我”—點擊“設置”—點擊“關于微信”—點擊“微信隱私保護指引”—下拉兩個屏幕的面積—點擊…

java開發工具有哪些

前言 Netty 是一款基于 Java 的網絡編程框架,能為應用程序管理復雜的網絡編程、多線程處理以及并發。Netty 隱藏了樣板和底層代碼,讓業務邏輯保持分離,更加易于復用。使用 Netty 可以得到一個易于使用的 API,讓開發人員可以專注自…

經典冒泡排序及其優化

經典排序算法 - 冒泡排序Bubble sort 原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,這樣一趟過去后,最大或最小的數字被交換到了最后一位,然后再從頭開始進行兩兩比較交換,直到倒數第二位時結束,其余類似…

expdp導出 schema_記錄一則expdp任務異常處理案例

在XTTS遷移測試階段,遇到執行幾個expdp的導出任務,遲遲沒有返回任何信息,對應日志無任何輸出。環境:AIX 6.1 Oracle 10.2.0.4現象:在XTTS遷移測試階段,遇到執行幾個expdp的導出任務,遲遲沒有返…

java開發工具軟件排行榜

前言: 都說學歷是敲門磚,是一點都沒錯,即使是在重技術輕學歷的互聯網企業,面試官對于學歷越高的程序員初印象會更好,面試也會更順利,而大部分專科學歷的程序員,除非有過硬的技術,否…

簡單選擇排序算法

簡單選擇排序思想:首先,找到數組中最小的元素,其次,將它和數組第一個元素交換位置;再次,在剩下的元素中找到最小的元素,將它與數組中的第二個元素交換。如此亡故,直到將整個數組排序…

java開發工程師工作內容怎么寫

什么是分布式鎖?在回答這個問題之前,我們先回答一下什么是鎖。 普通的鎖,即在單機多線程環境下,當多個線程需要訪問同一個變量或代碼片段時,被訪問的變量或代碼片段叫做臨界區域,我們需要控制線程一個一個…

community 計算模塊度_光模塊深度:國內光模塊企業快速崛起

一、核心觀點二、發展追溯:技術是底蘊、創新是動力1 光通信發展:技術迭代加快,國產替代是前進的方向依據摩爾定律,光模塊的小型化、低成本以及高速率是產品迭代的主要方向。2 競爭格局:市場集中度高,巨頭地位穩固,國內廠商穩步崛起…

java開發工程師的自我評價

前言 京東到家訂單中心系統業務中,無論是外部商家的訂單生產,或是內部上下游系統的依賴,訂單查詢的調用量都非常大,造成了訂單數據讀多寫少的情況。 我們把訂單數據存儲在MySQL中,但顯然只通過DB來支撐大量的查詢是不…