99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀機器學(xué)習(xí)入門必讀:6種簡單實用算法及學(xué)習(xí)曲線、思維導(dǎo)圖
機器學(xué)習(xí)入門必讀:6種簡單實用算法及學(xué)習(xí)曲線、思維導(dǎo)圖
2020-03-26
收藏

作者 | 盧譽聲

大部分的機器學(xué)習(xí)算法主要用來解決兩類問題——分類問題和回歸問題。在本文當(dāng)中,我們介紹一些簡單但經(jīng)典實用的傳統(tǒng)機器學(xué)習(xí)算法,讓大家對機器學(xué)習(xí)算法有一個基本的感性認識。


有的人說機器學(xué)習(xí)入門并不難,有的人會覺得機器學(xué)習(xí)難以理解。那么該如何去學(xué)習(xí)機器學(xué)習(xí)這種技術(shù)與方法呢?在本文當(dāng)中,我們將介紹掌握機器領(lǐng)域知識的學(xué)習(xí)曲線、技術(shù)棧以及常用框架。


01 機器學(xué)習(xí)算法


1. 分類算法


這是一種監(jiān)督學(xué)習(xí)方法。有很多算法幫助我們解決分類問題,比如K近鄰、決策樹、樸素貝葉斯、貝葉斯網(wǎng)絡(luò)、邏輯回歸、SVM等算法。人工神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)也往往用來解決分類問題。這些都是常見和常用的分類算法,只不過不同的算法都有其優(yōu)劣,會應(yīng)用在不同的場景下。


我們舉一個例子。假設(shè)我們知道某個鳥的各個特征,現(xiàn)在要根據(jù)這些特征確定這只鳥屬于哪種鳥類,這就是所謂的分類問題。


首先,我們要收集能收集到的所有的鳥類信息,包括鳥的各種特征以及鳥的種類,其中顏色、體重、翅膀等屬性都屬于特征,而種類則是鳥的標簽。


其次,我們建立的機器學(xué)習(xí)的目的就是讓用戶輸入一個鳥的特征,然后輸出這個鳥的種類,也就是對應(yīng)的標簽。這個過程就是一個根據(jù)鳥的屬性分類的過程,只不過是由計算機自動完成的。


2. 回歸算法


回歸算法也是一種有監(jiān)督學(xué)習(xí)方法。回歸算法來自于回歸分析,回歸分析是研究自變量和因變量之間關(guān)系的一種預(yù)測模型技術(shù)。這些技術(shù)應(yīng)用于預(yù)測,時間序列模型和找到變量之間的關(guān)系。


舉個簡單例子,我們可以通過計算得出在某些情況下服務(wù)器接收請求數(shù)量與服務(wù)器CPU、內(nèi)存占用壓力之間的關(guān)系。


最簡單的回歸算法就是線性回歸,相信大家都對線性回歸有所了解。雖然線性回歸比較簡單,但是越簡單粗暴的算法在面對有些實際問題的時候就越實用。深度學(xué)習(xí)也可以用于解決回歸問題。



3. 聚類算法


聚類算法是一類無監(jiān)督學(xué)習(xí)算法。聚類是研究(樣品或指標)分類問題的一種統(tǒng)計分析方法,同時也是數(shù)據(jù)挖掘的一個重要算法。


聚類分析以相似性為基礎(chǔ),在一個聚類中的模式比不在同一聚類中的模式具有更多的相似性,這是聚類分析的最基本原理。聚類分析的算法可以分成很多類方法,比如劃分法、層次法、基于密度的方法、基于網(wǎng)絡(luò)的方法和基于模型的方法。


最有名的聚類算法就是K-Means(K-均值)算法,是最為經(jīng)典的、基于劃分的聚類方法。該算法的主要思路是以空間中k個點為形心進行聚類,將最靠近它們的對象歸類。通過迭代的方法,逐次更新各簇的形心的值,直至得到最好的聚類結(jié)果。(形心可以是實際的點,也可以是虛擬點)。


通過該算法我們可以將特征相似的數(shù)據(jù)聚合稱為一個數(shù)據(jù)群組,而將特征相差較大的數(shù)據(jù)分開。


4. 關(guān)聯(lián)分析算法


關(guān)聯(lián)分析是除了聚類以外的一種常用無監(jiān)督學(xué)習(xí)方法。用于發(fā)現(xiàn)存在于大量數(shù)據(jù)集中的關(guān)聯(lián)性或相關(guān)性,從而描述了一個事物中某些屬性同時出現(xiàn)的規(guī)律和模式。


關(guān)聯(lián)分析最典型的應(yīng)用就是購物車分析。我們可以從用戶的訂單中尋找經(jīng)常被一起購買的商品,并挖掘這些商品之間的潛在關(guān)系,這樣有助于線上、線下商家指定購買與銷售策略。


