總結 從小白到機器學習入門

2021-08-15 15:07:04 字數 2511 閱讀 6326

2023年是進步比較快的一年,學到了很多東西,找到了自己喜歡的方向,朝著方向不斷努力;第一次接觸到人工智慧,機器學習領域,有導師帶著做專案,參賽,實習,繼續自我提公升。

第一次接觸到人工智慧領域是在3月份,選了人工智慧這門課,算是半個科班生吧,教材比較枯燥,老師講得也比較單調,上到後面基本上就只有幾個人在聽了。但是內容涉及比較全面,包含了離散數學的邏輯推理(斷言,子句),搜尋演算法(a*演算法),粗糙集(上界,下界),遺傳演算法,感知機等等的。也不可能面面俱到講得很詳細,大部分都是相當於科普一樣講解一下公式,有的部分會講解推一推導數學公式,但是也很難記得住,畢竟老師是數學專業的,我們不是。

轉折點應該是在乙個月後,老師鼓勵我們都去參加比賽,參賽可以當作實驗課作業提交,於是我也懵懵懂懂地報了名。剛開始的時候簡直崩潰,機器學習的演算法全都沒接觸過,看不懂原理,看不懂公式,無從下手。於是自己從校門口的二手書店買了本《機器學習實戰》,用了半個月時間擼完了,擼完之後才算是有點明白機器學習是什麼東東。於是就開始直接上手比賽專案了,邊乾邊學,用的也是廣為人知的python+sklearn,直接呼叫api,套資料,出結果。

剛剛開始什麼都不懂,不懂得做特徵工程,不懂得最優化,只是直接套用演算法,結果不好就直接換另一種,也沒有去分析為什麼效果不好原因是什麼。所以就是導致了只停留在應用的層次,甚至連應用都算不上,因為壓根就沒有對模型進行優化,模型還沒有擬合就直接被捨棄了。於是就開始慢慢的增加學習的深度,繼續鑽研演算法的原理。上網看部落格,奔走於圖書館和宿舍之間,看了很多資料,總算是把幾個基本模型的演算法邏輯弄清楚了,特別熟悉的是樹結構的模型(id3,c4.5,gbdt,隨機森林)。因為決策樹的(拓展)模型引數比較少,一般不需要調參,於是對於當時初學的我來說比較鍾愛。況且現在回想起來,當時專案的特徵也是真的少。

演算法熟悉了點之後,就開始全身心投入到專案中。機票**市場的分析**,**未來的機票銷售量。說到回歸,應該說應用場景是非常廣泛的,在機器學習當中也佔據了不少的分量,但是回歸想要做好,也是不容易的。不過有所進步的是懂得了剖析資料,根據資料的特點設計特徵,效果也算是有所好轉,具體的均方誤差已經記不得了,但是對於小白來說已經是一大進步了。

特徵工程是機器學習方面乙個非常重要的步驟,資料排第一,特徵工程就排第二,演算法模型是沒辦法有太大提公升的,所以最後才選模型。正因為這一步驟重要,所耗費的時間也很多,於是我花費了大概乙個多月的時間去造特徵,找資料規律,實驗,調參擬合,到最後連做夢都夢見了自己在造特徵,已經到了這種醉生夢死的地步了。到最後因為實驗說明了一切,因為自己還不具備數學推導分析的能力,只能迷信於實驗的結果,就選了大概20來個特徵,大概思路就是平均銷量『』昨日的銷量、周同日銷量、圖的出度和入度等等的特徵。放在今天來理解的話,可以視為時間序列的**,使用馬爾可夫鏈或是rnn都是可以解決的。

除了特徵工程,另外比較重要的就是要回歸到原始資料當中,資料往往具有大量的雜訊、缺失值,於是就開始了清洗資料的階段,於是又過了半個月。折騰來折騰去還是決定直接丟掉缺失的資料,用其他方法補齊都是價效比不高的做法。然後就到了選模型調引數了,後面也沒做太大改動,效果差不多就提交作品了,順利進了決賽。決賽由於時間衝突所以沒去現場答辯,只得了三等獎。這整個過程還得感謝導師的悉心指導,明確的指引讓我少走了很多彎路。

