一,Q&A部分:
1.一個特征分析的例子。。。(聽不懂)
2. 還是一個機器學(xué)習(xí)的例子,(聽不懂)大致,降低復(fù)雜度。
3. 傳統(tǒng)算法合格的標(biāo)準(zhǔn),Leetcode(簡單,中等毫無壓力,hard難度有一定時間思考可以解決)
4. Machine Learning算法基礎(chǔ),數(shù)學(xué)基礎(chǔ)(統(tǒng)計學(xué),微積分,線性代數(shù),離散數(shù)學(xué))
5. 數(shù)據(jù)挖掘相關(guān)的競賽
(ACM沒太大幫助,僅僅針對傳統(tǒng)算法, 針對數(shù)據(jù)挖掘的競賽:Kagle, KDD數(shù)據(jù)挖掘)
6. 算法工程師需要博士么?
live主只有本科學(xué)歷,和基礎(chǔ)知識。
(碩士比較有必要 因為面試結(jié)果好于本科,也就是認(rèn)可度較高)
7. 高維空間xxx相關(guān)的問題(還是聽不懂)
8. 基礎(chǔ)爛的人,如何學(xué)習(xí)算法?
(花時間去補基礎(chǔ),鍛煉自己獨立學(xué)習(xí)獨立解決問題的能力)
9. 數(shù)據(jù)挖掘要學(xué)spark?
Live主認(rèn)為python足夠。
10. 合格的算法工程師需要的數(shù)學(xué)基礎(chǔ)?
后續(xù)另外一個部分介紹
11. 怎樣練習(xí)算法?指傳統(tǒng)的算法和數(shù)據(jù)結(jié)構(gòu)
1)以模塊化形式 針對訓(xùn)練。例如學(xué)習(xí)圖輪,相對于刷圖論相關(guān)的題目
學(xué)習(xí)動態(tài)規(guī)劃,刷動態(tài)規(guī)劃相關(guān)的題目。
(根據(jù)模塊學(xué)習(xí)和訓(xùn)練)
2)leetcode 隨機刷題。自己想方案來解決
(根據(jù)實際問題選擇算法解決問題)
12. 有一定高數(shù)基礎(chǔ)和機器學(xué)習(xí)的基礎(chǔ)概念,如何實際訓(xùn)練
Kaggle 和KDD 訓(xùn)練,
嘗試寫爬蟲自己挖掘數(shù)據(jù)進(jìn)行研究。
13. 應(yīng)用數(shù)學(xué)/統(tǒng)計專業(yè)如何轉(zhuǎn)型算法
1)學(xué)習(xí)寫代碼。例如python
2)穩(wěn)固統(tǒng)計學(xué),并學(xué)習(xí)機器學(xué)習(xí)相關(guān)的知識。
14. 數(shù)據(jù)挖掘工程師,有必要深入研究傳統(tǒng)算法,例如算法導(dǎo)論么?
還是重點關(guān)注學(xué)習(xí),統(tǒng)計等算法呢?
作者認(rèn)為沒有必要。
傳統(tǒng)算法(算法導(dǎo)論)偏向系統(tǒng)工程方面。
數(shù)據(jù)挖掘便向統(tǒng)計方面。
15. 本科生非ACMER 需要什么程度才算算法合格?
作者前面說的Leetcode初級,中級無壓力。高級題花時間能研究出來。
16. 算法工程師和數(shù)據(jù) data scientist的區(qū)別
在中小企業(yè)是不做區(qū)分的。
很大的公司中會有區(qū)別。
例如算法工程師提供更底層的模塊
數(shù)據(jù)挖掘工程師更偏向于業(yè)務(wù)。
17. 算法工程師的編程能力要達(dá)到什么水平?
如果不做系統(tǒng)級的開發(fā)對編程能力要求并不高。
系統(tǒng)開發(fā),比如分布式計算,并行計算。對編程要求就高很多。
18. 傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)和算法是否對于機器學(xué)習(xí)有必要?體現(xiàn)在什么地方?
類比參加高考的數(shù)理化訓(xùn)練。訓(xùn)練思維的方式,思考方式和基礎(chǔ)。
傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)算法接觸大量計算機的解決問題的思維。
機器學(xué)習(xí)中會用到傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)算法,例如圖論,動態(tài)規(guī)劃。
字典樹,自動機等等。
---------------------------
二,正文大綱:
如何成為當(dāng)下合格的算法工程師
1. 定義算法工程師
2. 所需內(nèi)功和外公
3. 不可替代性和成長性
4. 如何快速成長
5. 算法崗面經(jīng)
6. 量化合格的標(biāo)準(zhǔn)
1. 什么是算法工程師:
從個大招聘網(wǎng)站的算法崗JD開始
主流應(yīng)用:音頻,視頻,圖,像數(shù)據(jù)挖掘,搜索
技術(shù)核心:機器學(xué)習(xí)
未來:人工智能
(live主認(rèn)為機器學(xué)習(xí)未必是實現(xiàn)人工智能的唯一方式,
萬一有人腦的API,那么機器學(xué)習(xí)熱潮可能會退去)
live主分析了一份阿里的JD
涵蓋了主流機器學(xué)習(xí)的應(yīng)用和方向
(同時說明部門老大技術(shù)應(yīng)該很牛,有可能上升的空間就較小)
分析一份百度的JD
C/C++要求,分布式計算,自然語言處理。JD描述看似簡單
往往需要講出自己非常牛的項目經(jīng)歷。
詞云圖:廣告(DSP)
java/C++/Python
數(shù)學(xué)
碩士
2. 內(nèi)功和外功
1)內(nèi)功
統(tǒng)計學(xué)
線性代數(shù)
微積分
算法和數(shù)據(jù)結(jié)構(gòu)
機器學(xué)習(xí)模型
特征工程
自然語言處理
分布式計算
。..
2) 外功
C/C++/java
Pyton/R/Matlab
Hadoop/Hive
Spark/Mlib
/Mahout/Tensorflow/Caff
SASS/SPSS
Weka/Stat
MySQL/HBase/MongoDB
。..
live主認(rèn)為高效的方法是先學(xué)會如何用,然后在學(xué)習(xí)如何用好。
也就是先學(xué)習(xí)外功,再慢慢彌補內(nèi)功。
如果只專注內(nèi)功而忽略外功,很容易成為理論家,而不會實際應(yīng)用。
數(shù)學(xué)基礎(chǔ):
機器學(xué)習(xí),統(tǒng)計學(xué)習(xí)符號,能夠看懂技術(shù)書籍上的推導(dǎo)證明
參考學(xué)習(xí)路線圖。
(1,2,3,4,5)完成5條路線可以勝任大部分的應(yīng)用。
3. 算法工程師不可代替性
1)非增刪改查開發(fā)接口等體力活
2)大腦價值大于代碼價值
3)技術(shù)業(yè)務(wù)兩手抓,容易成為項目核心
4)行業(yè)熱點,不懂技術(shù)的老板也知道大數(shù)據(jù)重要
5)如何量化不可代替性,工作交接時間長
成長性高
待遇高,5年以后薪資成長迅猛
有機會接觸到更多IT大牛
大多數(shù)ACM獲獎的應(yīng)屆生選擇算法崗位
挑戰(zhàn)性極強,工作難度大
會隨著大數(shù)據(jù)熱潮變得搶手
4. 如何快速成長
1)從外功入手,兼顧內(nèi)功修煉
《集體智慧編程》+《統(tǒng)計基本方法》
所見即所得,有實際反饋。
2)這是工科,不是理科,因此需要更多實際項目的訓(xùn)練
LeetCode + Kaggle
需要更多練習(xí),接近實際的練習(xí)。
leetcode訓(xùn)練傳統(tǒng)算法
Kaggle數(shù)據(jù)挖掘競賽(特征工程,大于學(xué)習(xí)模型本身的重要性)
3) 訓(xùn)練自己快速閱讀paper的能力
機器學(xué)習(xí)相關(guān)的期刊的名稱。
比如深度學(xué)習(xí),可以通過期刊了解到新等模型體系,可以有針對性的做一些學(xué)習(xí)。
5.算法崗面經(jīng)
C/C++
1.白板編程:反轉(zhuǎn)二叉樹,單鏈表中刪除特定值的節(jié)點。
2.Vector空間的增長方式,容器是否線程安全,map的時間空間復(fù)雜度,allocator原理,string內(nèi)存分配。
3.父類和子類中構(gòu)造函數(shù)以及析構(gòu)函數(shù)調(diào)用順序
4.引用和指針的區(qū)別,右值引用的特點以及應(yīng)用場景(移動構(gòu)造函數(shù)),性能提升原因
5.解釋深拷貝和淺拷貝并說明應(yīng)用場景 (自定義拷貝構(gòu)造函數(shù))
6.C++的優(yōu)勢與劣勢,如何看待C++中繁多的特性
C++11 和C++14標(biāo)準(zhǔn)
算法與數(shù)據(jù)結(jié)構(gòu)
1. 分治,快排思想:求第k大數(shù)(中位數(shù))
2. 堆,優(yōu)先隊列:找出出現(xiàn)最多的top100個值
3. 動態(tài)規(guī)劃:數(shù)字金字塔,求兩個字符串的編輯舉例,最長不下降子序列
4. 并查集:求好友圈個數(shù),注意路徑壓縮優(yōu)化
5. 線段樹,樹狀數(shù)組: 區(qū)間更新和查詢
6. KMP,AC自動機:海量字符串檢索比較
Python
1. 數(shù)據(jù)分析:numpy,scipy,sklearn, pandas, matplotlib
2. 爬蟲: requests, urllib, scrpay, beautifulsoup, selenium, 中文編碼
3. 白板編程:重新實現(xiàn)filter, map, reduce, 反轉(zhuǎn)二叉樹
4. Python的優(yōu)勢與劣勢,分析為何GIL帶來影響。如何解決
如果是初入門可以看廖雪峰的博客進(jìn)行學(xué)習(xí),否則看官方文檔。
統(tǒng)計學(xué):
1. 量化統(tǒng)計模型結(jié)果好壞(準(zhǔn)確,召回,ROC,AUC, F1-Measure)
2. 樣本于理論推測的偏差:卡方檢驗 X^2 = sigma ((A-T)^2/T)
3. 比較兩個變量波動性 變異系數(shù) CV = sigma(x) / E(x) = STD(x) / AVG(x)
4. 正態(tài)分布N(u, keshi^2) 如何檢驗正態(tài)分布
閱讀課本。
數(shù)據(jù)挖掘:
1. 介紹Logistics Regression, Random Forest, GBDT并分析其優(yōu)缺點
2. 闡述L1和L2正則項并做比較
3. 如何解決推薦系統(tǒng)冷啟動問題
*4. 特征工程:可用性評估,采樣,無量綱化, PCA/LDA, 衍生變量
5. 各個模型的損失函,數(shù)牛頓學(xué)習(xí)法,SGD如何訓(xùn)練
6. 如何生產(chǎn)標(biāo)簽并構(gòu)造用戶畫像(word2vec, kmeans, LDA, TF-IDF)
【live主認(rèn)為特征工程是最重要的】
量化合格標(biāo)準(zhǔn)
語言:C++/Java/Python
能使用擅長的語言造輪子,寫爬蟲,數(shù)據(jù)分析和挖掘
算法和數(shù)據(jù)結(jié)構(gòu):以獨立完成Leetcode為佳
(poj, zoj訓(xùn)練)
統(tǒng)計:熟悉基本統(tǒng)計方,法要有自己完整的統(tǒng)計體系。
指標(biāo)分析-》提出猜想-》驗證-》結(jié)論-》模型
機器學(xué)習(xí):熟悉常見模型和特征工程方法
同樣要有自己完整的特征工程體系,對模型優(yōu)劣有基礎(chǔ)認(rèn)識,
以純手工實現(xiàn)邏輯回歸為佳
美團(tuán)點評技術(shù) - 《機器學(xué)習(xí)中的數(shù)據(jù)清洗與特征處理綜述》 http://tech.meituan.com/machinelearning-data-feature-process.html
使 sklearn做特征 程 http://blog.csdn.net/xw_classmate/article/details/51331787
Max Kuhn / Kjell Johnson - Applied Predictive Modeling
Trevor Hastie / Robert Tibshirani / Jerome Friedman - Elements of Statistical Learning
-
工程師
+關(guān)注
關(guān)注
59文章
1570瀏覽量
68514 -
算法
+關(guān)注
關(guān)注
23文章
4610瀏覽量
92859
發(fā)布評論請先 登錄
相關(guān)推薦
評論