2016資料探勘面試總結

2021-09-07 13:50:12 字數 3172 閱讀 1040

避免資料傾斜

引數調節:

hive.map.aggr=true

map 端部分聚合,相當於combiner

hive.groupby.skewindata=true

有資料傾斜的時候進行負載均衡,當選項設定為 true。生成的查詢計畫會有兩個 mr job。

第乙個 mr job 中,map 的輸出結果集合會隨機分布到 reduce 中,每乙個 reduce 做部分聚合操作。並輸出結果,這樣處理的結果是同樣的 group by key 有可能被分發到不同的 reduce 中,從而達到負載均衡的目的。第二個 mr job 再依據預處理的資料結果依照 group by key 分布到 reduce 中(這個過程能夠保證同樣的 group by key 被分布到同乙個 reduce 中),最後完畢終於的聚合操作。

sql語句調節:怎樣join:

關於驅動表的選取。選用join key分布最均勻的表作為驅動表

做好列裁剪和filter操作,以達到兩表做join的時候,資料量相對變小的效果。

大小表join:使用map join讓小的維度表(1000條下面的記錄條數) 先進記憶體。

在map端完畢reduce.

大表join大表:把空值的key變成乙個字串加上隨機數。把傾斜的資料分到不同的reduce上,因為null值關聯不上,處理後並不影響終於結果。

count distinct大量同樣特殊值

countdistinct時。將值為空的情況單獨處理,假設是計算count distinct,能夠不用處理。直接過濾。在最後結果中加1。

假設還有其它計算。須要進行group by,能夠先將值為空的記錄單獨處理,再和其它計算結果進行union。

group by維度過小:採用sum() group by的方式來替換count(distinct)完畢計算。

特殊情況特殊處理:在業務邏輯優化效果的不大情況下,有些時候是能夠將傾斜的資料單獨拿出來處理。

最後union回去。

由微觀到巨集觀,逐層分析。首先我們從微觀來看,怎樣給使用者的微觀畫像進行分級呢?例如以下圖所看到的。

總原則:基於一級分類上述分類逐級進行細分。

• 第一分類:人口屬性、資產特徵、營銷特性、興趣愛好、購物愛好、需求特徵

• 第二分類...

• 第三分類...

生成決策樹的個數、**屬性的個數

randomforest

包中的randomforest(formula, data,ntree, nperm, mtry, proximity, importace)

函式:隨機森林分類與回歸。ntree表示生成決策樹的數目(不應設定太小。默覺得500);nperm表示計算importance時的反覆次數。數量大於1給出了比較穩定的預計,但不是非常有效(眼下僅僅實現了回歸);mtry

表示選擇的**屬性的個數;proximity表示是否生成鄰近矩陣,為t表示生成鄰近矩陣;importance表示輸出**屬性的重要性。

控制以下幾個引數選擇最佳的模型

minsplit控制乙個節點最小權重和以便進行切割。minbusket設定了乙個葉子節點最小權重和。maxsurrogate表示替代**點的數量以便用於評估;maxdepth控制決策樹的深度。當中,

minsplit/minbusket

能夠設定為訓練集的

1/100

,這些引數的值能夠依據商業問題、領域專家的經驗、資料、執行演算法須要的合理時間以及

決策樹的期望規模來設定。

層次距離選擇,通過距離矩陣來聚類

1)10     5      2      1 四人過橋的時間,一次僅僅能過兩人。僅僅有乙個手電筒,每次過橋須要用到手電筒。最少的過橋時間

2)5 公升    3公升兩個容量大小的杯子,怎麼倒出4公升水

3)有       有    有    無    無    無,有表示杯子中有水。無表示杯子中無水;僅僅能動乙個杯子的情況下。使有水和無水相間隔

4)1到100已經標記並從小到大排好序的小球。兩個人按順序抽取。一次能夠抽取1到5個球,假設讓你先抽。什麼情況下保證你永遠都能抽取到第100號球。

5)九宮格

9、資料探勘的系統架構

10、sparkr是不是每台機器上都須要安裝並載入包;spark的工作流程。rdd的

spark優化,actor操作與執行緒的優化

11、使用者畫像的標籤系統多久更新一次

12、gbm,梯度下降的條件:必須是 凸函式

13、hashmap的原理

14、二分法查詢

15、aabbcddfchgh找出僅僅出現一次的字母

16、一段檔案分好詞後並按次序放入到乙個list中,求出i love china的最短距離,不考慮大寫和小寫(使用指標)

17、應用演算法的詳細業務流程

18、貝葉斯公式、貝葉斯文字分類

19、m行n列的日誌,統計列數為6的行數

20、歐式距離與余弦距離的差別

21、組合索引的差別:a和b上建立組合索引,查詢ab、a和b 哪個最快、哪個最慢   ab>a>b

22、表連線查詢。小表在前的原理,map join與其它join的差別

mapjoin

是一種避免避免資料傾斜的手段

同意在

map階段進行

join

操作。mapjoin

把小表所有讀入記憶體中,在

map階段直接拿另外乙個表的資料和記憶體中表資料做匹配,因為在

map是進行了

join

操作。省去了

reduce

執行的效率也會高非常多

在《hive

:join

遇到問題》有詳細操作

在對多個表

join

連線操作時。將小表放在

join

的左邊。大表放在

jion

的右邊,

在執行這種

join

連線時小表中的資料會被快取到記憶體其中

,這樣能夠有效降低發生記憶體溢位錯誤的機率

python資料探勘面試 位元組跳動資料探勘面試總結

1.資料探勘任務 使用者常住城市 2.資料倉儲任務 演出主藝人名標籤挖掘 3.mapreduce原理 4.mapreduce特別慢的原因 4.1 計算機效能 cpu 記憶體 磁碟健康 網路 4.2 i o操作優化 資料傾斜 map reduce數設定不合理 reduce等待過久 小檔案過多 大量的不...

資料探勘面試之SVM

svm 上 理論知識 本文簡單講述了svm的一些小問題 0x00 前言 0x01 初始svm 問題1 你能給我講講什麼是svm嗎?回答 svm是一種二分類模型,它的基本模型是在特徵空間中尋找間隔最大化的分割超平面的線性分類器。如在下面的兩個類別中 暫且稱兩個類為黃球和紅球 我們要將其分割開的方式有多...

資料探勘的功能總結

總的來說,資料探勘任務可以分為兩類 描述性的和 性的。描述性的資料探勘任務是對目標資料集中資料的屬性進行特徵描述,而 性的挖掘任務是對當前資料進行歸納以進行 1,特徵描述和區分 特徵描述是對某類的資料的一般特徵或屬性的總結。特徵描述的結果可以以多種方式進行展現,例如餅狀圖,條形圖,曲線,多維資料立方...