两次比赛的感想
三四月份打了個華為編程大賽的醬油,有一些心得和想法,長了一些經驗教訓,也學到了不少的東西。一直沒抽出空來記一下,學習就是不斷總結不斷進步的過程,不然做了就丟了,不總結,恐怕永遠也不會進步。
總體來說,從研一上期參加的天池大數據競賽,到這次的編程大賽,還是有不少收獲的。但是問題也很顯然:一直沒有正兒八經地去用到機器學習的算法去做,而是用簡單的一些模型,這個方面還需要大大改進。天池的數據比賽,完了我才知道日期還可以反演,數據分析師真的是很聰明的存在,比如我逛天池發現,本來官方只給出了每個品牌每天的上牌量,以及當天的Weekday,這也正是我之后放棄繼續攻題的原因,只給兩個特征,要預測一年的數據,玩毛?我就想看看他們怎么玩,然而讓我開眼界的是:這些大神們通過日期反演,竟然憑空添加了20多個特征:比如當天是否是節假日,是一個月的第幾天,一周的第幾天,一年的第幾周,一個月的第幾周,是否是節假日,是節假日的第幾天,是離放假還有幾天,收假之后的第幾天,甚至是農歷的什么日子等等。我真是開眼了。然后有大神用的模型,比如xgboost,lgb,這些都是很常用的。以及將模型進行集成,然后進行預測。所以今后的工作重點是:應用機器學習經典算法到實際的項目中,要經常去論壇等地方參考別人的方法,不要坐井觀天,閉門造車,多去做,多看,多學。
然后華為的比賽中,由于編程大賽不允許調用第三方庫,這就十分痛苦了,那么要是要用機器學習的算法,難道還要自己寫嗎,那難度確實有點大了,可能還是能力不足,最后華為查代碼查出好多同志的重復代碼,也不知道是怎么解決的。最開始的時候都搞不清楚華為這個比賽是怎么提交答案的,華為的Dev-Cloud也不知道怎么用,先按自己的想法去把訓練數據騷操作處理了一通,然后發現好像沒有起到什么作用,關鍵就是有想法,但是要實現起來真的有點難,而且numpy,pandas之類的也不能用,事實證明還是要好好學習numpy,pandas之類的庫,因為要處理大量數據,你還要去碼底層代碼,真的是十分痛苦啊。。。總之還是用python練了一下手,熟悉了一下用到的python的一些基本操作。
首先一個sys模塊是很重要的,因為要輸入參數,這個模塊可以讀取在控制臺輸入的參數,用sys.argv可以讀取參數,注意sys.argv[0]是程序名,然后才依次是參數。sys還可以查看當前平臺,可以用path查看第三方擴展模塊。詳細可以看https://www.cnblogs.com/vman/p/5555559.html
然后是python可以通過Linux中直接終端運行,通過python 文件名的方式,python運行方式很多,一般可以在交互式解釋器,后臺運行python腳本,或者集成式開發環境運行。
然后是必要的,python肯定要用到函數,類,所以這個應該要很熟悉才行。
詳細的看廖雪峰的教程就行。
還有必須要對算法了解,比如比賽中用到的01背包算法,這是屬于動態規劃的一個算法,一直說把算法導論讀了也沒有讀完,所以人啊,還是要有執行力。。
要學的很多,數據結構要看看,然后排序算法等等一些經典的算法,不看是不行的,你看華為歷年的機試題目,都和這些基本的密不可分。
所以接下來的任務也很顯然:要做實際的比賽項目練習,要把算法類基本的東西吃透。加油吧!一年。
總結
- 上一篇: 个人选择鼠标过程总结
- 下一篇: Pr 入门教程:了解基本用户界面