ACM演算法與數據挖掘,機器學習的演算法有沒有關係,有沒有幫助?
01-04
題主大二,以後想要做數據挖掘和機器學習的演算法工程師,現在在搞ACM,但不為比賽,只是想通過ACM來幫助自己以後學習數據挖掘的演算法,這樣做有沒有幫助,意義?
意義不大。想搞機器學習就直接去學機器學習,看書看論文。
機器學習主要是概率論,線性代數,統計學,凸優化理論和方法,偶爾會涉及到一點點動態規劃和樹。
而acm的比賽內容覆蓋圖論,數據結構,組合數學,數論,計算幾何,動態規劃,離散數學,字元串演算法。主要是考察比較傳統的確定性演算法為主。
感性地估量的話,花在acm上的努力的5-8%會對機器學習有幫助。其實做好ACM對未來發展是有幫助的,無論做什麼行業。。如果未來想做數據挖掘相關行業,提前看看相關的書~我覺得題主所說的兩者並不衝突。
另外可以看我的專業。。。跟CS毛關係沒有,另外SVM懂一點兒做過點兒工程上的東西,另外翻譯過MOOC里機器學習的一部分的字幕。。。
ACM水平不上不下,進不去世界決賽的那種。。。也沒找互聯網類的專業,做的是偏晶元,CPU,量子物理什麼的。。。之類的東西。
在樓上 @魯靈犀 手下被「坑」過幾天。。。
私以為,ACM其實鍛煉的是快速代碼實現能力,邏輯分析能力,常用演算法理解能力,數據結構和數學能力,大概就是個大學版的奧數,所以,不論幹嘛,都有用,前提是工科。
另外,現在的CS上學的時候,不搞ACM,難道搞妹紙么。。。如果是剛入門可以先看看cousera上jiaweihan的cluster,然後再來思考這個問題。
有幫助,但沒有非常必然的聯繫,如果你抱著 我要學好機器學習,所以我要刷acm 的態度,我建議你不要這麼做,acm更多的是訓練你的邏輯思考能力,是一種軟實力的訓練方法,這種題目做多了,當然對做機器學習是有幫助的,但不是直接的關係,有些類似於你數學學好了,對學物理是有幫助的一樣。要學好機器學習,我建議可以針對性的從優化問題,統計學等學起,好好把基礎打好,會更有幫助一些,當然acm也做得好,會有錦上添花的效果。
有幫助的。
估計時間複雜度,優化運算元。
acm里考到的演算法經常會作為一個運算元出現,還很可能在核心循環里。沒學過acm可能寫個n^2,n^3之類的,學過可能就能優化到nlgn。最後程序運行時間差個幾十倍,上百倍很正常。你要有時間就學,沒時間不學也罷。大公司里你設計好演算法後,如果有價值,會有acm狗幫你重寫的。你自己就是acm狗的話,會方便很多倒是真的。我剛好做過acm,最近也正在看機器學習,說一下我的感受。
看了其他人的回答,感覺不是很符合我的感受。其實看起來是沒有幫助,但是做acm的提升不僅僅是圖論,幾何等等這些具體的東西,還有個人的能力,比如邏輯思維,理解代碼的能力等,這些在學習很多東西都是用的到的。
我現在看書上的演算法,基本沒有不能理解的,所以可以把學習的重點放到理解演算法的核心思想上,如果連演算法理解都不是那麼順暢,多多少少會有可能轉移學習的重點,因為你需要花時間去理解。不過,如果專門是為了學習這些知識,並不建議去學acm。。。因為花的時間反而有很多是用不上的推薦閱讀:
※機器學習模型的泛化能力不足,有什麼改進思路?
※目前,機器翻譯準確率已經提高到 85% 左右,再進一步提升的主要難點在哪?
※罰函數法和拉格朗日乘子法的區別?
※為什麼基於貝葉斯優化的自動調參沒有大範圍使用?