資料探勘實習面試

Mylin發表於2015-06-13

1. 兩個方向:

現在能做的也就是,Web開發,分前後段,前端js,後端c#,sql,和資料探勘,演算法部分c++,資料部分Python,Hadoop。

2. 簡歷上兩個錯誤:

一個是GBDT寫成了GBRT,GBDT核心是BOOST迭代過程,重視錯誤分類。隨機森林是大家來決策取眾數。二是郵箱的字尾.cn寫成了.com。

3.不會:

不會就是不會,不需要解釋。我不會Python,我不會Linux,我不熟C++。

4.第一輪電話面試

第一輪就是問到了迪傑斯特拉演算法,問題的關鍵是邊鬆弛,廣度優先+損失度量函式。第二是快排,快排的核心是選一個基準和遞迴的呼叫。遞迴是核心。兩個問題都很基本。最後就是解釋一下機器學習中的邏輯迴歸演算法。

5.第二輪技術面試:

5.1 Hadoop:因為做過阿里巴巴的大資料競賽,而且他們也是做類似的事情 ,所以對此很感興趣。

解釋一下Hadoop的MapReduce的map和reduce過程。Hadoop就是解決了大資料問題,大到一臺計算機無法進行儲存,一臺計算機無法在要求的時間內進行處理的可靠儲存和處理問題。Hadoop框架的核心是:HDFS和MapReduce。HDFS分散式檔案系統,為資料提供了儲存,類似於阿里的ODPS,MapReduce提供了計算,一個job分為map和reduce兩個階段,採用分治思想。Map函式接受一組資料並將其轉換成一個鍵/值對列表,輸入域中的每個元素對應一個鍵/值對。Reduce函式接受Map函式生成的列表,然後根據他們的鍵合併同類項。經典例項就是Wordcount,單詞計數。看了下面的兩幅圖,才發現自己之前的理解是錯的,map對映是一個分工的過程,reduce減少也就是一個合併的過程。最後再給一個部落格的參考連結:http://blog.csdn.net/opennaive/article/details/7514146;清楚明白。


5.2 演算法程式設計:一個九宮格從左上角到右下角的所有走法。

遞迴解法,就是把一個問題分解成子問題,然後找出最小子問題。動態規劃還需要找出問題的求解順序。

5.3 擴充套件一個棧Stack,實現三個函式,min(), pop(), push(), 要求時間複雜度是O(1).

因為時間上要求快了,所以考慮犧牲空間換取時間,而且負責度是O(1),不能遍歷,所以考慮增加空間,思路是把當前最小值存起來,並且在pop和push操作的時候維護它:a. 如果有比當前最小值大的元素入棧,當前最小值不變;b. 如果有比當前最小值小的元素入棧,當前最小值變為新加入元素。c. 如果有比當前最小值大的元素出棧,當前最小值不變。d.如果有和當前最小值的元素相同出棧,當前最小值變為當前最小值入棧之前那個最小值,當前最小值退出。

相關文章