1. 程式人生 > >資料工作的科普總結【財哥原創】

資料工作的科普總結【財哥原創】

在我經歷過的實際專案中,推薦、概率預估、分類、排序應該是四個主要的專案核心。
1.推薦?這個應該不比多說了吧,各個電商裡面的“猜你喜歡”、今日頭條網易新聞的新聞推送、微博段子等很多都是推薦的結果。推薦可以做策略,也可以走演算法模型,策略就是如果我知道你是個胖子,我就給你推送大號的衣服,我知道你是個單身未婚女性,我就不會給你推送剃鬚刀。
2.概率預估:天氣預報
3.分類:記得我畢業入職京東的第一個專案,就是做文字分類,當時目的是監控整個網際網路的京東產品輿情情況。目標很簡單,就是兩個分類,好評還是差評。我們寫爬蟲定時抓取各大新聞網站、微博、知乎、百度貼吧等眾多社交網站的文字,然後走了naive bayes,將新聞、微博等輿論自動判斷為好評還是差評。當時效果還不錯,fscore是0.8左右
4:排序:一個商品列表,商品展示的先後順序對使用者體驗以及GMV會有很大影響,那麼如何對商品展示順序進行排序,這就是一個很深的水域了(沒做過,不敢多說)。
演算法:我很難幾句話說清楚應該如何來做或者會用到哪些演算法,因為這個是一個經驗上的過程。比如變數很多的時候,可以用PCA去降維、比如在LR中可以加lasso去削弱一些特徵的權重、比如在樹模型中去修改正負樣本權重,樣本欠取樣重取樣。
當一個問題線性可分時
什麼是線性可分?假如有兩個類別對和錯,在平面直角座標系上畫一條y=x的函式影象,線上面的是對,線下面的是錯,能明確看出來的就是線性可分,不能明確看出來的就不是線性可分,至於什麼是明確能看出來,這個需要看指標,比如準確率、召回率、F1-score
線性不可分時,聽說svm也曾經叱吒風雲一陣子。。。
什麼是線性不可分?沒時間解釋了。。。
1.線性不可分,因為svm的核函式可以把原始分佈對映到更高維度,就好比把郭敬明跟姚明放在一起俯視來看就是兩個點(腦袋)無法做劃分,如果慢慢從空中落到地面上,你會發現二人還有海拔的差異。
2.svm加核函式只是處理線性不可分的一種方法,其他的還有很多,比如樹狀的模型(ID3,C45,random forest,adaboost,gbdt。。。詳情可以看《統計學習方法》的P?~P?)
3.從樸素到貝葉斯網路
4.不怎麼好用的LDA(不是線性判別分析),可能是我的應用場景不太合適吧
5.神經網路相關,太多了,我還沒有深入去玩兒這個東西,現在常見的CNN、RNN、ANN、GAN等等。。。(沒有調查,不敢發言)
6.其他的一些演算法也會出現在不同場合,比如隱馬爾可夫、條件隨機場(在做本科畢設做分詞器的時候折騰過)
7.推薦系統裡所謂“矩陣分解大法好”:SVD分解,LU分解等
演算法的工具包
python的sklearn
xgboost
TensorFlow
lightgbm
libsvm——svm的一個工具包
fasttext——facebook的文字演算法包
svdfeature——矩陣分解
R的工具包