|
什么是機(jī)器學(xué)習(xí)呢? 在開篇之前,想和大家聊一下機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的關(guān)系。 如上圖所示數(shù)據(jù)挖掘只是機(jī)器學(xué)習(xí)中涉獵的領(lǐng)域之一,機(jī)器學(xué)習(xí)還有模式識(shí)別、計(jì)算機(jī)視覺、語音識(shí)別、統(tǒng)計(jì)學(xué)習(xí)以及自然語言處理等。
機(jī)器學(xué)習(xí)即 ML,是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科。專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能。
機(jī)器學(xué)習(xí)作為人工智能研究較為年輕的分支,機(jī)器學(xué)習(xí)也分監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí),同時(shí)隨著人工智能越來越被人們重視和越熱,深度學(xué)習(xí)也是機(jī)器學(xué)習(xí)的一個(gè)新的領(lǐng)域。 機(jī)器學(xué)習(xí),從知識(shí)清單開始 我們第一天學(xué)開車的時(shí)候一定不會(huì)直接上路,而是要你先學(xué)習(xí)基本的知識(shí),然后再進(jìn)行上車模擬。 只有對知識(shí)有全面的認(rèn)知,才能確保在以后的工作中即使遇到了問題,也可以快速定位問題所在,然后找方法去對應(yīng)和解決。 所以我列了一個(gè)機(jī)器學(xué)習(xí)入門的知識(shí)清單,分別是機(jī)器學(xué)習(xí)的一般流程、十大算法、算法學(xué)習(xí)的三重境界,以此來開啟我們的學(xué)習(xí)之旅。 一、機(jī)器學(xué)習(xí)的基本流程 引用大佬的解釋: A computer program is said to learn fromexperience E with respect to some task T and some performance measure P,if itsperformance on T,as measured by P,improves with experience E. —Tom Mitchell 簡單來說,機(jī)器學(xué)習(xí)就是針對現(xiàn)實(shí)問題,使用我們輸入的數(shù)據(jù)對算法進(jìn)行訓(xùn)練,算法在訓(xùn)練之后就會(huì)生成一個(gè)模型,這個(gè)模型就是對當(dāng)前問題通過數(shù)據(jù)捕捉規(guī)律的描述。然后我們將模型進(jìn)一步導(dǎo)入數(shù)據(jù),或者引入新的數(shù)據(jù)集進(jìn)行評估,根據(jù)結(jié)果的好壞反過來調(diào)整算法,形成反饋和優(yōu)化閉環(huán)。整個(gè)過程機(jī)器在不斷的學(xué)習(xí)、訓(xùn)練和優(yōu)化迭代,這個(gè)也是機(jī)器學(xué)習(xí)強(qiáng)大的地方。 二、機(jī)器學(xué)習(xí)的十大算法 為了進(jìn)行機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘任務(wù),數(shù)據(jù)科學(xué)家們提出了各種模型,在眾多的數(shù)據(jù)挖掘模型中,國際權(quán)威的學(xué)術(shù)組織 ICDM(the IEEE International Conference on Data Mining)評選出了十大經(jīng)典的算法。 按照不同的目的,我可以將這些算法分成四類,以便你更好的理解。 分類算法:C4.5,樸素貝葉斯(Naive Bayes),SVM,KNN,Adaboost,CART 聚類算法:K-Means,EM 關(guān)聯(lián)分析:Apriori 連接分析:PageRank 1. C4.5 C4.5 算法是得票最高的算法,可以說是十大算法之首。C4.5 是決策樹的算法,它創(chuàng)造性地在決策樹構(gòu)造過程中就進(jìn)行了剪枝,并且可以處理連續(xù)的屬性,也能對不完整的數(shù)據(jù)進(jìn)行處理。它可以說是決策樹分類中,具有里程碑式意義的算法。 2. 樸素貝葉斯(NaiveBayes) 樸素貝葉斯模型是基于概率論的原理,它的思想是這樣的:對于給出的未知物體想要進(jìn)行分類,就需要求解在這個(gè)未知物體出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為這個(gè)未知物體屬于哪個(gè)分類。 3. SVM SVM 的中文叫支持向量機(jī),英文是 SupportVector Machine,簡稱 SVM。SVM 在訓(xùn)練中建立了一個(gè)超平面的分類模型。 4. KNN KNN 也叫 K 最近鄰算法,英文是 K-Nearest Neighbor。所謂 K 近鄰,就是每個(gè)樣本都可以用它最接近的 K 個(gè)鄰居來代表。如果一個(gè)樣本,它的 K 個(gè)最接近的鄰居都屬于分類 A,那么這個(gè)樣本也屬于分類 A。 5. AdaBoost Adaboost 在訓(xùn)練中建立了一個(gè)聯(lián)合的分類模型。boost 在英文中代表提升的意思,所以 Adaboost 是個(gè)構(gòu)建分類器的提升算法。它可以讓我們多個(gè)弱的分類器組成一個(gè)強(qiáng)的分類器,所以 Adaboost 也是一個(gè)常用的分類算法。 6. CART CART 代表分類和回歸樹,英文是 Classificationand Regression Trees。像英文一樣,它構(gòu)建了兩棵樹:一顆是分類樹,另一個(gè)是回歸樹。和C4.5 一樣,它是一個(gè)決策樹學(xué)習(xí)方法。 7. Apriori Apriori 是一種挖掘關(guān)聯(lián)規(guī)則(association rules)的算法,它通過挖掘頻繁項(xiàng)集(frequentitem sets)來揭示物品之間的關(guān)聯(lián)關(guān)系,被廣泛應(yīng)用到商業(yè)挖掘和網(wǎng)絡(luò)安全等領(lǐng)域中。頻繁項(xiàng)集是指經(jīng)常出現(xiàn)在一起的物品的集合,關(guān)聯(lián)規(guī)則暗示著兩種物品之間可能存在很強(qiáng)的關(guān)系。 8. K-Means K-Means 算法是一個(gè)聚類算法。你可以這么理解,最終我想把物體劃分成 K 類。假設(shè)每個(gè)類別里面,都有個(gè)“中心點(diǎn)”,即意見領(lǐng)袖,它是這個(gè)類別的核心。現(xiàn)在我有一個(gè)新點(diǎn)要?dú)w類,這時(shí)候就只要計(jì)算這個(gè)新點(diǎn)與K 個(gè)中心點(diǎn)的距離,距離哪個(gè)中心點(diǎn)近,就變成了哪個(gè)類別。 9. EM EM 算法也叫最大期望算法,是求參數(shù)的最大似然估計(jì)的一種方法。原理是這樣的:假設(shè)我們想要評估參數(shù) A 和參數(shù) B,在開始狀態(tài)下二者都是未知的,并且知道了 A 的信息就可以得到 B 的信息,反過來知道了 B 也就得到了 A??梢钥紤]首先賦予A 某個(gè)初值,以此得到 B 的估值,然后從 B 的估值出發(fā),重新估計(jì) A 的取值,這個(gè)過程一直持續(xù)到收斂為止。 EM 算法經(jīng)常用于聚類和機(jī)器學(xué)習(xí)領(lǐng)域中。 10. PageRank PageRank 起源于論文影響力的計(jì)算方式,如果一篇文論被引入的次數(shù)越多,就代表這篇論文的影響力越強(qiáng)。同樣 PageRank 被 Google 創(chuàng)造性地應(yīng)用到了網(wǎng)頁權(quán)重的計(jì)算中:當(dāng)一個(gè)頁面鏈出的頁面越多,說明這個(gè)頁面的“參考文獻(xiàn)”越多,當(dāng)這個(gè)頁面被鏈入的頻率越高,說明這個(gè)頁面被引用的次數(shù)越高?;谶@個(gè)原理,我們可以得到網(wǎng)站的權(quán)重劃分。 算法可以說是機(jī)器學(xué)習(xí)的靈魂,也是最精華的部分。這 10 個(gè)經(jīng)典算法在整個(gè)機(jī)器學(xué)習(xí)領(lǐng)域中的得票最高的,后面的一些其他算法也基本上都是在這個(gè)基礎(chǔ)上進(jìn)行改進(jìn)和創(chuàng)新。今天你先對十大算法有一個(gè)初步的了解,你只需要做到心中有數(shù)就可以了。 三、機(jī)器學(xué)習(xí)的三大境界 1. 掌握算法入口出口 第一重境界,將算法本身是做黑箱,在不知道算法具體原理的情況下能夠掌握算法的基本應(yīng)用情景(有監(jiān)督、無監(jiān)督),以及算法的基本使用情景,能夠調(diào)包實(shí)現(xiàn)算法。 2. 理解原理,靈活調(diào)優(yōu) 第二重境界則是能夠深入了解、掌握算法原理,并在此基礎(chǔ)上明白算法實(shí)踐過程中的關(guān)鍵技術(shù)、核心參數(shù),最好能夠利用編程語言手動(dòng)實(shí)現(xiàn)算法,能夠解讀算法執(zhí)行結(jié)果,并在理解原理的基礎(chǔ)上對通過調(diào)參對算法進(jìn)行優(yōu)化。 3. 融會(huì)貫通,設(shè)計(jì)算法 最后一重境界,實(shí)際上也是算法(研發(fā))工程師的主要工作任務(wù),即能夠結(jié)合業(yè)務(wù)場景、自身數(shù)學(xué)基礎(chǔ)來進(jìn)行有針對性的算法研發(fā),此部分工作不僅需要扎實(shí)的算法基本原理知識(shí),也需要扎實(shí)的編程能力。 總結(jié) 今天我列了下學(xué)習(xí)機(jī)器學(xué)習(xí)你要掌握的知識(shí)清單,只有你對機(jī)器學(xué)習(xí)的流程、算法、原理有更深的理解,你才能在實(shí)際工作中更好地運(yùn)用,祝你在機(jī)器學(xué)習(xí)的路上越走越遠(yuǎn)。
最后,打個(gè)小廣告。CDA推出兩門機(jī)器學(xué)習(xí)精品課,帶你快速入門Python機(jī)器學(xué)習(xí)。 如果你了解Python,想深入學(xué)習(xí)算法和業(yè)務(wù)應(yīng)用,以數(shù)據(jù)挖掘工程師為目標(biāo)的話,可以選擇菜菜老師的《Python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)-sklearn專題》 如果你是想鍛煉編程能力,使用Python手動(dòng)實(shí)現(xiàn)算法,可以選擇菊安醬《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》詳解。
|
|
|