如何踏上人工智能之路(機(jī)器學(xué)習(xí)篇)
如何打開(kāi)機(jī)器學(xué)習(xí)的大門(mén)
AI這個(gè)詞相信大家都非常熟悉了,在幾年人公智能圈子格外熱鬧,先是阿法狗帶了個(gè)好頭,讓大家重新對(duì)人工智能刮目相看。能取得今天這樣的成績(jī)絕非瞬間的爆發(fā)而是多少年日益的積累。今天咱們就來(lái)嘮一嘮如何進(jìn)軍人工智能的***步-機(jī)器學(xué)習(xí)。
我選Python玩AI:
Python語(yǔ)言已經(jīng)非?;鸨耍芯涔旁捳f(shuō)得好,人生苦短,我用Python。在機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域Python已經(jīng)成為了主流,一方面因?yàn)檫@門(mén)語(yǔ)言簡(jiǎn)直太簡(jiǎn)單了,就我個(gè)人而言我搞過(guò)C++也玩過(guò)Java但是學(xué)起來(lái)用起來(lái)相對(duì)來(lái)說(shuō)都比較難(說(shuō)白了。。。就是我比較懶),但是python用起來(lái)簡(jiǎn)直不要太輕松,這也是推薦新手選擇python的原因,非常容易上手,決沒(méi)有惡心到家的指針。另一方面現(xiàn)在無(wú)論是做項(xiàng)目還是搞研究都非常追求效率,絕大多數(shù)情況下,很多代碼都不需要自己從頭到尾實(shí)現(xiàn),而是調(diào)用已經(jīng)非常完善的庫(kù)了,這也是我覺(jué)得python***大的地方,可以很輕松的安裝好一個(gè)想用的庫(kù),用這些庫(kù)幫助我們解決問(wèn)題。
對(duì)于剛?cè)腴T(mén)的同學(xué)來(lái)說(shuō),肯定不會(huì)自己動(dòng)手一步一步的去實(shí)現(xiàn)所有需要的技術(shù)代碼,一個(gè)最直接的學(xué)習(xí)方法就是結(jié)合開(kāi)源的框架,那么可以說(shuō)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的開(kāi)源框架基本都是python接口的,能用這些開(kāi)源框架是我們學(xué)習(xí)的一個(gè)最基本的手段啦,所以重要的事情說(shuō)三遍,python!python!python!
Python科學(xué)計(jì)算庫(kù)-Numpy
說(shuō)到機(jī)器學(xué)習(xí),簡(jiǎn)單來(lái)說(shuō)就是,數(shù)據(jù)輸入進(jìn)來(lái),然后得出一個(gè)想要的結(jié)果。那么在中間我們計(jì)算的是什么呢,為了計(jì)算的高效和方便,通常都是將數(shù)據(jù)轉(zhuǎn)換成矩陣的形式,也就是行作為樣本,列作為特征。那么這些復(fù)雜的矩陣計(jì)算我們?cè)撛趺礃油瓿赡?這里我們就需要Numpy了,它可以幫助我們很輕松的完成一系列的計(jì)算。如果你要跟數(shù)據(jù)打交道,那么Nmupy你肯定離不開(kāi)了。
Python數(shù)據(jù)分析處理庫(kù)-Pandas
在做任何一個(gè)機(jī)器學(xué)習(xí)算法之前都需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,也就是說(shuō)數(shù)據(jù)是不純凈的,首先我們需要提取特征,再去除一些錯(cuò)誤的有問(wèn)題的樣本,那么這些該快速完成呢,如果你喜歡偷懶要快速做完這些苦活,那么Pandas將會(huì)是一個(gè)非常不錯(cuò)的選擇,在這里,你只需要簡(jiǎn)單的幾行代碼就可以對(duì)數(shù)據(jù)做好預(yù)處理的操作。
Python數(shù)據(jù)分析處理庫(kù)-Matplotlib
數(shù)據(jù)分析和機(jī)器學(xué)習(xí)都離不開(kāi)可視化展示,因?yàn)闊o(wú)論是做項(xiàng)目交付還是搞算法研究,都需要對(duì)自己的成果心里有個(gè)數(shù)吧,那么在這里我們就可以用Matplotlib來(lái)完成這個(gè)事,還是簡(jiǎn)單的幾行代碼,就能把結(jié)果輕松展示出來(lái)。
Python機(jī)器學(xué)習(xí)庫(kù)-Scikit-Learn
這個(gè)武器十分有殺傷力,它就是我們機(jī)器學(xué)習(xí)必備的家伙,在這里我們可以選擇任何你喜歡的機(jī)器學(xué)習(xí)算法,然后把數(shù)據(jù)輸入進(jìn)來(lái),直接RUN就可以迭代計(jì)算了,簡(jiǎn)單太自動(dòng)了,這個(gè)庫(kù)十分強(qiáng)大,封裝了大量機(jī)器學(xué)習(xí)算法以及評(píng)估和預(yù)處理等操作。輕輕松松幾行,一個(gè)復(fù)雜的機(jī)器學(xué)習(xí)算法已經(jīng)在跑了。
數(shù)據(jù)與實(shí)戰(zhàn)
在機(jī)器學(xué)習(xí)這條路上,我們一定會(huì)跟數(shù)據(jù)打交道,這里十分推薦大家找一些真是的案例數(shù)據(jù),用這些python庫(kù)來(lái)實(shí)際的玩一玩。因?yàn)檫@些庫(kù)都是開(kāi)源的,咱們也可以自己打一些斷點(diǎn),從流程上一步一步走完整個(gè)機(jī)器學(xué)習(xí)的算法。
有很多同學(xué)都問(wèn)過(guò)我,基礎(chǔ)很一般能入門(mén)機(jī)器學(xué)習(xí)嗎,聽(tīng)說(shuō)機(jī)器學(xué)習(xí)對(duì)數(shù)學(xué)的要求很高,這該怎么辦呀?說(shuō)實(shí)話機(jī)器學(xué)習(xí)就是數(shù)學(xué)公式組成的,但是如果不搞科研的話我覺(jué)得能把流程和應(yīng)用搞懂已經(jīng)足夠用了,并不推薦新手直接從數(shù)學(xué)開(kāi)始進(jìn)軍,因?yàn)槲矣X(jué)得這個(gè)活太枯燥了,不見(jiàn)得大家都能有這種持之以恒的毅力堅(jiān)持住。我覺(jué)得可以從案例和應(yīng)用下手,先了解算法從頭到尾做了一件什么事以及能用在什么地方,再回過(guò)頭來(lái)去搞算法的推導(dǎo)效果應(yīng)該會(huì)更好的、
學(xué)習(xí)路線圖
這個(gè)路線圖是針對(duì)咱們要入門(mén)的同學(xué)制定的,已然成神的同學(xué)們可不使用哦。
(一)搞定Python:
千萬(wàn)別花個(gè)把個(gè)月轉(zhuǎn)攻這個(gè),因?yàn)檎Z(yǔ)言只是一個(gè)工具,我們完全可以邊用邊學(xué),建議快速掌握基本語(yǔ)法,邊練邊學(xué)。
(二)機(jī)器學(xué)習(xí)算法:
機(jī)器學(xué)習(xí)有很多經(jīng)典的算法,咱們不妨從最簡(jiǎn)單的K近鄰開(kāi)始,用python實(shí)現(xiàn)出這些經(jīng)典的機(jī)器學(xué)習(xí)算法從流程的角度熟悉這些算法的原理。
(三)熟悉這些庫(kù):
如果大家想精通這些庫(kù),我覺(jué)得難度還是蠻大的,不妨先熟悉這些庫(kù)能做什么,等咱們實(shí)際用的時(shí)候再去查語(yǔ)言就完全來(lái)得及。因?yàn)槲矣昧诉@么久大部分函數(shù)還得每次用的時(shí)候現(xiàn)查,即便我知道該這么用還是會(huì)不放心查一查。
(四)案例與實(shí)戰(zhàn):
用真實(shí)數(shù)據(jù)來(lái)玩算法是學(xué)習(xí)的***方式。咱們可以找一些真實(shí)的數(shù)據(jù)來(lái)練練這些機(jī)器學(xué)習(xí)算法,先搞定算法的原理,再把數(shù)據(jù)應(yīng)用進(jìn)去,然后就是一步一步debug完成整個(gè)項(xiàng)目。
【本文是51CTO專欄作者唐宇迪的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)注明出處】















 
 
 









 
 
 
 