最著名的關(guān)聯(lián)分析算法就是Apriori算法和FP-growth算法。Apriori算法就是根據(jù)有關(guān)頻繁項集特性的先驗知識而命名的。它使用一種稱作逐層搜索的迭代方法。而FP-growth是針對Apriori算法的改進算法,通過兩次掃描事務(wù)數(shù)據(jù)庫,把每個事務(wù)所包含的頻繁項目按其支持度降序壓縮存儲到FP-tree中。


在以后發(fā)現(xiàn)頻繁模式的過程中,不需要再掃描事務(wù)數(shù)據(jù)庫,而僅在FP-tree中進行查找即可,并通過遞歸調(diào)用FP-growth的方法來直接產(chǎn)生頻繁模式,因此在整個發(fā)現(xiàn)過程中也不需產(chǎn)生候選模式。該算法克服了Apriori算法中存在的問題,在執(zhí)行效率上也明顯好于Apriori算法,同時能生成有向關(guān)系,比Apriori更為泛用。


5. 集成算法


前面幾節(jié)介紹了常見的機器學(xué)習(xí)算法,但是我們會發(fā)現(xiàn)每個單獨的機器學(xué)習(xí)算法往往只能解決特定場景下的特定問題,如果問題會變得更為復(fù)雜,就難以使用一個學(xué)習(xí)器達到目標。這時候我們就需要集成多個學(xué)習(xí)器,協(xié)同完成機器學(xué)習(xí)任務(wù)。


所謂集成學(xué)習(xí)就是使用一系列學(xué)習(xí)器進行學(xué)習(xí),并使用某種規(guī)則把各個學(xué)習(xí)結(jié)果進行整合,從而獲得比使用單個學(xué)習(xí)器更好的學(xué)習(xí)效果的一種機器學(xué)習(xí)方法。一般情況下,集成學(xué)習(xí)中的多個學(xué)習(xí)器都是同質(zhì)的“弱學(xué)習(xí)器”。


集成學(xué)習(xí)的主要思路是先通過一定的規(guī)則生成多個學(xué)習(xí)器,再采用某種集成策略進行組合,然后綜合判斷輸出最終結(jié)果。


一般而言,通常所說的集成學(xué)習(xí)中的多個學(xué)習(xí)器都是同質(zhì)的“弱學(xué)習(xí)器”。基于該“弱學(xué)習(xí)器”,通過樣本集擾動、輸入特征擾動、輸出表示擾動、算法參數(shù)擾動等方式生成多個學(xué)習(xí)器,進行集成后獲得一個精度較好的“強學(xué)習(xí)器”。



最著名的集成算法就是Boosting類算法,包括AdaBoosting等常用算法。這類算法需要同時訓(xùn)練多個模式,基本思路就是根據(jù)訓(xùn)練時的正確率和錯誤率調(diào)整不同學(xué)習(xí)器的權(quán)重,最終預(yù)測時使用帶權(quán)重的投票法產(chǎn)生最終結(jié)果。


還有一類集成算法Bagging類算法,主要思路是分別訓(xùn)練幾個不同的模型,然后用模型平均的方法做出最終決策。


最著名的Bagging類算法就是隨機森林,該算法還融入了隨機子空間方法,是以決策樹為基礎(chǔ)分類器的一個集成學(xué)習(xí)模型,它包含多個由Bagging集成學(xué)習(xí)技術(shù)訓(xùn)練得到的決策樹,當(dāng)輸入待分類的樣本時,最終的分類結(jié)果由單個決策樹的輸出結(jié)果投票決定。


6. 強化算法


強化學(xué)習(xí)(reinforcement learning)和我們在前面提到的算法不太一樣,其主要用于訓(xùn)練一個可以感知環(huán)境的自制感知器,通過學(xué)習(xí)選擇能達到其目標的最優(yōu)動作。這個很具有普遍性的問題應(yīng)用于學(xué)習(xí)控制移動機器人,在工廠中學(xué)習(xí)最優(yōu)操作工序以及學(xué)習(xí)棋類對弈等。


當(dāng)某個智能體在其環(huán)境中做出每個動作時,施教者會提供獎勵或懲罰信息,以表示結(jié)果狀態(tài)的正確與否。該智能體的任務(wù)就是從這個非直接的,有延遲的回報中學(xué)習(xí),以便后續(xù)的動作產(chǎn)生最大的累積效應(yīng)。

——引用自米歇爾(Mitchell T.M.)《機器學(xué)習(xí)


最著名的增強學(xué)習(xí)算法就是Q-Learning算法。由于增強學(xué)習(xí)算法不在本文討論范疇,并由于其本身的復(fù)雜性,我們在這里只做簡單的介紹但不做深入討論。


02 如何掌握機器學(xué)習(xí)


1. 學(xué)習(xí)曲線


首先,我們必須清楚機器學(xué)習(xí)是計算機科學(xué)中的一個領(lǐng)域,所以要能夠掌握機器學(xué)習(xí),真正通過計算機把機器學(xué)習(xí)應(yīng)用起來是需要以計算機科學(xué)為基礎(chǔ)的。比如要了解基礎(chǔ)的程序設(shè)計語言,至少是Python或者MATLAB,要知道基本的數(shù)據(jù)結(jié)構(gòu),要知道基本的數(shù)據(jù)處理技術(shù),要知道基本的數(shù)據(jù)存儲查詢技術(shù)等。

