大數據分析和挖掘的基本技術棧和入門方法整理

Hive、hadoop

主要是瞭解Hive從HDFS中提數的Hive SQL語法,還是有很多技巧

Hive提數後怎麼辦?

一般是導出Excel csv格式,通過python、R語言處理

數據挖掘工具和平臺python、R語言等

caffee、tensorflow、python、R語言

數據計算框架Spark

實現數據計算

數據顯示

R語言的數據呈現

數據分析算法、挖掘算法

劃分數據集和測試集,通過簡單交叉驗證或K折交叉驗證

無監督學習

例如KNN、KMeans聚類

監督學習

例如決策樹、隨機森林

廣告推薦等常用算法

GBDT、XGBoost、CTR預估、FM、LDA等

CTR預估參考文獻

http://blog.csdn.net/hero_fantao/article/details/42747281
http://blog.csdn.net/bitcarmanlee/article/details/52138970

多模型融合推薦算法

http://www.jianshu.com/p/6f4da232ec7f
多模型融合推薦算法在達觀數據的運用

FM算法

參考《深入FM原理與實踐》——美團
《Factorization Machines with libFM》

Bayes貝葉斯分類算法

可參考spark Bayes算法

GBDT與XGBoost的區別

  1. 傳統GBDT以CART作爲基分類器,xgboost還支持線性分類器,這個時候xgboost相當於帶L1和L2正則化項的邏輯斯蒂迴歸(分類問題)或者線性迴歸(迴歸問題)。
  2. 傳統GBDT在優化時只用到一階導數信息,xgboost則對代價函數進行了二階泰勒展開,同時用到了一階和二階導數。順便提一下,xgboost工具支持自定義代價函數,只要函數可一階和二階求導。
  3. xgboost在代價函數里加入了正則項,用於控制模型的複雜度。正則項裏包含了樹的葉子節點個數、每個葉子節點上輸出的score的L2模的平方和。從Bias-variance tradeoff角度來講,正則項降低了模型的variance,使學習出來的模型更加簡單,防止過擬合,這也是xgboost優於傳統GBDT的一個特性。
  4. Shrinkage(縮減),相當於學習速率(xgboost中的eta)。xgboost在進行完一次迭代後,會將葉子節點的權重乘上該係數,主要是爲了削弱每棵樹的影響,讓後面有更大的學習空間。實際應用中,一般把eta設置得小一點,然後迭代次數設置得大一點。(補充:傳統GBDT的實現也有學習速率)
  5. 列抽樣(column subsampling)。xgboost借鑑了隨機森林的做法,支持列抽樣,不僅能降低過擬合,還能減少計算,這也是xgboost異於傳統gbdt的一個特性。
  6. 對缺失值的處理。對於特徵的值有缺失的樣本,xgboost可以自動學習出它的分裂方向。
  7. xgboost工具支持並行。boosting不是一種串行的結構嗎?怎麼並行的?注意xgboost的並行不是tree粒度的並行,xgboost也是一次迭代完才能進行下一次迭代的(第t次迭代的代價函數裏包含了前面t-1次迭代的預測值)。xgboost的並行是在特徵粒度上的。我們知道,決策樹的學習最耗時的一個步驟就是對特徵的值進行排序(因爲要確定最佳分割點),xgboost在訓練之前,預先對數據進行了排序,然後保存爲block結構,後面的迭代中重複地使用這個結構,大大減小計算量。這個block結構也使得並行成爲了可能,在進行節點的分裂時,需要計算每個特徵的增益,最終選增益最大的那個特徵去做分裂,那麼各個特徵的增益計算就可以開多線程進行。

參考《facebook gbdt構造新特徵》
http://www.zhihu.com/question/41354392/answer/98658997

LDA主題模型

在線學習

FTRL請參考Google論文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章