這前前後後經過了四五個月的時間,學到了很多進步了很多,但其實還沒算入門,因為到現在為止我還只是會呼叫api而已,大部分演算法也講不清楚,為什麼這個模型出來結果好也沒辦法分析清楚。可能這就是速成帶來的危害之一。於是我開始自己深入鑽研原理,通過資料和部落格。沒有專案只通過看資料自學是比較零散的,知識點很多,學一下東邊,學一下西邊,到頭來什麼都沒學會。

這時候準備秋招了,我也跟風投了大廠,也有自己一邊在找實習。後來就找到了家實習,大資料初創公司,在裡面做爬蟲,每天就是爬不同的**,做不同**的介面,偶爾**html結構變了還要改介面。剛開始還很有熱情,越到後來就越感到無趣無聊。也正是這個時候,公司來了位cto,有機器學習背景,開始改變公司的發展規劃,要安排人做資料探勘的應用,他剛好看了我的簡歷,就把我安排過去做文字資料的分析和挖掘了。

先後負責了公司的幾個小專案,要素提取,文字相似度,文字分類。有專案邊做邊學是進步特別快的,比自己盲目的學要好多了,因為多了乙個目標,你只有朝著目標不斷前進,才能找到專案優化的方法,同時cto直接一對一指導工作,讓我事半功倍。現在回想一下,還多虧了他我才能走到今天,否則我可能已經放棄了機器學習了,感謝命運的安排。

從專案中應用的技術領域來看,我開始步入了nlp方向,是機器學習的下一級應用方向,同時也往深度學習慢慢拓展。不過我本人的數學基礎不算特別好,有很多公式還沒理解透徹,所以在深度學習方向學得比較慢,反而在傳統機器學習和nlp上面有了一定的造詣。在這裡主要講一下nlp的學習過程,第一件事無疑是中文分詞。從剛剛接到任務開始,什麼都不懂,開始找資料,看部落格,一點一點的開始學,對於中文分詞可謂是又愛又恨。作為半個科班生,也不全是科班生,不知道有什麼現成的工具可以用,於是一開始就精讀了每一篇中文分詞的文章,基於詞典的,基於概率的分詞方法都看透了一遍了,還準備要擼起袖子自己寫的,結果才找到了一系列nlp工具(ansj,jieba等等)。但是也有好處,基礎就先築好了,上面蓋的樓層也穩固了。

從去年3月份開始,到現在,將近一年的時間,我自認為這個成績可以有所交代了,畢竟還沒有正式畢業,還沒拿到畢業證,還是個實習生的身份,還有很長的路要走。在接下來的工作和學習當中還是要嚴格要求自己,多點探索原因,才能夠更快的進步。

python從小白到入門 2

1 判斷語句 if elif else 後面不要忘記加 下面是 塊,必須要進行 縮排,判斷時一般用肯定句。weather sunny if weather rainy print 在家學習 elif weather sunny print 去釣魚 else print 逛街 2 if後面結果是tru...

入門程式設計師 從小白到大神

嗯哼,不知道怎麼開頭啊。2017年3月16日今天第一次註冊csdn部落格還是很激動的,本人在校大二程式小白,懷著對程式設計師的好奇在高考後毅然選擇了軟體工程這條不歸路。雖然我已經大二了,但對於軟體開發,程式設計什麼的一無所知。看見電影裡的黑客高超的電腦技術我還是非常羨慕的。所以在今天我再也坐不住了,...

redis從小白到大佬

簡單的說redis是一種在記憶體中儲存資料的資料庫,其內部採用 key value的形式進行儲存。redis的讀取速度非常快。因為它與mysql等常規資料庫不同,不用與硬碟互動來讀取資料。另外,redis 也經常用來做分布式鎖。redis 提供了多種資料型別來支援不同的業務場景。除此之外,redis...