其次,機器學(xué)習(xí)算法一般都有比較嚴密完善的數(shù)學(xué)原理,如果不能從數(shù)學(xué)的角度去理解機器學(xué)習(xí),我們是無法理解其中一些本質(zhì)核心的東西的,那就永遠只能從使用模型的角度對這個領(lǐng)域淺嘗輒止了。

另外機器學(xué)習(xí)也是一個依靠經(jīng)驗的領(lǐng)域,許多參數(shù)和方法都需要依靠日常的經(jīng)驗積累出來,從而形成一種解決問題的思維和感覺,這樣在利用機器學(xué)習(xí)技術(shù)解決現(xiàn)有問題時會更快、更有效,往往能找到合適的解決方案。



所以機器學(xué)習(xí)是有學(xué)習(xí)曲線的,也許更像一個無限循環(huán)的S形學(xué)習(xí)曲線,一開始學(xué)習(xí)基本的機器學(xué)習(xí)算法,做簡單的實驗非常容易入手。根據(jù)經(jīng)驗,進一步學(xué)習(xí)更多的機器學(xué)習(xí)算法后可能會逐漸迷失在各種機器學(xué)習(xí)模型之中,學(xué)習(xí)難度陡然上升。


當(dāng)你將大多數(shù)經(jīng)典模型融會貫通之后,你又會覺得各種類型的機器學(xué)習(xí)算法變化無非幾類,于是學(xué)習(xí)難度曲線又會變得平滑。但當(dāng)你開始解決實際問題時,就又會陷入陡峭的學(xué)習(xí)曲線中,在攀爬式的學(xué)習(xí)中不斷積累經(jīng)驗。


總而言之,機器學(xué)習(xí)是一個需要不斷進行理論和經(jīng)驗積累的技術(shù),每過一個階段都會遇到相應(yīng)的瓶頸。這不是一成不變的,而是一個需要不斷學(xué)習(xí)實踐的技術(shù)。只有在不斷遇到問題并解決問題后才能不斷前行。


2. 技術(shù)棧


我們把深度學(xué)習(xí)的技術(shù)棧分為3個類別。第1類是基礎(chǔ)數(shù)學(xué)工具,第2類是機器學(xué)習(xí)基礎(chǔ)理論方法,第3類是機器學(xué)習(xí)的實踐工具與框架。我們在這里對這幾類內(nèi)容做一個概述,如果讀者在學(xué)習(xí)過程當(dāng)中發(fā)現(xiàn)有不甚了解的基礎(chǔ)概念或知識時,可以翻看本文尋找你需要的工具和技術(shù)并進行了解,循環(huán)往復(fù)、溫故而知新。


基礎(chǔ)數(shù)學(xué)工具包括高等數(shù)學(xué)、線性代數(shù)、概率論與數(shù)理統(tǒng)計、離散數(shù)學(xué)、矩陣理論、隨機過程、最優(yōu)化方法和復(fù)變函數(shù)等。沒錯,基礎(chǔ)數(shù)學(xué)工具在機器學(xué)習(xí)領(lǐng)域乃至其工程領(lǐng)域必不可少,望讀者能夠?qū)@些知識有一個較為全面的掌握。


機器學(xué)習(xí)基礎(chǔ)理論方法包括決策樹支持向量機、貝葉斯、人工神經(jīng)網(wǎng)絡(luò)、遺傳算法、概率圖模型、規(guī)則學(xué)習(xí)、分析學(xué)習(xí)、增強學(xué)習(xí),等等。


機器學(xué)習(xí)的實踐工具與框架類目就比較繁雜了,包括基礎(chǔ)語言與工具、工程框架、數(shù)據(jù)存儲工具和數(shù)據(jù)處理工具。

  1. 基礎(chǔ)語言與工具有MATLAB及其工具包,Python與相應(yīng)的庫(NumPy、SciPy、Matplotlib和Scikit-learn等)。
  2. 工程框架包括TensorFlow、MXNet、Torch和PyTorch、Keras等。
  3. 數(shù)據(jù)存儲包括Oracle、SQL Server、MySQL、PostgreSQL等傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,LevelDB、LMDB、Redis等K/V型數(shù)據(jù)庫,MongoDB等文檔型數(shù)據(jù)庫,Neo4j等圖形數(shù)據(jù)庫,HBase、Cassandra等列數(shù)據(jù)庫,數(shù)不勝數(shù)。
  4. 數(shù)據(jù)處理工具則包括批處理、實時處理兩大類。批處理工具有Hadoop,以及基于HadoopHive和Pig。
  5. 實時處理工具有Storm和Hurricane實時處理系統(tǒng)。至于非常有名的Spark應(yīng)該屬于改良的批處理工具,也能用于實時處理場景。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }