回覆列表
  • 1 # 西線學院

      個人感覺資料探勘是一個比較大的概念,可以理解為:

      資料探勘=業務知識+自然語言處理技術(NLP)+計算機視覺技術(CV)+機器學習/深度學習(ML/DL)

      (1)其中業務知識具體指的是個性化推薦,計算廣告,搜尋,網際網路金融等;NLP,CV分別是處理文字,影象影片資料的領域技術,可以理解為是將非結構化資料提取轉換成結構化資料;最後的ml/dl技術則是屬於模型學習理論;

      (2)在選擇崗位時,各個公司都沒有一套標準的稱呼,但是所做的事情無非2個大方向,一種是主要鑽研某個領域的技術,比如自然語言處理工程師,計算機視覺工程師,機器學習工程師等;一種是將各種領域技術應用到業務場景中去解決業務需求,比如資料探勘工程師,推薦系統工程師等;具體的稱呼不重要,重要的是平時的工作內容;

      PS:在網際網路行業,資料探勘相關技術應用比較成功的主要是推薦以及計算廣告領域,而其中涉及到的資料主要也是文字,所以NLP技術相對來講比較重要,至於CV技術主要還是在人工智慧領域(無人車,人臉識別等)應用較多,本人瞭解有限,相關的描述會較少;

      3.根據之前的分析,也可以看到該崗位所需要的3種基本能力分別是業務經驗,演算法能力與工程能力;

      入門

      1.工程能力

      (1)程式設計基礎:需要掌握一大一小兩門語言,大的指C++或者JAVA,小的指python或者shell指令碼;需要掌握基本的資料庫語言;

      建議:MySQL + python + C++;語言只是一種工具,看看語法就好;

      (2)開發平臺:Linux;

      建議:掌握常見的命令,掌握Linux下的原始碼編譯原理;

      (3)資料結構與演算法分析基礎:掌握常見的資料結構以及操作(線性表,隊,列,字串,樹,圖等),掌握常見的計算機演算法(排序演算法,查詢演算法,動態規劃,遞迴等);

      建議:多敲程式碼,多上OJ平臺刷題;

      (4)海量資料處理平臺:hadoop(mr計算模型,java開發)或者spark(rdd計算模型,scala開發),重點推薦後者;

      建議:主要是會使用,有精力的話可以看看原始碼瞭解叢集排程機制之類的;

      2.演算法能力

      (1)數學基礎:機率論,數理統計,線性代數,隨機過程,最最佳化理論

      建議:這些是必須要了解的,即使沒法做到基礎紮實,起碼也要掌握每門學科的理論體系,涉及到相應知識點時透過查閱資料可以做到無障礙理解;

      (2)機器學習/深度學習:掌握常見的機器學習模型(線性迴歸,邏輯迴歸,SVM,感知機;決策樹,隨機森林,GBDT,XGBoost;貝葉斯,KNN,K-means,EM等);掌握常見的機器學習理論(過擬合問題,交叉驗證問題,模型選擇問題,模型融合問題等);掌握常見的深度學習模型(CNN,RNN等);

      建議:這裡的掌握指的是能夠熟悉推導公式並能知道模型的適用場景;

      (3)自然語言處理:掌握常見的方法(tf-idf,word2vec,LDA);

      3.業務經驗

      (1)瞭解推薦以及計算廣告相關知識;

      (2)透過參加資料探勘競賽熟悉相關業務場景,常見的比賽有Kaggle,阿里天池,datacastle等;

      PS:以上都是一些入門級別的介紹,在長期的學習中,應該多看頂會paper,多讀開原始碼,多學習優秀解決方案;

  • 中秋節和大豐收的關聯?
  • 特維斯已回博卡,小馬哥將來中超,世界盃大名單是否一進一出?