版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Machine
Learning
with
Python7.1目錄7-37.6K近鄰算法邏輯回歸決策樹(shù)支持向量機(jī)7.27.47.57.7樸素貝葉斯算法分類與回歸樹(shù)案例—多分類器分類數(shù)據(jù)7.8本章小結(jié)K近鄰算法本節(jié)介紹K近鄰算法的算法原理、實(shí)現(xiàn)及參數(shù)以及K近鄰回歸等相關(guān)內(nèi)容7.13
7.1.1算法原理K近鄰算法k近鄰算法(kNearestNeighbor,KNN)是所有機(jī)器學(xué)習(xí)算法中理論最簡(jiǎn)單,最容易理解的算法。由于它是一種監(jiān)督學(xué)習(xí),所以使用算法時(shí)必須有已知類別的訓(xùn)練樣本集。k近鄰算法的輸入為一個(gè)樣本的特征向量,然后測(cè)量待分類樣本與訓(xùn)練樣本之間的距離,最后依據(jù)到它最近的k個(gè)訓(xùn)練樣本所屬的類別對(duì)其進(jìn)行分類。基本流程k近鄰算法的基本流程為:1)計(jì)算已知訓(xùn)練集中的樣本與待分類樣本之間的距離;2)按照距離遞增次序排序;3)選取與待分類樣本距離最小的k個(gè)樣本;4)確定該k個(gè)樣本所在類別的出現(xiàn)頻率;5)返回該k個(gè)樣本出現(xiàn)頻率最高的類別作為待分類樣本的預(yù)測(cè)類別。4
7.1.2實(shí)現(xiàn)及參數(shù)Scikit-learn中實(shí)現(xiàn)k近鄰分類算法的類如下:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights='uniform',algorithm='auto',leaf_size=30,p=2,metric='minkowski',metric_params=None,n_jobs=1,**kwargs)其主要參數(shù)為:1)n_neighbors:使用的近鄰數(shù)。數(shù)據(jù)類型為整型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值5。2)weights:對(duì)近鄰進(jìn)行投票的加權(quán)方法。數(shù)據(jù)類型為字符串型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值“uniform”。3)algorithm:用來(lái)計(jì)算最近鄰的算法。數(shù)據(jù)類型為字符串型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值“auto”,即自動(dòng)選擇最適合算法。5
7.1.2實(shí)現(xiàn)及參數(shù)Scikit-learn中實(shí)現(xiàn)k近鄰分類算法的類如下:sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights='uniform',algorithm='auto',leaf_size=30,p=2,metric='minkowski',metric_params=None,n_jobs=1,**kwargs)其主要參數(shù)為:1)n_neighbors:使用的近鄰數(shù)。數(shù)據(jù)類型為整型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值5。2)weights:對(duì)近鄰進(jìn)行投票的加權(quán)方法。數(shù)據(jù)類型為字符串型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值“uniform”。3)algorithm:用來(lái)計(jì)算最近鄰的算法。數(shù)據(jù)類型為字符串型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值“auto”,即自動(dòng)選擇最適合算法。4)leaf_size:k-d樹(shù)或球樹(shù)的葉結(jié)點(diǎn)規(guī)模。數(shù)據(jù)類型為整型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值30。該參數(shù)影響構(gòu)造和查詢樹(shù)的速度,以及存儲(chǔ)樹(shù)所需的內(nèi)存,其最優(yōu)值取決于問(wèn)題的性質(zhì)。更大的leaf_size可更快的構(gòu)建樹(shù),因?yàn)樾枰獎(jiǎng)?chuàng)建更少的結(jié)點(diǎn)。當(dāng)leaf_size為1時(shí),構(gòu)造樹(shù)的時(shí)間最慢,但查詢速度快。當(dāng)leaf_size接近訓(xùn)練集大小時(shí),其本質(zhì)上接近暴力搜索。5)metric:用來(lái)計(jì)算樣本間距離的方法。數(shù)據(jù)類型為字符串型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值“minkovski”,即閔氏距離。用戶也可以使用自定義函數(shù)計(jì)算該距離。6)p:閔氏距離的參數(shù),數(shù)據(jù)類型為整型值。若不設(shè)置該值,則自動(dòng)使用默認(rèn)值2。當(dāng)p=1時(shí),等價(jià)于使用曼哈頓距離;當(dāng)p=2時(shí),則為使用歐氏距離。7)metric_params:距離度量函數(shù)的附加關(guān)鍵字參數(shù)。數(shù)據(jù)類型為字典,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值None。8)n_jobs:要為鄰居搜索進(jìn)行并行作業(yè)的線程數(shù)量。數(shù)據(jù)類型為整型值,若不設(shè)置該值,則自動(dòng)使用默認(rèn)值1。若設(shè)置為-1,則線程數(shù)量為CPU核心數(shù)。7.1.2實(shí)現(xiàn)及參數(shù)67
7.1.3
K近鄰回歸k近鄰回歸是用k近鄰思想解決回歸問(wèn)題的方法,用在數(shù)據(jù)標(biāo)簽為連續(xù)變量的情況下,分配給測(cè)試數(shù)據(jù)的標(biāo)簽是由它最近鄰標(biāo)簽的均值計(jì)算得到的。圖7-1k近鄰回歸圖邏輯回歸本節(jié)介紹邏輯回歸的相關(guān)概念、算法原理以及實(shí)現(xiàn)及參數(shù)等內(nèi)容7.29
7.2.1算法原理1.模型
邏輯回歸是廣義的線性模型,就是在線性回歸的基礎(chǔ)上加了一個(gè)非線性映射,它使用線性回歸的思路去解決分類問(wèn)題。
a)b)
圖7-2線性思路求解分類問(wèn)題
10
7.2.1算法原理
但線性回歸對(duì)異常值非常敏感,如果出現(xiàn)異常值,擬合出來(lái)的線性模型也將發(fā)生很大變化,預(yù)測(cè)出來(lái)的結(jié)果也將不準(zhǔn)確,從而到導(dǎo)致分類錯(cuò)誤。如下圖7-3a)所示,數(shù)據(jù)集中出現(xiàn)一個(gè)異常點(diǎn)(三角形數(shù)據(jù)點(diǎn)),那么擬合出來(lái)的模型就可能發(fā)生改變。此時(shí),數(shù)據(jù)集中的樣本可能被誤判,例如圖中矩形點(diǎn),在原模型中,該點(diǎn)預(yù)測(cè)出來(lái)的值大于0,被標(biāo)記到1類中,但在新模型中,其預(yù)測(cè)值就小于0,就回被誤標(biāo)記到0類中。新模型原模型誤分類點(diǎn)異常點(diǎn)
曲線模型誤分類點(diǎn)異常點(diǎn)
a)b)圖7-3線性回歸對(duì)異常值敏感
11
7.2.1算法原理其圖像如圖7-4所示。
即用線性回歸模型預(yù)測(cè)逼近真是標(biāo)記的對(duì)數(shù)幾率,因此,稱為對(duì)數(shù)幾率回歸,也成為邏輯回歸(Logisticregression)。雖然模型稱為“回歸”,但實(shí)際是一種分類算法。該算法直接對(duì)分類可能性進(jìn)行建模,無(wú)需事先假設(shè)數(shù)據(jù)分布。這樣就避免了假設(shè)分布不準(zhǔn)確所帶來(lái)的問(wèn)題;它不是僅預(yù)測(cè)出“類別”,而是可得到近似概率預(yù)測(cè),這對(duì)許多需利用概率輔助決策的任務(wù)很有用。此外,對(duì)數(shù)幾率函數(shù)是任意階可導(dǎo)的凸函數(shù),有很好的數(shù)學(xué)性質(zhì),現(xiàn)有的許多數(shù)值優(yōu)化算法都可直接用于求取最優(yōu)解。12
7.2.1算法原理
13
7.2.1算法原理
14
7.2.2實(shí)現(xiàn)及參數(shù)scikit-learn中實(shí)現(xiàn)邏輯回歸算法的類如下:sklearn.linear_model.LogisticRegression(penalty='l2',dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver='lbfgs',max_iter=100,multi_class='auto',verbose=0,warm_start=False,n_jobs=None,l1_ratio=None)其主要參數(shù)如下:1)penalty:正則化項(xiàng),用于防止過(guò)擬合。數(shù)據(jù)類型為字符串型值,默認(rèn)值為“l(fā)2”。其可選值包括:l2:表示使用L2正則化(嶺回歸)。l1:表示使用L1正則化(Lasso回歸)。elasticnet:表示使用ElasticNet回歸。2)dual:是否使用對(duì)偶形式的優(yōu)化。數(shù)據(jù)類型為布爾值,默認(rèn)值為False,即不使用。通常對(duì)于大量特征的高維問(wèn)題,設(shè)置為T(mén)rue可能表現(xiàn)更好。15
7.2.2實(shí)現(xiàn)及參數(shù)
3)tol:指定判斷迭代收斂與否的閾值。數(shù)據(jù)類型為浮點(diǎn)型,默認(rèn)值為0.0001。模型的優(yōu)化算法會(huì)在達(dá)到一定精度
或達(dá)到最大迭代次數(shù)時(shí)停止。
16
7.2.2實(shí)現(xiàn)及參數(shù)10)max_iter:最大迭代次數(shù)。數(shù)據(jù)類型為整型,默認(rèn)值為100。在求解器沒(méi)有在給定的迭代次數(shù)內(nèi)收斂時(shí),算法將停止。11)multi_class:指定用于處理多分類問(wèn)題的策略。12)verbose:是否啟用詳細(xì)輸出。數(shù)據(jù)類型為布爾型,默認(rèn)值為False,即不啟用。13)warm_start:是否使用前一次訓(xùn)練結(jié)果繼續(xù)訓(xùn)練。數(shù)據(jù)類型為布爾型,默認(rèn)值為False,即重新開(kāi)始訓(xùn)練。14)n_jobs:任務(wù)并行時(shí)使用的CPU核心數(shù)量。數(shù)據(jù)類型為整數(shù),默認(rèn)值為None(表示不使用并行處理)。15)l1_ratio:混合正則化項(xiàng)中L1正則化相對(duì)于L2正則化的比例,與ElasticNet回歸中該參數(shù)相同。樸素貝葉斯算法本節(jié)介紹樸素貝葉斯算法的相關(guān)概念、算法原理以及實(shí)現(xiàn)及參數(shù)等內(nèi)容7.318
7.3.1相關(guān)概念
相關(guān)概念貝葉斯分類是基于貝葉斯定理的分類算法,其原理是通過(guò)樣本的先驗(yàn)概率,利用貝葉斯公式計(jì)算出其后驗(yàn)概率,即該樣本屬于某一類別的概率,最終選擇具有最大后驗(yàn)概率的類別作為該樣本的類別。
1.隨機(jī)事件指在隨機(jī)試驗(yàn)中,可能出現(xiàn)也可能不出現(xiàn),而在大量重復(fù)試驗(yàn)中具有某種規(guī)律性的事件(簡(jiǎn)稱事件)。隨機(jī)試驗(yàn)中的每一個(gè)可能出現(xiàn)的試驗(yàn)結(jié)果稱為這個(gè)試驗(yàn)的一個(gè)樣本點(diǎn),即一個(gè)隨機(jī)事件。2.隨機(jī)變量
一般意義上,概率是針對(duì)于某一隨機(jī)事件而言的,為了更深入地研究隨機(jī)試驗(yàn)的結(jié)果,引入隨機(jī)變量的概念,隨機(jī)變量的基本思想是把隨機(jī)試驗(yàn)的結(jié)果數(shù)量化,從而可用一個(gè)變量去描述隨機(jī)事件。19
7.3.2算法原理樸素貝葉斯算法(Na?veBayes)就是根據(jù)貝葉斯公式來(lái)對(duì)樣本進(jìn)行分類,通過(guò)已知條件計(jì)算樣本分別屬于各個(gè)類別的概率,然后把樣本判別為概率最大的那一類。若要計(jì)算樣本屬于一個(gè)類別概率,首先需要計(jì)算和。這兩個(gè)值可以通過(guò)訓(xùn)練集求得,在具體的求取過(guò)程中需要使用極大似然估計(jì)法。極大似然估計(jì)是一種概率論在統(tǒng)計(jì)中的應(yīng)用,指已知某個(gè)隨機(jī)樣本滿足某種概率分布,但是其中的具體參數(shù)無(wú)法確定,只能通過(guò)若干次試驗(yàn),觀察其結(jié)果,利用結(jié)果推出參數(shù)的大概值,并把這個(gè)結(jié)果作為估計(jì)值。這里把訓(xùn)練集中的所有值當(dāng)成是若干次試驗(yàn)以后得到的結(jié)果,然后利用極大似然估計(jì)思想。由于樸素貝葉斯對(duì)條件概率做了獨(dú)立性假設(shè),即在分類確定的條件下,用于分類的特征是條件獨(dú)立的。樸素貝葉斯算法優(yōu)點(diǎn)是在數(shù)據(jù)較少的情況下仍然有效,可以處理多類別問(wèn)題,特征值可以離散也可以連續(xù),但其缺點(diǎn)是對(duì)缺失和噪聲數(shù)據(jù)不太敏感。樸素貝葉斯分類一共有3種方法,分別是高斯樸素貝葉斯、多項(xiàng)式分布貝葉斯、伯努利樸素貝葉斯,3種分類方法對(duì)應(yīng)3種不同的數(shù)據(jù)分布類型。高斯分布又叫正態(tài)分布,其計(jì)算公式如式7-11所示,即隨機(jī)變量X服從數(shù)學(xué)期望為,方差為的數(shù)據(jù)分布。當(dāng)數(shù)學(xué)期望,方差時(shí)稱為標(biāo)準(zhǔn)正態(tài)分布。7.3.3實(shí)現(xiàn)及參數(shù)20
圖7-5
正態(tài)分布概率圖高斯樸素貝葉斯分類算法假設(shè)特征的條件概率滿足高斯分布,其在Scikit-learn中的實(shí)現(xiàn)類如下:sklearn.native_bayes.GaussianNB(priors=None)其主要參數(shù)為:priors:先驗(yàn)概率大小。若不指定該參數(shù)值,則模型則根據(jù)樣本自己計(jì)算(利用極大似然法)。其主要屬性為:1)class_prior_:樣本屬于每個(gè)類別的概率。數(shù)據(jù)類型為數(shù)組,長(zhǎng)度為類別數(shù)量。2)class_count:每個(gè)類別包含的訓(xùn)練樣本的數(shù)量。數(shù)據(jù)類型為數(shù)組,長(zhǎng)度為類別數(shù)量。3)theta_:每個(gè)類別中每個(gè)特征的均值。數(shù)據(jù)類型為數(shù)組,形狀為(類別數(shù)量,特征數(shù)量)。4)sigma_:每個(gè)類別中每個(gè)特征的方差。數(shù)據(jù)類型為數(shù)組,形狀為(類別數(shù)量,特征數(shù)量)。7.3.3實(shí)現(xiàn)及參數(shù)21決策樹(shù)本節(jié)介紹決策樹(shù)的算法原理、最優(yōu)特征選擇函數(shù)以及實(shí)現(xiàn)及參數(shù)7.323
7.4.1算法原理
決策樹(shù)決策樹(shù)(DecisionTree)是一種基于樹(shù)狀圖的層次模型,是最早的機(jī)器學(xué)習(xí)算法之一。1979年,J.R.Quinlan提出了ID3算法原型,并于1983年和1986年對(duì)ID3算法進(jìn)行了總結(jié)和簡(jiǎn)化,正式確立了決策樹(shù)的理論。決策樹(shù)可以是二叉樹(shù)也可以是多叉樹(shù),每個(gè)非葉結(jié)點(diǎn)表示對(duì)一個(gè)特征的判斷,每個(gè)分支代表該特征在某個(gè)值域上的輸出,而每個(gè)葉結(jié)點(diǎn)存放一個(gè)類別。樹(shù)狀模型更加接近人的思維方式,可以產(chǎn)生可視化的分類規(guī)則,產(chǎn)生的模型具有可解釋性,其擬合出來(lái)的函數(shù)其實(shí)是分區(qū)間的階梯函數(shù)。決策樹(shù)可以用于解決分類問(wèn)題也可以用于解決回歸問(wèn)題,本節(jié)主要介紹其在分類問(wèn)題上的應(yīng)用。原理決策樹(shù)按照樣本的特征將樣本空間劃分成一些局部區(qū)域,并對(duì)每一個(gè)區(qū)域指定一個(gè)統(tǒng)一的類別。對(duì)于數(shù)據(jù)集中的任何一個(gè)樣本,決策樹(shù)將根據(jù)此樣本的特征判斷它所屬的區(qū)域,并將該區(qū)域的類別作為樣本的類別,以實(shí)現(xiàn)一個(gè)分類過(guò)程。決策樹(shù)算法的基本結(jié)構(gòu)為一個(gè)遞歸過(guò)程,其主要目標(biāo)是按某種規(guī)則生長(zhǎng)出決策樹(shù)的各個(gè)分支結(jié)點(diǎn),并根據(jù)終止條件結(jié)束算法,主要包含以下步驟。1)輸入需要分類的數(shù)據(jù)集和類別標(biāo)簽。2)計(jì)算最優(yōu)特征:根據(jù)某種分類規(guī)則得到最優(yōu)劃分特征,并創(chuàng)建特征的劃分結(jié)點(diǎn)。每種決策樹(shù)之所以不同,一般都是因?yàn)樽顑?yōu)特征選擇的標(biāo)準(zhǔn)上有所差異,不同的標(biāo)準(zhǔn)導(dǎo)致生成不同類型的決策樹(shù)。例如,ID3決策樹(shù)的最優(yōu)特征選擇依據(jù)信息增益、C4.5決策樹(shù)依據(jù)信息增益率、CART算法依據(jù)結(jié)點(diǎn)方差的大小等。3)劃分?jǐn)?shù)據(jù)集:按照該特征的每個(gè)取值劃分?jǐn)?shù)據(jù)集為若干部分。4)根據(jù)劃分結(jié)果構(gòu)建出新的結(jié)點(diǎn),作為決策樹(shù)生長(zhǎng)出的新分支。5)檢驗(yàn)是否終止。6)將劃分的新結(jié)點(diǎn)包含的數(shù)據(jù)集和類別標(biāo)簽作為輸入,遞歸執(zhí)行上述各步驟。7.4.1算法原理2425
7.4.2最優(yōu)特征選擇函數(shù)如何選擇最優(yōu)劃分屬性,一般而言,隨著劃分過(guò)程不斷進(jìn)行,希望決策樹(shù)的分枝結(jié)點(diǎn)所包含的樣本盡可能屬于同一類別,即結(jié)點(diǎn)的“純度”越來(lái)越高。對(duì)于一個(gè)由多維特征構(gòu)成的數(shù)據(jù)集,能夠優(yōu)選出某個(gè)特征作為根結(jié)點(diǎn),以及選擇出特征集中無(wú)序度最大的列特征作為劃分結(jié)點(diǎn)是非常重要的。為了衡量一個(gè)事物特征取值的有(無(wú))序程度,可以使用信息熵。信息熵用來(lái)衡量一個(gè)隨機(jī)變量出現(xiàn)的期望值,一個(gè)變量的信息熵越大,那么它蘊(yùn)含的情況(景)就越多,即需要更多的信息才能完全確定它。在決策樹(shù)中,信息熵不僅能用來(lái)度量類別的不確定性,還可以用來(lái)度量具有不同特征的數(shù)據(jù)樣本的不確定性。如果某個(gè)特征列向量的信息熵越大,則該向量的不確定性就越大,亦即其混亂程度就越大,就應(yīng)該優(yōu)先考慮從該特征向量入手進(jìn)行劃分。在信息熵概念的基礎(chǔ)上,下面介紹信息增益和信息增益率。26
7.4.2最優(yōu)特征選擇函數(shù)1.信息增益ID3決策樹(shù)算法使用信息增益確定決策樹(shù)分支的劃分依據(jù),每次選擇信息增益最大的特征作為結(jié)點(diǎn)。信息增益即決策樹(shù)上某個(gè)分支上整個(gè)數(shù)據(jù)集信息熵與當(dāng)前結(jié)點(diǎn)信息熵的差值。對(duì)樣本集S中的每個(gè)特征(未選取的特征)進(jìn)行上述計(jì)算,具有最高信息增益的特征就可選做給定樣本集S的測(cè)試特征。使用選定的樣本特征,創(chuàng)建決策樹(shù)的一個(gè)結(jié)點(diǎn),并據(jù)此劃分樣本,依據(jù)劃分結(jié)果對(duì)特征的每個(gè)值創(chuàng)建分支。ID3算法可用于劃分標(biāo)稱型數(shù)據(jù)集,沒(méi)有剪枝的過(guò)程,為了去除過(guò)度數(shù)據(jù)匹配的問(wèn)題,可通過(guò)裁剪來(lái)合并相鄰的無(wú)法產(chǎn)生大量信息增益的葉子結(jié)點(diǎn)(如設(shè)置信息增益閾值)。信息增益偏向于具有大量值的特征,也就是說(shuō)在訓(xùn)練集中,某個(gè)特征所取的不同值的個(gè)數(shù)越多,就越有可能將它作為分裂特征。另外,ID3只能處理離散數(shù)據(jù)。27
7.4.2最優(yōu)特征選擇函數(shù)2.信息增益率ID3算法存在一個(gè)問(wèn)題,就是偏向于多值屬性,例如,如果存在唯一標(biāo)識(shí)屬性ID,則ID3會(huì)選擇它作為分裂屬性,這樣雖然使得劃分充分純凈,但這種劃分對(duì)分類幾乎毫無(wú)用處。1993年,Quinlan將ID3改進(jìn)為C4.5算法。C4.5算法是ID3算法的改進(jìn),改進(jìn)了四個(gè)方面,第一就是用信息增益率來(lái)選擇屬性,克服了用信息增益選擇屬性時(shí)偏向選擇取值多的屬性的不足。第二就是在樹(shù)的構(gòu)造過(guò)程中進(jìn)行剪枝。第三就是能處理非離散的數(shù)據(jù)。第四就是能處理不完整的數(shù)據(jù)。C4.5算法使用信息增益率(GainRatio)代替信息增益,進(jìn)行特征選擇,克服了信息增益選擇特征時(shí)偏向于特征值個(gè)數(shù)較多的不足。C4.5算法首先定義了“分裂信息”。其中,到分別是特征A的不同取值構(gòu)成的樣本子集。C4.5選擇具有最大信息熵增益率的屬性作為分裂屬性,是ID3的一個(gè)改進(jìn)算法。它繼承了ID3算法的優(yōu)點(diǎn),在樹(shù)構(gòu)造過(guò)程中進(jìn)行剪枝,能夠完成對(duì)連續(xù)屬性的離散化處理,也能夠?qū)Σ煌暾麛?shù)據(jù)進(jìn)行處理。C4.5算法產(chǎn)生的分類規(guī)則易于理解、準(zhǔn)確率較高、但效率低,這是因?yàn)樵跇?shù)的構(gòu)造過(guò)程中,需要對(duì)數(shù)據(jù)集進(jìn)行多次的順序掃描和排序。28
7.4.3實(shí)現(xiàn)及參數(shù)sklearn.tree提供了分類決策樹(shù)的實(shí)現(xiàn)方法,庫(kù)函數(shù)DecisionTreeClassifier,其構(gòu)造函數(shù)如下:sklearn.tree.DecisionTreeClassifier(criterion='gini',
splitter='best',
max_depth=None,min_samples_split=2,min_samples_leaf=1,
min_weight_fraction_leaf=0.0,max_features=None,
random_state=None,
max_leaf_nodes=None,class_weight=None,
presort=False)其主要參數(shù)為:1)criterion:特征選擇標(biāo)準(zhǔn)。數(shù)據(jù)類型為字符串型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值gini。2)splitter:特征劃分點(diǎn)選擇標(biāo)準(zhǔn)。數(shù)據(jù)類型為字符串型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值best。3)max_features:劃分結(jié)點(diǎn)以尋找最優(yōu)劃分特征時(shí),設(shè)置允許搜索的最大特征個(gè)數(shù)。數(shù)據(jù)類型為整型、浮點(diǎn)型、字符串型或None。注意如果已經(jīng)考慮了max_features個(gè)特征,但還是沒(méi)有找到一個(gè)有效的劃分,那么會(huì)繼續(xù)尋找下一個(gè)特征,直到找到一個(gè)有效的劃分為止。若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值None。29
7.4.3實(shí)現(xiàn)及參數(shù)4)max_depth:決策樹(shù)的最大深度。數(shù)據(jù)類型為整型或None,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值None,表示不對(duì)決策樹(shù)的最大深度作約束,直到每個(gè)葉子結(jié)點(diǎn)上的樣本均屬于同一類,或者少于min_samples_leaf參數(shù)指定的葉子結(jié)點(diǎn)上的樣本個(gè)數(shù)。也可以指定一個(gè)整型數(shù)值,代表樹(shù)的最大深度。5)min_samples_split:內(nèi)部結(jié)點(diǎn)再切分需要的最小樣本數(shù)。數(shù)據(jù)類型為整型或浮點(diǎn)型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值2。若設(shè)置為整數(shù),則該值表示最少樣本數(shù)。若設(shè)置為0至1的浮點(diǎn)數(shù),則最少樣本數(shù)為min_samples_split*n_samples向上取整。6)min_samples_leaf::設(shè)置葉子結(jié)點(diǎn)上的最小樣本數(shù)。數(shù)據(jù)類型為整型或浮點(diǎn)型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值1。若設(shè)置為整數(shù),則該值表示最少樣本數(shù)。若設(shè)置為0至1的浮點(diǎn)數(shù),則最少樣本數(shù)為min_samples_split*n_samples向上取整。7)min_weight_fraction_leaf:每一個(gè)葉子結(jié)點(diǎn)上樣本的權(quán)重和的最小值。數(shù)據(jù)類型為浮點(diǎn)型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值0.0,表示不考慮權(quán)重的問(wèn)題。若樣本中存在較多的缺失值,或樣本類別分布偏差很大時(shí),會(huì)引入樣本權(quán)重,此時(shí)就要謹(jǐn)慎設(shè)置該參數(shù)。30
7.4.3實(shí)現(xiàn)及參數(shù)8)max_leaf_nodes:決策樹(shù)的最大葉子結(jié)點(diǎn)個(gè)數(shù)。數(shù)據(jù)類型為整型或None,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值None,表示不加限制。該參數(shù)與max_depth等參數(shù)一起,限制決策樹(shù)的復(fù)雜度。9)class_weight:樣本數(shù)據(jù)中每個(gè)類的權(quán)重。值有Banlanced和None可選。若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值None。10)random_state:隨機(jī)種子的設(shè)置。若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值None,即使用當(dāng)前系統(tǒng)時(shí)間作為種子,每次隨機(jī)結(jié)果不同。11)min_impurity_decrease:結(jié)點(diǎn)不純度(基尼系數(shù),信息增益)最小減少程度。數(shù)據(jù)類型為浮點(diǎn)型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值0.0。12)min_impurity_split:結(jié)點(diǎn)劃分的最小不純度。數(shù)據(jù)類型為浮點(diǎn)型,該值限制了決策樹(shù)的增長(zhǎng),如果某結(jié)點(diǎn)的不純度(基尼系數(shù),信息增益)小于這個(gè)閾值,則該結(jié)點(diǎn)不再生成子結(jié)點(diǎn)。13)persort:是否進(jìn)行預(yù)排序。數(shù)據(jù)類型為布爾型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值False。在處理大數(shù)據(jù)集時(shí),如果設(shè)為T(mén)rue可能會(huì)減慢訓(xùn)練的過(guò)程。分類與回歸樹(shù)本節(jié)介紹分類與回歸樹(shù)的算法原理以及實(shí)現(xiàn)及參數(shù)相關(guān)內(nèi)容7.532
7.5.1算法原理
分類與回歸樹(shù)分類與回歸樹(shù)(ClassificationAndRegressionTree,CART)算法是目前決策樹(shù)算法中最為成熟的一類算法,它既可用于分類,也可用于回歸。預(yù)測(cè)時(shí),CART使用最小剩余方(Squared
ResidualsMinimization)來(lái)判定最優(yōu)劃分,確保劃分之后的子樹(shù)與樣本點(diǎn)的誤差方差最小。然后將數(shù)據(jù)集劃分成多個(gè)子集,利用線性回歸建模,如果每次劃分后的子集仍然難以擬合就繼續(xù)劃分。這樣創(chuàng)建出來(lái)的預(yù)測(cè)樹(shù),每個(gè)葉子結(jié)點(diǎn)都是一個(gè)線性回歸模型。這些線性回歸模型反映了樣本集中蘊(yùn)含的模式,也稱為模型樹(shù)。因此,CART不僅支持整體預(yù)測(cè),也支持局部模式的預(yù)測(cè),并有能力從整體中找到模式,或根據(jù)模式組合成一個(gè)整體。整體與模式之間的相互結(jié)合,對(duì)于預(yù)測(cè)分析非常有價(jià)值。因此,CART決策樹(shù)算法在預(yù)測(cè)中的應(yīng)用非常廣泛。CART算法主要由以下兩步組成。1)決策樹(shù)生成:基于訓(xùn)練數(shù)據(jù)集生成決策樹(shù),生成的決策樹(shù)要盡量大。2)決策樹(shù)剪枝:用驗(yàn)證數(shù)據(jù)集對(duì)已生成的樹(shù)進(jìn)行剪枝,并選擇最優(yōu)子樹(shù),這時(shí)用損失函數(shù)最小作為剪枝的標(biāo)準(zhǔn)。33
7.5.1算法原理CART算法的主要流程如下。1)輸入需要分類的數(shù)據(jù)集和類別標(biāo)簽。2)使用最小剩余方差判定回歸樹(shù)的最優(yōu)劃分,并創(chuàng)建特征的劃分結(jié)點(diǎn)。3)劃分結(jié)點(diǎn),使用二分?jǐn)?shù)據(jù)集子函數(shù)將數(shù)據(jù)集劃分為兩部分。4)根據(jù)二分?jǐn)?shù)據(jù)的結(jié)果,構(gòu)建出新的左、右結(jié)點(diǎn),作為樹(shù)生長(zhǎng)出的兩個(gè)分支。5)檢驗(yàn)是否符合遞歸的終止條件。6)將劃分的新結(jié)點(diǎn)包含的數(shù)據(jù)集和類別標(biāo)簽作為輸入,遞歸執(zhí)行上述步驟。其中涉及兩個(gè)關(guān)鍵概念,最小余方差和剪枝策略。CART算法把葉子結(jié)點(diǎn)設(shè)定為一系列的分段線性函數(shù),這些分段線性函數(shù)是對(duì)源數(shù)據(jù)曲線的一種模擬,每個(gè)線性函數(shù)都稱為一個(gè)模型樹(shù),由于使用了連續(xù)型數(shù)據(jù),CART可以生長(zhǎng)出大量的分支樹(shù),避免了過(guò)擬合的問(wèn)題,預(yù)測(cè)樹(shù)采用了剪枝的方法。剪枝方法有很多,主流的方法有兩類:先剪枝和后剪枝。34
7.5.2實(shí)現(xiàn)及參數(shù)sklearn.tree提供了CART算法的實(shí)現(xiàn)方法,庫(kù)函數(shù)DecisionTreeRegressor,其構(gòu)造函數(shù)如下:sklearn.tree.DecisionTreeRegressor(criterion=’mse’,splitter=’best’,max_depth=None,min_samples_split=2,min_samples_leaf=1,min_weight_fraction_leaf=0.0,max_features=None,random_state=None,max_leaf_nodes=None,min_impurity_decrease=0.0,min_impurity_split=None,presort=False)其與分類決策樹(shù)不同的主要參數(shù)為:1)criterion:特征選擇標(biāo)準(zhǔn)。數(shù)據(jù)類型為字符串型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值mse。2)min_impurity_decrease:結(jié)點(diǎn)不純度(均方差,絕對(duì)差)最小減少程度。數(shù)據(jù)類型為浮點(diǎn)型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值0.0。3)min_impurity_split:結(jié)點(diǎn)劃分的最小不純度。數(shù)據(jù)類型為浮點(diǎn)型。這個(gè)值限制了決策樹(shù)的增長(zhǎng),如果某結(jié)點(diǎn)的不純度(均方差,絕對(duì)差)小于這個(gè)閾值,則該結(jié)點(diǎn)不再生成子結(jié)點(diǎn)。支持向量機(jī)本節(jié)介紹支持向量機(jī)的算法原理、核函數(shù)以及實(shí)現(xiàn)及參數(shù)等相關(guān)內(nèi)容7.636
7.6.1算法原理
間隔與支持向量假設(shè)數(shù)據(jù)集中的樣本有兩種類別,分別稱為正例和負(fù)例。如果特征空間內(nèi)存在某個(gè)平面能將正例和負(fù)例完全正確的分隔到它的兩側(cè),這個(gè)平面稱為分隔超平面。如圖7-7所示,a、b、c為3個(gè)分隔超平面,這樣的分隔方式可以有無(wú)數(shù)種。尋找最優(yōu)分隔超平面的原則為分隔超平面要盡可能遠(yuǎn)離兩類數(shù)據(jù)點(diǎn),即實(shí)現(xiàn)兩類數(shù)據(jù)點(diǎn)到分隔超平面的距離d最大,這段距離的2倍稱為間距(Margin)。那些離分隔超平面最近的點(diǎn)稱為支持向量(SupportVector),如圖7-8所示,虛線穿過(guò)的向量即為支持向量。SVM算法目標(biāo)即找到能使數(shù)據(jù)正確分類、并且間距最大的分隔超平面。這樣的超平面既有較強(qiáng)的分隔能力、又有較強(qiáng)的抗噪能力。圖7-7數(shù)據(jù)分類的多種分隔方法圖7-8最優(yōu)分界線37
7.6.1算法原理
圖7-8線性不可分38
7.6.1算法原理
圖7-10非線性分類問(wèn)題圖7-11非線形分類問(wèn)題數(shù)據(jù)映射到高維空間39
7.6.2核函數(shù)雖然可以利用非線性變換處理非線性分類問(wèn)題,但如果映射后的空間維度非常高,將導(dǎo)致進(jìn)行非線性變換所使用的存儲(chǔ)空間和計(jì)算資源開(kāi)銷過(guò)大,有時(shí)甚至是無(wú)法實(shí)現(xiàn)的。但是利用核方法可以解決這個(gè)問(wèn)題。核方法的核心思想是,利用核函數(shù)直接計(jì)算映射到空間后實(shí)例間的內(nèi)積,以此代替先做映射再做內(nèi)積。1)線性核函數(shù)(LinearKernel)其中c為可選參數(shù)。主要用于線性可分情況,線性核函數(shù)參數(shù)少,適合特征數(shù)量相對(duì)樣本數(shù)量非常多時(shí)。2)多項(xiàng)式核(PolynomialKernel)其中表示調(diào)節(jié)參數(shù),d為多項(xiàng)式的次數(shù)。當(dāng)多項(xiàng)式階數(shù)高時(shí)復(fù)雜度會(huì)很高,對(duì)于正交歸一后數(shù)據(jù)可優(yōu)先選擇。3)高斯核(GaussianKernel)其中越大,高斯核函數(shù)越平滑,即模型的偏差和方差大,泛化能力差,容易過(guò)擬合;越小,高斯核函數(shù)變化劇烈,模型對(duì)噪聲樣本比較敏感。高斯核函數(shù)靈活性較強(qiáng),大多數(shù)情況都有較好性能,在不確定用哪種核函數(shù)時(shí)可以優(yōu)先選則高斯核函數(shù)。4)Sigmoid核(SigmoidKernel)其中tanh為雙曲正切函數(shù),為可選參數(shù),一般取,其中為數(shù)據(jù)維度。40
7.6.3實(shí)現(xiàn)及參數(shù)在前面章節(jié)中已經(jīng)介紹過(guò),當(dāng)把離散的數(shù)值用連續(xù)值代替,算法也可擴(kuò)展到回歸問(wèn)題,所以SVM也可以處理回歸問(wèn)題。Scikit-learn中SVM算法的實(shí)現(xiàn)都包含在sklearn.svm里,包含分類封裝類SVC和回歸封裝類SVR。Scikit-learn中實(shí)現(xiàn)SVM分類算法的SVC類如下:sklearn.svm.SVC(C=1.0,
kernel='rbf',
degree=3,
gamma='scale',
coef0=0.0,
shrinking=True,probability=False,
tol=0.001,
cache_size=200,
class_weight=None,
verbose=False,
max_iter=-1,
decision_function_shape='ovr',
break_ties=False,
random_state=None)其主要參數(shù)為:1)C:懲罰系數(shù)。數(shù)據(jù)類型為浮點(diǎn)型,值嚴(yán)格大于0,常選用C=1.0。2)kernel:核函數(shù)。值有l(wèi)inear、poly、rbf、sigmoid、precomputed或可調(diào)用核函數(shù)等參數(shù)可選。若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值rfb。上述參數(shù)的具體意義如下。3)degree:多項(xiàng)式核函數(shù)階數(shù)。數(shù)據(jù)類型為整型,若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)值3。僅當(dāng)kernel參數(shù)選用poly時(shí)有效,其他核函數(shù)下該參數(shù)無(wú)效。41
7.6.3實(shí)現(xiàn)及參數(shù)4)gamma:指定核函數(shù)的系數(shù)。數(shù)據(jù)類型為浮點(diǎn)型或可選scale、auto。當(dāng)核函數(shù)參數(shù)kernel為poly、rbf和sigmoid時(shí),指定系數(shù)。若不指定該參數(shù)值,則自動(dòng)使用默認(rèn)參數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年極限運(yùn)動(dòng)教育培訓(xùn)中心項(xiàng)目可行性研究報(bào)告
- 2025年中建二局西部分局招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 2025年第十師北屯市公安局面向社會(huì)公開(kāi)招聘警務(wù)輔助人員備考題庫(kù)帶答案詳解
- 2025年民生銀行深圳分行社會(huì)招聘?jìng)淇碱}庫(kù)及參考答案詳解1套
- 楚雄高新區(qū)建設(shè)投資集團(tuán)有限公司2025年度公開(kāi)招聘勞務(wù)派遣員工備考題庫(kù)及完整答案詳解1套
- 2025年博思睿人力招聘(派遣至浙江大學(xué)國(guó)際聯(lián)合商學(xué)院)備考題庫(kù)及答案詳解1套
- 三明市人力資源和社會(huì)保障局三明市衛(wèi)生健康委員2026屆醫(yī)療衛(wèi)生高層次人才專項(xiàng)公開(kāi)招聘39人備考題庫(kù)及答案詳解一套
- 2025年精河縣安阜投資經(jīng)營(yíng)有限責(zé)任公司公開(kāi)招聘?jìng)淇碱}庫(kù)附答案詳解
- 溫氏食品集團(tuán)招聘筆試題及答案
- 術(shù)后患者康復(fù)技能健康教育方案
- 烽火通信SDH設(shè)備介紹課件
- 工程類公司介紹宣傳冊(cè)模板課件
- JJG 741-2022 標(biāo)準(zhǔn)鋼卷尺檢定規(guī)程
- 2022年春季學(xué)期高一信息技術(shù)期末考試
- 我國(guó)與歐盟材料規(guī)范對(duì)照表
- 工業(yè)以太網(wǎng)交換機(jī)行業(yè)應(yīng)用案例ppt課件
- 造型基礎(chǔ)教學(xué)大綱(Word)
- 基于霍爾式傳感器的電子秤-課程設(shè)計(jì)
- 【精品模板】蘭州交通大學(xué)畢業(yè)論文答辯演示PPT模板_
- 華南理工大學(xué)課堂教學(xué)質(zhì)量評(píng)價(jià)表
- 城市是人群聚集的地方,卻讓不少人感到孤獨(dú)……解析及范文(浦東)
評(píng)論
0/150
提交評(píng)論