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