版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)第7章分類(lèi)第7章分類(lèi)本章內(nèi)容分類(lèi)概述決策樹(shù)規(guī)約K近鄰算法支持向量機(jī)樸素貝葉斯分類(lèi)模型評(píng)估與選擇組合分類(lèi)10十一月202421
分類(lèi)概述3分類(lèi)是一種重要的數(shù)據(jù)分析形式。數(shù)據(jù)分類(lèi)也稱(chēng)為監(jiān)督學(xué)習(xí),包括學(xué)習(xí)階段(構(gòu)建分類(lèi)模型)和分類(lèi)階段(使用模型預(yù)測(cè)給定數(shù)據(jù)的類(lèi)標(biāo)號(hào))兩個(gè)階段。數(shù)據(jù)分類(lèi)方法主要有決策樹(shù)歸納、貝葉斯分類(lèi)、K-近鄰分類(lèi)、支持向量機(jī)SVM等方法。2
決策樹(shù)規(guī)約4決策樹(shù)屬于經(jīng)典的十大數(shù)據(jù)挖掘算法之一,是一種類(lèi)似于流程圖的樹(shù)型結(jié)構(gòu),其規(guī)則就是if…then…的思想,用于數(shù)值型因變量的預(yù)測(cè)和離散型因變量的分類(lèi)。決策樹(shù)算法簡(jiǎn)單直觀,容易解釋?zhuān)以趯?shí)際應(yīng)用中具有其他算法難以比肩的速度優(yōu)勢(shì)。決策樹(shù)方法在分類(lèi)、預(yù)測(cè)和規(guī)則提取等領(lǐng)域有廣泛應(yīng)用。在20世紀(jì)70年代后期和80年代初期,機(jī)器學(xué)習(xí)研究人員J.RossQuinlan開(kāi)發(fā)了決策樹(shù)算法,稱(chēng)為迭代的二分器(IterativeDichotomiser,ID3),使得決策樹(shù)在機(jī)器學(xué)習(xí)領(lǐng)域得到極大發(fā)展。Quinlan后來(lái)又提出ID3的后繼C4.5算法,成為新的監(jiān)督學(xué)習(xí)算法的性能比較基準(zhǔn)。1984年幾位統(tǒng)計(jì)學(xué)家又提出了CART分類(lèi)算法。2
決策樹(shù)規(guī)約5決策樹(shù)的構(gòu)建原理決策樹(shù)是樹(shù)狀結(jié)構(gòu),它的每個(gè)葉結(jié)點(diǎn)對(duì)應(yīng)著一個(gè)分類(lèi),非葉結(jié)點(diǎn)對(duì)應(yīng)著在某個(gè)屬性上的劃分,根據(jù)樣本在該屬性上的不同取值將其劃分為若干子集。ID3、C4.5和CART算法都采用貪心(即非回溯)方法,以自頂向下遞歸的分治方式構(gòu)造,隨著樹(shù)的構(gòu)建,訓(xùn)練集遞歸地被劃分為子集。2
決策樹(shù)規(guī)約62
決策樹(shù)規(guī)約7ID3算法ID3算法是決策樹(shù)系列中的經(jīng)典算法之一,包含了決策樹(shù)作為機(jī)器學(xué)習(xí)算法的主要思想。但I(xiàn)D3算法在實(shí)際應(yīng)用中有諸多不足,因此之后提出了大量的改進(jìn)算法,如C4.5算法和CART算法。構(gòu)造決策樹(shù)的核心問(wèn)題是在每一步如何選擇恰當(dāng)?shù)膶傩詫?duì)樣本做拆分。ID3算法使用信息增益作為屬性選擇度量,C4.5使用增益率進(jìn)行屬性選擇度量,CART算法則使用基尼指數(shù)。2
決策樹(shù)規(guī)約82
決策樹(shù)規(guī)約92
決策樹(shù)規(guī)約10Gain(A)表明通過(guò)A上的劃分獲得了多少信息增益。選擇具有最高信息增益的屬性A作為結(jié)點(diǎn)N的分裂屬性,等價(jià)于在“能做最佳分類(lèi)”的屬性A上劃分,可以使得完成元組分類(lèi)還需要的信息最小。2
決策樹(shù)規(guī)約112
決策樹(shù)規(guī)約10十一月2024122
決策樹(shù)規(guī)約緊接著,計(jì)算每個(gè)屬性的期望信息需求。從屬性年齡開(kāi)始,需要對(duì)每個(gè)類(lèi)考察“是”和“否”元組的分布。對(duì)于年齡的類(lèi)“青年”,有5個(gè)取值,分別對(duì)應(yīng)2個(gè)“是”和3個(gè)“否”,即為I(2,3),同理,類(lèi)“中年”對(duì)應(yīng)的是I(4,0),類(lèi)“老年”對(duì)應(yīng)的是I(3,2),因此,如果元組根據(jù)年齡劃分,則對(duì)D中的元組進(jìn)行分類(lèi)所需要的期望信息為:10十一月2024132
決策樹(shù)規(guī)約10十一月2024142
決策樹(shù)規(guī)約假設(shè)屬性A是連續(xù)的,必須確定A的最佳分裂點(diǎn),其中分裂點(diǎn)是A上的閾值。首先,對(duì)屬性A的取值排序。典型地,每對(duì)相鄰值的中點(diǎn)被看作可能的分裂點(diǎn),給定A的v個(gè)值,需要計(jì)算v-1個(gè)可能的劃分。確定A的最佳分裂點(diǎn)只需掃描一遍這些值,對(duì)每個(gè)可能分裂點(diǎn),分別計(jì)算其信息增益值,具有最大信息增益的分裂點(diǎn)即為最佳分裂值。自該分裂點(diǎn)把整個(gè)取值區(qū)間劃分為兩部分,相應(yīng)的依據(jù)記錄在該屬性上的取值,也將記錄劃分為兩部分。10十一月2024152
決策樹(shù)規(guī)約ID3算法的優(yōu)缺點(diǎn)ID3算法理論清晰,方法簡(jiǎn)單,學(xué)習(xí)能力較強(qiáng)。但也存在以下一些缺點(diǎn)。(1)信息增益的計(jì)算依賴(lài)于特征數(shù)目較多的特征,而屬性取值最多的屬性并不一定最優(yōu)。比如一個(gè)變量有2個(gè)值,各為1/2,另一個(gè)變量為3個(gè)值,各為1/3,其實(shí)他們都是完全不確定的變量,但是取3個(gè)值比取2個(gè)值的信息增益大。(2)ID3沒(méi)考慮連續(xù)特征,比如長(zhǎng)度、密度都是連續(xù)值,無(wú)法在ID3運(yùn)用。(3)ID3算法是單變量決策樹(shù)(在分支結(jié)點(diǎn)上只考慮單個(gè)屬性),許多復(fù)雜概念的表達(dá)困難,屬性相互關(guān)系強(qiáng)調(diào)不夠,容易導(dǎo)致決策樹(shù)中子樹(shù)的重復(fù)或有些屬性在決策樹(shù)的某一路徑上被檢驗(yàn)多次;(4)算法的抗噪性差,訓(xùn)練例子中正例和反例的比例較難控制,而且沒(méi)有考慮缺失值和過(guò)擬合問(wèn)題。10十一月2024162
決策樹(shù)規(guī)約C4.5算法原理Quinlan在1993年提出了ID3的改進(jìn)版本C4.5算法。它與ID3算法的不同主要有以下幾點(diǎn)。(1)分支指標(biāo)采用增益比例,而不是ID3所使用的信息增益;(2)按照數(shù)值屬性值的大小對(duì)樣本排序,從中選擇一個(gè)分割點(diǎn),劃分?jǐn)?shù)值屬性的取值區(qū)間,從而將ID3的處理能力擴(kuò)充到數(shù)值屬性上來(lái);(3)將訓(xùn)練樣本集中的位置屬性值用最常用的值代替,或者用該屬性的所有取值的平均值代替,從而處理缺少屬性值的訓(xùn)練樣本;(4)使用K次迭代交叉驗(yàn)證,評(píng)估模型的優(yōu)劣程度;(5)根據(jù)生成的決策樹(shù),可以產(chǎn)生一個(gè)if-then規(guī)則的集合,每一個(gè)規(guī)則代表從根結(jié)點(diǎn)到葉結(jié)點(diǎn)的一條路徑。10十一月2024172
決策樹(shù)規(guī)約10十一月2024182
決策樹(shù)規(guī)約10十一月202419C4.5算法的優(yōu)缺點(diǎn)C4.5是基于ID3算法進(jìn)行改進(jìn)的算法,目標(biāo)是通過(guò)學(xué)習(xí),找到一個(gè)從屬性值到類(lèi)別的映射關(guān)系,并且這個(gè)映射能用于對(duì)新的未知類(lèi)別進(jìn)行分類(lèi)。C4.5算法產(chǎn)生的分類(lèi)規(guī)則易于理解,準(zhǔn)確率高,改進(jìn)了ID3算法傾向于選擇具有最大增益率的屬性作為分裂屬性的缺點(diǎn),而且相比于ID3算法,能處理非離散數(shù)據(jù)或不完整數(shù)據(jù)。C4.5由于使用了熵模型,里面有大量的耗時(shí)的對(duì)數(shù)運(yùn)算,如果是連續(xù)值還需要大量的排序運(yùn)算,而且C4.5只能用于分類(lèi)。2
決策樹(shù)規(guī)約10十一月202420CART算法原理:分類(lèi)回歸樹(shù)(ClassificationAndRegressionTree,CART)算法最早由Breiman等人提出,目前已在統(tǒng)計(jì)領(lǐng)域和數(shù)據(jù)挖掘技術(shù)中普遍使用。Python中的scikit-learn模塊的Tree子模塊主要使用CART算法實(shí)現(xiàn)決策樹(shù)?;嶂笖?shù)CART算法用基尼系數(shù)代替熵模型?;嶂笖?shù)度量數(shù)據(jù)分區(qū)或訓(xùn)練元組D的不純度,定義為:2
決策樹(shù)規(guī)約10十一月202421樹(shù)剪枝隨著決策樹(shù)深度的增加,模型的準(zhǔn)確度肯定會(huì)越來(lái)越好。但是對(duì)于新的未知數(shù)據(jù),模型的表現(xiàn)會(huì)很差,產(chǎn)生的決策樹(shù)會(huì)出現(xiàn)過(guò)分適應(yīng)數(shù)據(jù)的問(wèn)題。而且,由于數(shù)據(jù)中的噪聲和孤立點(diǎn),許多分枝反映的是訓(xùn)練數(shù)據(jù)中的異常,對(duì)新樣本的判定很不精確。為防止構(gòu)建的決策樹(shù)出現(xiàn)過(guò)擬合,需要對(duì)決策樹(shù)進(jìn)行剪枝。決策樹(shù)的剪枝方法一般有預(yù)剪枝和后剪枝方法。2
決策樹(shù)規(guī)約10十一月2024221.預(yù)剪枝當(dāng)在某一結(jié)點(diǎn)選擇使用某一屬性作為劃分屬性時(shí),會(huì)由于本次劃分而產(chǎn)生幾個(gè)分支。預(yù)剪枝就是對(duì)劃分前后兩棵樹(shù)的泛化性能進(jìn)行評(píng)估,根據(jù)評(píng)估結(jié)果決定該結(jié)點(diǎn)是否進(jìn)行劃分。如果在一個(gè)結(jié)點(diǎn)劃分樣本將導(dǎo)致低于預(yù)定義臨界值的分裂(如使用信息增益度量)則提前停止樹(shù)的構(gòu)造,但是選擇一個(gè)合適的臨界值往往非常困難。2.后剪枝在后剪枝方法中,先構(gòu)造一顆完整的決策樹(shù),然后從下向上計(jì)算每個(gè)結(jié)點(diǎn)的經(jīng)驗(yàn)熵,遞歸地從決策樹(shù)的葉子結(jié)點(diǎn)進(jìn)行回縮,通過(guò)計(jì)算回縮前后的損失函數(shù)并進(jìn)行比較判斷是否進(jìn)行剪枝。剪枝可以只在樹(shù)的某一部分進(jìn)行,即局部剪枝,這樣極大提高了剪枝的效率。第7章
決策樹(shù)11/10/2024表7.2ID3、C4.5和CART算法的主要特點(diǎn)算法支持模型樹(shù)結(jié)構(gòu)特征選擇連續(xù)值處理缺失值處理剪枝屬性多次使用ID3分類(lèi)多叉樹(shù)信息增益不支持不支持不支持不支持C4.5分類(lèi)多叉樹(shù)信息增益率支持支持支持不支持CART分類(lèi)回歸二叉樹(shù)基尼指數(shù)支持支持支持支持2
決策樹(shù)規(guī)約10十一月202424sklearn.tree.DecisionTreeClassifier實(shí)現(xiàn)了決策樹(shù)的構(gòu)建,在該方法中,參數(shù)criterion規(guī)定了該決策樹(shù)所采用的
最佳分割屬性的判決方法,取值有“gini”和“entropy”兩種;max_depth限定了決策樹(shù)的最大深度,對(duì)于防止過(guò)擬合非常有用。參數(shù)min_samples_leaf限定了葉子結(jié)點(diǎn)包含的最小樣本數(shù)。iris=load_iris()X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.20,random_state=30,shuffle=True)clf=tree.DecisionTreeClassifier(criterion='entropy')#criterion缺省為'gini'clf=clf.fit(X_train,y_train)plt.figure(dpi=150)tree.plot_tree(clf,feature_names=iris.feature_names,class_names=iris.target_names)第
7章分類(lèi)10十一月202425最近鄰分類(lèi)算法KNN
(k-NearestNeighbor)3K近鄰算法10十一月202426K近鄰(k-NearestNeighborClassification,KNN)算法是機(jī)器學(xué)習(xí)算法中最基礎(chǔ)、最簡(jiǎn)單的算法之一,屬于惰性學(xué)習(xí)法。3K近鄰算法KNN算法基于類(lèi)比學(xué)習(xí),即通過(guò)將給定的檢驗(yàn)元組與和它相似的元組進(jìn)行比較來(lái)學(xué)習(xí)。訓(xùn)練元組用n個(gè)屬性描述,每個(gè)元組代表n維空間的一個(gè)點(diǎn)。所有的訓(xùn)練元組都存放在n維模式空間中。當(dāng)給定一個(gè)未知元組時(shí),KNN搜索模式空間,根據(jù)距離函數(shù)計(jì)算待分類(lèi)樣本X和每個(gè)訓(xùn)練樣本的距離(作為相似度),選擇與待分類(lèi)樣本距離最小的K個(gè)樣本作為X的K個(gè)最近鄰,最后以X的K個(gè)最近鄰中的大多數(shù)樣本所屬的類(lèi)別作為X的類(lèi)別。10十一月2024273K近鄰算法如圖7-4所示,有方塊和三角形兩類(lèi)數(shù)據(jù),它們分布在二維特征空間中。假設(shè)有一個(gè)新數(shù)據(jù)(圓點(diǎn))需要預(yù)測(cè)其所屬的類(lèi)別,根據(jù)“物以類(lèi)聚”,可以找到離圓點(diǎn)最近的幾個(gè)點(diǎn),以它們中的大多數(shù)點(diǎn)的類(lèi)別決定新數(shù)據(jù)所屬的類(lèi)別。如果k=3,由于圓點(diǎn)近鄰的3個(gè)樣本中,三角形占比2/3,則認(rèn)為新數(shù)據(jù)屬于三角形類(lèi)別。同理,k=5,則新數(shù)據(jù)屬于正方形類(lèi)別。10十一月2024283K近鄰算法如何度量樣本之間的距離(或相似度)是KNN算法的關(guān)鍵步驟之一。常見(jiàn)的數(shù)值屬性的相似度度量方法包括:閔可夫斯基距離(當(dāng)參數(shù)p=2時(shí)為歐幾里得距離,參數(shù)p=1時(shí)為曼哈頓距離)余弦相似度、皮爾遜相似系數(shù)、漢明距離、杰卡德相似系數(shù)等。在計(jì)算距離之前,需要把每個(gè)屬性的值規(guī)范化。對(duì)于算法中的K值,一般通過(guò)實(shí)驗(yàn)確定。K-最近鄰算法是一種非參數(shù)模型。10十一月2024293K近鄰算法10十一月2024303K近鄰算法10十一月202431優(yōu)點(diǎn):1.算法思路較為簡(jiǎn)單,易于實(shí)現(xiàn);2.當(dāng)有新樣本要加入訓(xùn)練集中時(shí),無(wú)需重新訓(xùn)練(即重新訓(xùn)練的代價(jià)低);3.計(jì)算時(shí)間和空間線(xiàn)性于訓(xùn)練集的規(guī)模,對(duì)某些問(wèn)題而言這是可行的。缺點(diǎn):1.分類(lèi)速度慢。2.各屬性的權(quán)重相同,影響準(zhǔn)確率。3.樣本庫(kù)容量依賴(lài)性較強(qiáng).4.K值不好確定。K=3時(shí),綠色未知點(diǎn)屬于
紅色三角;K=5時(shí),屬于藍(lán)色正方形3K近鄰算法3K近鄰算法10十一月202433支持向量機(jī)(SupportVetorMachine,SVM)10十一月2024344支持向量機(jī)支持向量機(jī)(SupportVetorMachine,SVM)由Vapnik等人于1995年首先提出,在解決小樣本、非線(xiàn)性及高維模式識(shí)別中表現(xiàn)出許多特有的優(yōu)勢(shì),并推廣到人臉識(shí)別、行人檢測(cè)和文本分類(lèi)等其他機(jī)器學(xué)習(xí)問(wèn)題中。SVM建立在統(tǒng)計(jì)學(xué)習(xí)理論的VC維理論和結(jié)構(gòu)風(fēng)險(xiǎn)最小原理基礎(chǔ)上,根據(jù)有限的樣本信息在模型的復(fù)雜性和學(xué)習(xí)能力之間尋求最佳平衡,以求獲得最好的推廣能力。SVM可以用于數(shù)值預(yù)測(cè)和分類(lèi)。10十一月2024354支持向量機(jī)36支持向量機(jī)(SupportVetorMachine,SVM)是一種對(duì)線(xiàn)性和非線(xiàn)性數(shù)據(jù)進(jìn)行分類(lèi)的方法。SVM使用一種非線(xiàn)性映射,把原訓(xùn)練數(shù)據(jù)映射到較高的維上,在新的維上,搜索最佳分離超平面。由簡(jiǎn)至繁SVM可分類(lèi)為三類(lèi):線(xiàn)性可分(linearSVMinlinearlyseparablecase)的線(xiàn)性SVM、線(xiàn)性不可分的線(xiàn)性SVM、非線(xiàn)性(nonlinear)SVM4支持向量機(jī)算法原理:支持向量機(jī)是一種對(duì)線(xiàn)性和非線(xiàn)性數(shù)據(jù)進(jìn)行分類(lèi)的方法。它使用一種非線(xiàn)性映射,把原始訓(xùn)練數(shù)據(jù)映射到較高的維上,在新的維上,搜索最佳分離超平面。SVM可分類(lèi)為三類(lèi):線(xiàn)性可分的線(xiàn)性SVM、線(xiàn)性不可分的線(xiàn)性SVM、非線(xiàn)性SVM。如果訓(xùn)練數(shù)據(jù)線(xiàn)性可分,則通過(guò)硬間隔最大化學(xué)習(xí)一個(gè)線(xiàn)性分類(lèi)器即線(xiàn)性可分支持向量機(jī),也稱(chēng)為硬間隔支持向量機(jī);如果訓(xùn)練數(shù)據(jù)近似線(xiàn)性可分,則通過(guò)軟間隔最大化學(xué)習(xí)得到一個(gè)線(xiàn)性分類(lèi)器即線(xiàn)性支持向量機(jī),也稱(chēng)為軟間隔支持向量機(jī);對(duì)于數(shù)據(jù)非線(xiàn)性可分的情況,通過(guò)擴(kuò)展線(xiàn)性SVM的方法,得到非線(xiàn)性的SVM,即采用非線(xiàn)性映射把輸入數(shù)據(jù)變換到較高維空間,在新的空間搜索分離超平面。10十一月2024374支持向量機(jī)1.數(shù)據(jù)線(xiàn)性可分的情況SVM的主要目標(biāo)是找到最佳超平面,以便在不同類(lèi)的數(shù)據(jù)點(diǎn)之間進(jìn)行正確分類(lèi)。超平面的維度等于輸入特征的數(shù)量減去1。圖7-5顯示了分類(lèi)的最佳超平面和支持向量(實(shí)心的數(shù)據(jù)樣本)。10十一月202438?4支持向量機(jī)10十一月202439DistancetoHyperplane40xx'原點(diǎn)到超平面的距離點(diǎn)x到超平面的距離:4支持向量機(jī)Margins41“PredictClass=+1”zone“PredictClass=-1”zoneH1:wx+b=1H2:wx+b=-1x-x+M=MarginWidth從分離超平面到到H1上任意點(diǎn)的距離是因此最大邊緣是4支持向量機(jī)4支持向量機(jī)10十一月2024424支持向量機(jī)10十一月2024434支持向量機(jī)10十一月2024444支持向量機(jī)10十一月2024454支持向量機(jī)數(shù)據(jù)非線(xiàn)性可分的情況在某些情況下,訓(xùn)練數(shù)據(jù)甚至連近似的線(xiàn)性劃分也找不到,線(xiàn)性超平面無(wú)法有效劃分正類(lèi)與負(fù)類(lèi),而是需要超曲面等非線(xiàn)性劃分。然而,非線(xiàn)性的優(yōu)化問(wèn)題很難求解。通常的做法是將輸入向量從輸入的空間投射到另一個(gè)空間,如圖7-6所示。在這個(gè)特征空間中,投射后的特征向量線(xiàn)性可分或者近似線(xiàn)性可分,然后通過(guò)線(xiàn)性支持向量機(jī)的方法求解。10十一月2024464支持向量機(jī)然而這樣做也帶來(lái)一個(gè)新的問(wèn)題,即使得投射后的特征向量(近似)線(xiàn)性可分的特征空間維度往往比原輸入空間的維度高很多,甚至具有無(wú)限個(gè)維度。為了解決新特征空間維度高的問(wèn)題,引入核方法(KernalMethod),在計(jì)算中不需要直接進(jìn)行非線(xiàn)性變換,從而避免由計(jì)算高維度向量帶來(lái)的問(wèn)題。10十一月2024474支持向量機(jī)在sklearn中SVM的算法庫(kù)分為兩類(lèi),一類(lèi)是分類(lèi)的算法庫(kù),包括SVC、NuSVC和LinearSVC3個(gè)類(lèi)。另一類(lèi)是回歸算法庫(kù),包括SVR、NuSVR和LinearSVR3個(gè)類(lèi)。相關(guān)的類(lèi)都包括在sklearn.svm模塊之中。10十一月2024484支持向量機(jī)SVM本是二分類(lèi)的分類(lèi)算法,但由于其強(qiáng)大的分類(lèi)性能,也被廣泛應(yīng)用于多分類(lèi)領(lǐng)域。在方法SVC中的參數(shù)ovo和ovr就是多分類(lèi)時(shí)需要進(jìn)行選擇的兩種不同策略。參數(shù)ovo(oneversusone)即一對(duì)一的分類(lèi)器,這時(shí)對(duì)K個(gè)類(lèi)別需要構(gòu)建K*(K-1)/2個(gè)分類(lèi)器;ovr(oneversusrest)指一對(duì)其他,這時(shí)對(duì)K個(gè)類(lèi)別只需要構(gòu)建K個(gè)分類(lèi)器。11/10/20245樸素貝葉斯網(wǎng)絡(luò)貝葉斯分類(lèi)是一類(lèi)分類(lèi)算法的總稱(chēng),這類(lèi)算法均以貝葉斯定理(BayesTheorem)為基礎(chǔ),采用了概率推理方法。貝葉斯定理提供了一種計(jì)算假設(shè)概論的方法。10十一月2024505樸素貝葉斯網(wǎng)絡(luò)10十一月2024515樸素貝葉斯網(wǎng)絡(luò)高斯樸素貝葉斯分類(lèi)10十一月2024525樸素貝葉斯網(wǎng)絡(luò)10十一月2024535樸素貝葉斯網(wǎng)絡(luò)10十一月2024545樸素貝葉斯網(wǎng)絡(luò)多項(xiàng)式樸素貝葉斯分類(lèi)多項(xiàng)式樸素貝葉斯(MultinomialNa?veBayes)經(jīng)常被用于處理多分類(lèi)問(wèn)題,比起原始的樸素貝葉斯分類(lèi)效果有了較大的提升。其公式如下:10十一月2024555樸素貝葉斯網(wǎng)絡(luò)Scikit-learn模塊中有Na?veBayes子模塊,包含了各種貝葉斯算法。關(guān)鍵在于將分類(lèi)器設(shè)置為樸素貝葉斯分類(lèi)器,接著調(diào)用分類(lèi)器訓(xùn)練并進(jìn)行分類(lèi)。10十一月2024566模型評(píng)估與選擇構(gòu)建的分類(lèi)器總是希望有較好的性能,如何評(píng)估分類(lèi)器性能,需要一些客觀的指標(biāo)進(jìn)行評(píng)判。比如,如何評(píng)估分類(lèi)器的準(zhǔn)確率(模型評(píng)估)以及如何在多個(gè)分類(lèi)器中選擇“最好的”一個(gè)。分類(lèi)器性能的度量10十一月2024576模型評(píng)估與選擇1.混淆矩陣根據(jù)實(shí)際類(lèi)別與機(jī)器學(xué)習(xí)預(yù)測(cè)類(lèi)別的組合(混淆矩陣,ConfusionMatrix)可分為真正例(TruePositive,TP)、假正例(FalsePositive,F(xiàn)P)、假負(fù)例(FalseNegative,F(xiàn)N)和真負(fù)例(TrueNegative,TN)四種情況。10十一月2024586模型評(píng)估與選擇分類(lèi)器常用評(píng)估量(1)準(zhǔn)確率和錯(cuò)誤率分類(lèi)器在檢驗(yàn)集上的準(zhǔn)確率(Accuracy)被定義為被該分類(lèi)器正確分類(lèi)的元組所占的百分比。(2)靈敏性和特效性敏感性又稱(chēng)真正類(lèi)率(truepositiverate,TPR),它表示了分類(lèi)器所識(shí)別出的正實(shí)例占所有正實(shí)例的比例。特效性是真負(fù)例率,即正確識(shí)別的負(fù)元組的百分比。10十一月2024596模型評(píng)估與選擇分類(lèi)器常用評(píng)估量(3)精度和召回率精度和召回率也在分類(lèi)中廣泛使用。精度(Precision)定義為標(biāo)記為正例的元組實(shí)際為正類(lèi)的百分比,可以看作精確度的度量,也被稱(chēng)為查準(zhǔn)率。召回率(Recall)定義為正元組標(biāo)記為正的百分比,是完全性的度量,也被稱(chēng)為查全率。10十一月2024606模型評(píng)估與選擇分類(lèi)器常用評(píng)估量10十一月2024616模型評(píng)估與選擇除了基于準(zhǔn)確率的度量外,還可以在其他方面進(jìn)行分類(lèi)器的比較,主要因素有:速度:構(gòu)建和使用分類(lèi)器的計(jì)算開(kāi)銷(xiāo)。魯棒性:對(duì)有噪聲或缺失值數(shù)據(jù)分類(lèi)器做出正確預(yù)測(cè)的能力。通常魯棒性用噪聲和缺失值漸增的一系列合成數(shù)據(jù)集進(jìn)行評(píng)估??缮炜s性:對(duì)于給定大量數(shù)據(jù)有效構(gòu)造分類(lèi)器的能力。通常,可伸縮性用規(guī)模漸增的一系列數(shù)據(jù)集評(píng)估??山忉屝裕簩?duì)分類(lèi)器提供的理解和洞察水平??山忉屝允侵饔^的,因?yàn)楹茈y評(píng)估。比如決策樹(shù)和分類(lèi)規(guī)則一般容易解釋?zhuān)S著它們變得更復(fù)雜,其可解釋性也隨之消失。10十一月2024626模型評(píng)估與選擇分類(lèi)器常用評(píng)估量(5)P-R曲線(xiàn)評(píng)價(jià)一個(gè)模型的好壞,不能僅靠精確率或者召回率,最好構(gòu)建多組精確率和召回率,繪制出模型的P-R曲線(xiàn)。在繪制P-R曲線(xiàn)的橫軸是召回率,縱軸是精確率。P-R曲線(xiàn)上的一個(gè)點(diǎn)代表著,在某一閾值下,模型將大于該閾值的結(jié)果判定為正樣本,小于該閾值的結(jié)果判定為負(fù)樣本,此時(shí)返回結(jié)果對(duì)應(yīng)的召回率和精確率。10十一月2024636模型評(píng)估與選擇分類(lèi)器常用評(píng)估量(6)接收者操作特征曲線(xiàn)接收者操作特征曲線(xiàn)(ReceiverOperatingCharacteristicCurve,ROC)是一種反映分類(lèi)模型敏感性和特異性連續(xù)變量的綜合指標(biāo),顯示了給定模型的真正例率(TPR)和假正例率(FPR)之間的權(quán)衡。ROC通過(guò)將連續(xù)變量設(shè)定出多個(gè)不同的臨界值,從而計(jì)算出一系列敏感性和特異性,并以TPR為縱坐標(biāo)、FPR為橫坐標(biāo)繪制曲線(xiàn),曲線(xiàn)下面積越大,診斷準(zhǔn)確性越高。ROC曲線(xiàn)上每個(gè)點(diǎn)反映著對(duì)同一信號(hào)刺激的感受性,最靠近坐標(biāo)圖左上方的點(diǎn)為敏感性和特異性均較高的臨界值。10十一月2024646模型評(píng)估與選擇10十一月2024656模型評(píng)估與選擇模型選擇當(dāng)假設(shè)空間含有不同的復(fù)雜度的模型時(shí),會(huì)面臨模型選擇(ModelSelection)問(wèn)題。我們希望所選擇的模型要與真模型的參數(shù)個(gè)數(shù)相同,所選擇的模型的參數(shù)向量與真模型的參數(shù)向量相近。然而,一味追求提高分類(lèi)器的預(yù)測(cè)能力,所選擇的模型的復(fù)雜度會(huì)比真模型要高,這種現(xiàn)象被稱(chēng)為過(guò)擬合(Over-fitting)。過(guò)擬合指學(xué)習(xí)時(shí)選擇的模型所含的參數(shù)過(guò)多,導(dǎo)致該模型對(duì)已知數(shù)據(jù)預(yù)測(cè)的很好,但對(duì)未知數(shù)據(jù)預(yù)測(cè)很差的現(xiàn)象。因此,模型選擇旨在避免過(guò)擬合并提高模型的預(yù)測(cè)能力。在模型選擇時(shí),不僅要考慮對(duì)已知數(shù)據(jù)的預(yù)測(cè)能力,還要考慮對(duì)未知數(shù)據(jù)的預(yù)測(cè)能力。10十一月2024666模型評(píng)估與選擇奧卡姆剃刀定律是機(jī)器學(xué)習(xí)選擇算法時(shí)可參照的標(biāo)準(zhǔn)之一。其含義是:在其他條件一樣的情況下,選擇簡(jiǎn)單的那個(gè)。該定律的意義在于數(shù)據(jù)的擬合和低復(fù)雜性之間實(shí)際上存在著折衷。理論上假設(shè)的解決方案越復(fù)雜,就越能擬合數(shù)據(jù),訓(xùn)練數(shù)據(jù)誤差就會(huì)越低(左下圖)。11/10/2024訓(xùn)練數(shù)據(jù)誤差未知數(shù)據(jù)的泛化誤差6模型評(píng)估與選擇泛化數(shù)據(jù)誤差實(shí)際是訓(xùn)練數(shù)據(jù)誤差與另一個(gè)名為過(guò)擬合誤差的函數(shù)之和。在泛化誤差最小得情況下,可獲得最佳復(fù)雜性。在現(xiàn)實(shí)生活中,通常只會(huì)獲得訓(xùn)練數(shù)據(jù)誤差。但實(shí)踐表明,如果你不去選擇能夠使訓(xùn)練數(shù)據(jù)誤差最小化的模型,而是選擇復(fù)雜性低一點(diǎn)的模型,算法的表現(xiàn)往往會(huì)更好。過(guò)擬合是機(jī)器學(xué)習(xí)算法性能不佳得主要緣由。這也是在機(jī)器學(xué)習(xí)中應(yīng)用奧卡姆剃刀定律的原因。11/10/20246模型評(píng)估與選擇1.模型選擇方法模型選擇方法主要有正則化和交叉驗(yàn)證方法。(1)正則化模型選擇的典型方法是正則化(Regularization)。正則化是結(jié)構(gòu)風(fēng)險(xiǎn)最小化策略的實(shí)現(xiàn),是在經(jīng)驗(yàn)風(fēng)險(xiǎn)上加一個(gè)正則化項(xiàng)(Regularizer)或懲罰項(xiàng)(Penalty)。正則化項(xiàng)一般是模型復(fù)雜度的單調(diào)遞增函數(shù),模型越復(fù)雜,正則化值就越大,比如,正則化項(xiàng)可以是模型參數(shù)向量的范數(shù)。10十一月2024696模型評(píng)估與選擇10十一月202470正則化符合奧卡姆剃刀(Occam’srazor)原理。奧卡姆剃刀原理應(yīng)用于模型選擇時(shí)認(rèn)為,在所有可能選擇的模型中,能夠很好地解釋已知數(shù)據(jù)并且盡可能簡(jiǎn)單才是最好的模型,也就是應(yīng)該選擇的模型。從貝葉斯估計(jì)的角度來(lái)看,正則化項(xiàng)對(duì)應(yīng)于模型的先驗(yàn)概率??梢约僭O(shè)復(fù)雜的模型有較大的先驗(yàn)概率,簡(jiǎn)單的模型有較小的先驗(yàn)概率。6模型評(píng)估與選擇(2)交叉驗(yàn)證另一種常用的模型選擇方法是交叉驗(yàn)證(CrossValidation)。如果給定的樣本數(shù)據(jù)充足,進(jìn)行模型選擇的一種簡(jiǎn)單方法是隨機(jī)地將數(shù)據(jù)集劃分為訓(xùn)練集(Trainingset)、驗(yàn)證集(ValidationSet)和測(cè)試集(TestSet)三部分。10十一月2024716模型評(píng)估與選擇
1.簡(jiǎn)單交叉驗(yàn)證簡(jiǎn)單交叉驗(yàn)證方法是隨機(jī)地將已給數(shù)據(jù)分為訓(xùn)練集和測(cè)試集(如70%的數(shù)據(jù)作為訓(xùn)練集,30%的數(shù)據(jù)作為測(cè)試集),然后用訓(xùn)練集在各種條件下(如不同的參數(shù)個(gè)數(shù))訓(xùn)練模型在測(cè)試集上評(píng)價(jià)各個(gè)模型的測(cè)試誤差,選出測(cè)試誤差最小的模型。10十一月202472fromsklearn.model_selectionimporttrain_test_splitimportnumpyasnpX=np.array([[1,2],[3,4],[5,6],[7,8]])y=np.array([1,2,2,1])X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.50,random_state=5)print("X_train:\n",X_train)print("y_train:\n",y_train)print("X_test:\n",X_test)print("y_test:\n",y_test)11/10/20242.k-折交叉驗(yàn)證在k-折交叉驗(yàn)證(k-foldCross-Validation)中,首先隨機(jī)地將已給數(shù)據(jù)劃分為k個(gè)互不相交的大小相同的子集,然后利用k-1個(gè)子集的數(shù)據(jù)訓(xùn)練模型,利用余下的子集測(cè)試模型。將這一過(guò)程對(duì)可能的k種選擇重復(fù)進(jìn)行,最后選出k次評(píng)測(cè)中平均測(cè)試誤差最小的模型。fromsklearn.model_selectionimportKFoldimportnumpyasnpX=np.array([[1,2],[3,4],[5,6],[7,8]])y=np.array([1,2,2,1])kf=KFold(n_splits=2)fortrain_index,test_indexinkf.split(X):print("Train:",train_index,"Validation:",test_index)X_train,X_test=X[train_index],X[test_index]y_train,y_test=y[train_index],y[test_index]6模型評(píng)估與選擇
3.留一交叉驗(yàn)證k折交叉驗(yàn)證的特殊情形是k=N,即k設(shè)置為元組的個(gè)數(shù),稱(chēng)為留一交叉驗(yàn)證(Leave-one-outCrossValidation),往往在數(shù)據(jù)缺乏的情況下使用。10十一月202474fromsklearn.model_selectionimportLeaveOneOutimportnumpyasnpX=np.array([[1,2],[3,4],[5,6],[7,8]])y=np.array([1,2,2,1])loo=LeaveOneOut()loo.get_n_splits(X)fortrain_index,test_indexinloo.split(X):print("train:",train_index,"validation:",test_index)第7章分類(lèi)組合分類(lèi)器(Ensemble)10十一月2024757組合分類(lèi)組合分類(lèi)器(Ensemble)是一個(gè)復(fù)合模型,由多個(gè)分類(lèi)器組合而成。組合分類(lèi)器往往比它的成員分類(lèi)器更準(zhǔn)確。10十一月202476VS.7組合分類(lèi)7組合分類(lèi)袋裝(Bagging)是一種采用隨機(jī)有放回的抽樣選擇訓(xùn)練數(shù)據(jù)構(gòu)造分類(lèi)器進(jìn)行組合的方法。如同找醫(yī)生看病,選擇多個(gè)醫(yī)生,根據(jù)多個(gè)醫(yī)生的診斷結(jié)果做出最終結(jié)果(多數(shù)表決),每個(gè)醫(yī)生具有相同的投票權(quán)重。10十一月2024787組合分類(lèi)在sklearn中,Bagging方法由BaggingClassifier統(tǒng)一提供,以用戶(hù)輸入的基模型和劃分子集的方法作為參數(shù)。其中,max_samples和max_features控制子集的大小,而bootstrap和bootstrap_features控制數(shù)據(jù)樣本和屬性是否替換。Oob_score=True可使得估計(jì)時(shí)采用已有的數(shù)據(jù)劃分樣本。10十一月2024797組合分類(lèi)提升和AdaBoost考慮找醫(yī)生看病的另外一種情況,選擇多個(gè)醫(yī)生,根據(jù)多個(gè)醫(yī)生的診斷結(jié)果做出最終結(jié)果(加權(quán)表決),每個(gè)醫(yī)生具有不同的投票權(quán)重。這就是提升(Boosting)的基本思想。10十一月2024807組合分類(lèi)10十一月2024817組合分類(lèi)10十一月2024827組合分類(lèi)10十一月202483scikit-learn中Adaboost類(lèi)庫(kù)包括AdaBoostClassifier和AdaBoostRegressor兩個(gè),AdaBoostClassifier用于分類(lèi),AdaBoostRegressor用于回歸。7組合分類(lèi)隨機(jī)森林隨機(jī)森林就是通過(guò)集成學(xué)習(xí)的思想將多棵樹(shù)集成的一種算法,它的基本單元是決策樹(shù)。想象組合分類(lèi)器中的每個(gè)分類(lèi)器都是一棵決策樹(shù),因此分類(lèi)器的集合就是一個(gè)“森林”。更準(zhǔn)確說(shuō),每一棵樹(shù)都依賴(lài)于獨(dú)立抽樣,并與森林中所有樹(shù)具有相同分布的隨機(jī)向量值。隨機(jī)森林是利用多個(gè)決策樹(shù)對(duì)樣本進(jìn)行訓(xùn)練、分類(lèi)并預(yù)測(cè)的一種算法,主要應(yīng)用于回歸和分類(lèi)場(chǎng)景。在對(duì)數(shù)據(jù)進(jìn)行分類(lèi)的同時(shí),還可以給出各個(gè)變量的重要性評(píng)分,評(píng)估各個(gè)變量在分類(lèi)中所起的作用。分類(lèi)時(shí),每棵樹(shù)都投票并且返回得票最多的類(lèi)。10十一月2024847組合分類(lèi)隨機(jī)森林算法流程(1)訓(xùn)練總樣本的個(gè)數(shù)為N,則單棵決策樹(shù)從N個(gè)訓(xùn)練集中有放回的隨機(jī)抽取N個(gè)作為此單棵樹(shù)的訓(xùn)練樣本(2)令訓(xùn)練樣例的輸入特征的個(gè)數(shù)為M,m遠(yuǎn)遠(yuǎn)小于M,則我們?cè)诿靠脹Q策樹(shù)的每個(gè)結(jié)點(diǎn)上進(jìn)行分裂時(shí),從M個(gè)輸入特征里隨機(jī)選擇m個(gè)輸入特征,然后從這m個(gè)輸入特征里選擇一個(gè)最好的進(jìn)行分裂。m在構(gòu)建決策樹(shù)的過(guò)程中不會(huì)改變。(3)每棵樹(shù)都一直這樣分裂下去,直到該結(jié)點(diǎn)的所有訓(xùn)練樣例都屬于同一類(lèi),不需要剪枝。10十一月2024857組合分類(lèi)2.隨機(jī)森林的兩種形式(1)Forest-RI:使用裝袋算法與隨機(jī)屬性選擇結(jié)合構(gòu)建。給定d個(gè)元組的訓(xùn)練集D,為組合分類(lèi)器產(chǎn)生k棵決策樹(shù)的一般過(guò)程如下:對(duì)于每次迭代i(i=1,2,3,…,k),使用有放回的抽樣,由D產(chǎn)生d個(gè)元組的訓(xùn)練集Di。也就是說(shuō),每個(gè)Di都是D的一個(gè)自助樣本,使得某些元組可能在Di出現(xiàn)多次,而另一些可能不出現(xiàn)。設(shè)F是用來(lái)在每個(gè)結(jié)點(diǎn)決定劃分的屬性數(shù),其中F遠(yuǎn)小于可用的屬性數(shù)。為了構(gòu)造決策樹(shù)分類(lèi)器Mi,在每個(gè)結(jié)點(diǎn)隨機(jī)選擇F個(gè)屬性作為結(jié)點(diǎn)劃分的候選屬性。使用CART算法的方法來(lái)增長(zhǎng)樹(shù)。樹(shù)增長(zhǎng)達(dá)最大規(guī)模,并且不剪枝。10十一月2024867組合分類(lèi)2.隨機(jī)森林的兩種形式(2)Forest-RC:使用輸入屬性的隨機(jī)線(xiàn)性組合。它不是隨機(jī)的選擇一個(gè)屬性子集,而是由已有屬性的線(xiàn)性組合創(chuàng)建一些新屬性(特征)。即一個(gè)屬性由指定的L個(gè)原屬性組合產(chǎn)生。在每個(gè)給定的結(jié)點(diǎn),隨機(jī)選取L個(gè)屬性,并且從[-1,1]中隨機(jī)選取的數(shù)作為系數(shù)相加。產(chǎn)生F個(gè)線(xiàn)性組合,并且其中搜索到最佳劃分。當(dāng)只有少量屬性可用時(shí),為了降低個(gè)體分類(lèi)器之間的相關(guān)性,這種形式的隨機(jī)森林是有用的。10十一月2024877組合分類(lèi)10十一月202488本章小結(jié)分類(lèi)是一種數(shù)據(jù)分析形式,它提取描述數(shù)據(jù)類(lèi)的模型。分類(lèi)器預(yù)測(cè)類(lèi)別標(biāo)號(hào)(類(lèi))。數(shù)值預(yù)測(cè)建立連續(xù)值函數(shù)模型。分類(lèi)和數(shù)值預(yù)測(cè)是兩類(lèi)主要的預(yù)測(cè)問(wèn)題。決策樹(shù)歸納是一種自頂向下遞歸樹(shù)歸納算法,它使用一種屬性選擇度量為樹(shù)的每個(gè)非樹(shù)葉結(jié)點(diǎn)選擇測(cè)試屬性。ID3、C4.5和CART都是這種算法的例子,它們使用不同的屬性選擇度量。樸素貝葉斯分類(lèi)基于后驗(yàn)概率的貝葉斯定理。它假定類(lèi)條件獨(dú)立,即一個(gè)屬性值對(duì)給定類(lèi)的影響?yīng)毩⒂谄渌麑傩缘闹怠?0十一月202489本章小結(jié)支持向量機(jī)(SVM)是一種用于線(xiàn)性和非線(xiàn)性數(shù)據(jù)的分類(lèi)算法。它把源數(shù)據(jù)變換到較高維空間,使用稱(chēng)作支持向量的基本元組,從中發(fā)現(xiàn)分離數(shù)據(jù)的超平面?;煜仃嚳梢杂脕?lái)評(píng)估分類(lèi)器的質(zhì)量。評(píng)估分類(lèi)器預(yù)測(cè)能力的度量包括準(zhǔn)確率、靈敏度(又稱(chēng)為召回率)、特效性、精度、F和Fβ。分類(lèi)器的構(gòu)造與評(píng)估需要把標(biāo)記的數(shù)據(jù)集劃分成訓(xùn)練集和檢驗(yàn)集。保持、隨機(jī)抽樣、交叉驗(yàn)證和自助法都是用于這種劃分的典型方法。10十一月202490本章小結(jié)組合方法可以通過(guò)學(xué)習(xí)和組合一系列個(gè)體(基)分類(lèi)器模型來(lái)提高總體準(zhǔn)確率。裝袋、提升和隨機(jī)森林都是流行的組合方法。當(dāng)感興趣的主類(lèi)只由少量元組代表時(shí)就會(huì)出現(xiàn)類(lèi)不平衡問(wèn)題。處理這一問(wèn)題的策略包括過(guò)抽樣、欠抽樣、閾值移動(dòng)和組合技術(shù)。10十一月202491Python數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)第8章聚類(lèi)第8章聚類(lèi)本章內(nèi)容聚類(lèi)分析K-Means聚類(lèi)層次聚類(lèi)基于密度的聚類(lèi)其他聚類(lèi)方法聚類(lèi)評(píng)估10十一月202493第8章聚類(lèi)94無(wú)監(jiān)督學(xué)習(xí)(UnsuperviseLearning)著重于發(fā)現(xiàn)數(shù)據(jù)本身的分布特點(diǎn)。與監(jiān)督學(xué)習(xí)(SupervisedLearning)不同,無(wú)監(jiān)督學(xué)習(xí)不需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)記。從功能角度講,無(wú)監(jiān)督學(xué)習(xí)模型可以發(fā)現(xiàn)數(shù)據(jù)的“群落”,同時(shí)也可以尋找“離群”的樣本。另外,對(duì)于特征維度非常高的數(shù)據(jù)樣本,同樣可以通過(guò)無(wú)監(jiān)督學(xué)習(xí)進(jìn)行數(shù)據(jù)降維,保留最具有區(qū)分性的低維度特征。聚類(lèi)是一個(gè)將數(shù)據(jù)對(duì)象集劃分為多個(gè)組或簇的過(guò)程,使得簇內(nèi)的數(shù)據(jù)對(duì)象具有很高的相似性,但不同簇間的對(duì)象具有很高的相異性。第8章聚類(lèi)95聚類(lèi)算法分類(lèi)隨著聚類(lèi)分析技術(shù)的蓬勃發(fā)展,目前已有很多類(lèi)型的聚類(lèi)算法。但很難對(duì)聚類(lèi)方法進(jìn)行簡(jiǎn)單的分類(lèi),因?yàn)檫@些類(lèi)別的聚類(lèi)可能重疊,從而使得一種方法具有一些交叉的特征。一般而言,聚類(lèi)算法被劃分為以下幾類(lèi):1.劃分方法2.基于層次的方法3.基于密度的方法4.局域網(wǎng)格的方法K-Means聚類(lèi)聚類(lèi)分析中最廣泛使用的算法為K-Means聚類(lèi)算法。10十一月202496給定一個(gè)n個(gè)對(duì)象或元組的數(shù)據(jù)庫(kù),一個(gè)劃分方法構(gòu)建數(shù)據(jù)的k個(gè)劃分,每個(gè)劃分表示一個(gè)簇,k<=n,而且滿(mǎn)足:(1)每個(gè)組至少包含一個(gè)對(duì)象;(2)每個(gè)對(duì)象屬于且僅屬于一個(gè)組。劃分時(shí)要求同一個(gè)聚類(lèi)中的對(duì)象盡可能地接近或相關(guān),不同聚類(lèi)中的對(duì)象盡可能地遠(yuǎn)離或不同。K-Means算法是一個(gè)迭代的優(yōu)化算法,最終使得下面均方誤差最小。
K-Means聚類(lèi)K-Means算法:10十一月202497用于劃分的K-Means算法,其中每個(gè)簇的中心都用簇中所有對(duì)象的均值來(lái)表示。K-Means聚類(lèi)模型所采用的迭代算法直觀易懂且非常實(shí)用。但是具有容易收斂到局部最優(yōu)解和需要預(yù)先設(shè)定簇的數(shù)量的缺陷。K-Means聚類(lèi)98K=2隨機(jī)劃分更新聚類(lèi)中心更新聚類(lèi)中心指派對(duì)象類(lèi)標(biāo)號(hào)Loopifneeded初始數(shù)據(jù)集k均值算法的評(píng)論優(yōu)點(diǎn):可擴(kuò)展性較好,算法復(fù)雜度為O(nkt),其中n為對(duì)象總數(shù),k是簇的個(gè)數(shù),t是迭代次數(shù)。經(jīng)常終止于局部最優(yōu)解k均值算法的評(píng)論缺點(diǎn)只有當(dāng)簇均值有定義的情況下,k均值方法才能使用。(某些分類(lèi)屬性的均值可能沒(méi)有定義)用戶(hù)必須首先給定簇?cái)?shù)目不適合發(fā)現(xiàn)非凸形狀的簇,或者大小差別很大的簇對(duì)噪聲和離群點(diǎn)數(shù)據(jù)敏感k均值算法實(shí)現(xiàn)fromsklearn.datasetsimportload_irisfromsklearn.clusterimportKMeansiris=load_iris()#加載數(shù)據(jù)集X=iris.dataestimator=KMeans(n_clusters=3)#構(gòu)造K-Means聚類(lèi)模型estimator.fit(X)#數(shù)據(jù)導(dǎo)入模型進(jìn)行訓(xùn)練label_pred=estimator.labels_#獲取聚類(lèi)標(biāo)簽print(label_pred)#顯示各個(gè)樣本所屬的類(lèi)別標(biāo)簽[111111111111111111111111111111111111111111111111110020000000000000000000000002000000000000000000000020222202222220022220202022002222202222022202220220]11/10/2024k均值方法的變種k均值方法有些變種,他們的區(qū)別在于不同的初始k個(gè)均值的選擇不同的相異度計(jì)算不同的計(jì)算簇均值的策略k均值方法的變種聚類(lèi)分類(lèi)數(shù)據(jù)的方法:k眾數(shù)(mode)方法用眾數(shù)來(lái)替代簇的均值采用新的相異性度量處理分類(lèi)對(duì)象采用基于頻率的方法更新簇的眾數(shù)可以集成k均值和k眾數(shù)方法,對(duì)具有數(shù)值和分類(lèi)值的數(shù)據(jù)進(jìn)行聚類(lèi)K-Means聚類(lèi)K-Means算法改進(jìn):1.K-means++算法K-means算法初始時(shí)隨機(jī)選取數(shù)據(jù)集中K個(gè)點(diǎn)作為聚類(lèi)中心,不同的初始聚類(lèi)中心可能導(dǎo)致完全不同的聚類(lèi)結(jié)果。K-means++算法初始的聚類(lèi)中心之間的相互距離要盡可能的遠(yuǎn)。10十一月2024104K-Means聚類(lèi)K-Means算法改進(jìn):2.ISODATA算法ISODATA的全稱(chēng)是迭代自組織數(shù)據(jù)分析法,是在K-means算法的基礎(chǔ)上,增加對(duì)聚類(lèi)結(jié)果的“合并”和“分裂”兩個(gè)操作,當(dāng)屬于某個(gè)類(lèi)別的樣本數(shù)過(guò)少時(shí)則刪除該類(lèi),當(dāng)屬于某個(gè)類(lèi)別的樣本數(shù)過(guò)多、分散程度較大時(shí),把這個(gè)類(lèi)分裂為兩個(gè)子類(lèi)別。10十一月2024105K-Means聚類(lèi)K-Means算法改進(jìn):3.MiniBatch-KMeansMiniBatch-KMeans是一種能盡量保持聚類(lèi)準(zhǔn)確性但能大幅度降低計(jì)算時(shí)間的聚類(lèi)模型。MiniBatch-KMeans聚類(lèi)每次迭代并不采用所有樣本,而是每次等量采樣獲得小的樣本集并把小樣本集中的樣本劃歸到距離最近的中心所在的簇,然后進(jìn)行聚類(lèi)中心點(diǎn)的更新。與K-Means算法相比,簇中心點(diǎn)的更新是在每個(gè)小的樣本集上。MiniBatch-KMeans可以大大減少算法運(yùn)行時(shí)間,但產(chǎn)生的聚類(lèi)效果只是略低與K-Means算法,適合于極大數(shù)據(jù)量的聚類(lèi)分析。10十一月20241063.層次聚類(lèi)算法原理層次聚類(lèi)(HierarchicalClustering)就是按照某種方法進(jìn)行層次分類(lèi),直到滿(mǎn)足某種條件為止。層次聚類(lèi)主要分成兩類(lèi):凝聚:從下到上。首先將每個(gè)對(duì)象作為一個(gè)簇,然后合并這些原子簇為越來(lái)越大的簇,直到所有的對(duì)象都在一個(gè)簇中,或者滿(mǎn)足某個(gè)終結(jié)條件。分裂:從上到下。首先將所有對(duì)象置于同一個(gè)簇中,然后逐漸細(xì)分為越來(lái)越小的簇,直到每個(gè)對(duì)象自成一簇,或者達(dá)到了某個(gè)終止條件。10十一月20241073.層次聚類(lèi)簇間距離度量1.最短距離法(最大相似度)最短距離被定義為兩個(gè)類(lèi)中最靠近的兩個(gè)對(duì)象間的距離為簇間距離。2.最長(zhǎng)距離法(最小相似度)最長(zhǎng)距離被定義為兩個(gè)類(lèi)中最遠(yuǎn)的像個(gè)對(duì)象間的距離為簇間距離。10十一月20241083.層次聚類(lèi)簇間距離度量3.類(lèi)平均法計(jì)算兩類(lèi)中任意兩個(gè)對(duì)象間的距離的平均值作為簇間距離4.中心法定義兩類(lèi)的兩個(gè)中心點(diǎn)的距離為簇間距離。10十一月20241093.層次聚類(lèi)分裂層次聚類(lèi)DIANA分裂的層次聚類(lèi)方法使用自頂向下的策略把對(duì)象劃分到層次結(jié)構(gòu)中。從包含所有對(duì)象的簇開(kāi)始,每一步分裂一個(gè)簇,直到僅剩單點(diǎn)簇或者滿(mǎn)足用戶(hù)指定的簇?cái)?shù)為止。DIANA算法是典型的層次分裂聚類(lèi)算法。DIANA算法中用到如下兩個(gè)定義:簇的直徑:計(jì)算一個(gè)簇中任意兩個(gè)數(shù)據(jù)點(diǎn)之間的歐式距離,選取距離中的最大值作為簇的直徑。平均相異度:兩個(gè)數(shù)據(jù)點(diǎn)之間的平均距離。10十一月20241103.層次聚類(lèi)DIANA算法描述:10十一月20241113.層次聚類(lèi)凝聚層次聚類(lèi)AGNES凝聚的層次聚類(lèi)方法使用自底向上的策略把對(duì)象組織到層次結(jié)構(gòu)中。開(kāi)始時(shí)以每個(gè)對(duì)象作為一個(gè)簇,每一步合并兩個(gè)最相似的簇。AGNES算法是典型的凝聚層次聚類(lèi),起始將每個(gè)對(duì)象作為一個(gè)簇,然后根據(jù)合并準(zhǔn)則逐步合并這些簇。兩個(gè)簇間的相似度由這兩個(gè)不同簇中距離最近的數(shù)據(jù)點(diǎn)的相似度確定。聚類(lèi)的合并過(guò)程反復(fù)進(jìn)行直到所有對(duì)象最終滿(mǎn)足終止條件設(shè)置的簇?cái)?shù)目。10十一月20241123.層次聚類(lèi)凝聚層次聚類(lèi)AGNES10十一月20241133.層次聚類(lèi)凝聚層次聚類(lèi)AGNES10十一月20241143.層次聚類(lèi)凝聚層次聚類(lèi)AGNES10十一月20241153.層次聚類(lèi)層次聚類(lèi)應(yīng)用Python中層次聚類(lèi)的函數(shù)是AgglomerativeClustering(),最重要的參數(shù)有3個(gè):n_clusters為聚類(lèi)數(shù)目,affinity為樣本距離定義,linkage是類(lèi)間距離的定義,有3種取值:ward:組間距離等于兩類(lèi)對(duì)象之間的最小距離average:組間距離等于兩組對(duì)象之間的平均距離complete:組間距離等于兩組對(duì)象之間的最大距離10十一月20241164基于密度的聚類(lèi)Generateclustersofarbitraryshapes.Robustagainstnoise.NoKvaluerequiredinadvance.Somewhatsimilartohumanvision.117劃分和層次方法旨在發(fā)現(xiàn)球狀簇,很難發(fā)現(xiàn)任意形狀的簇。4基于密度的聚類(lèi)基于密度的聚類(lèi)算法的主要思想是:只要鄰近區(qū)域的密度(對(duì)象或數(shù)據(jù)點(diǎn)的數(shù)目)超過(guò)某個(gè)閾值
,就把它加到與之相近的聚類(lèi)中。也就是說(shuō),對(duì)給定類(lèi)中的每個(gè)數(shù)據(jù)點(diǎn),在一個(gè)給定范圍的區(qū)域中必須至少包含某個(gè)數(shù)目的點(diǎn)?;诿芏鹊木垲?lèi)算法代表算法有:DBSCAN算法、OPTICS算法及DENCLUE算法等。
10十一月20241184基于密度的聚類(lèi)兩個(gè)參數(shù):Eps:鄰域最大半徑MinPts:在Eps鄰域中的最少點(diǎn)數(shù)定義1(Eps鄰域)
給定一個(gè)對(duì)象
p,p的Eps鄰域
NEps(p)定義為以
p為核心,以Eps為半徑的d維超球體區(qū)域,即:其中,D為d維實(shí)空間上的數(shù)據(jù)集,dist(p,q)表示D中的2個(gè)對(duì)象p和q之間的距離。1194基于密度的聚類(lèi)DBSCAN算法涉及2個(gè)參數(shù)5個(gè)定義:10十一月20241202個(gè)參數(shù):Eps:鄰域最大半徑MinPts:在Eps鄰域中的最少點(diǎn)數(shù)5個(gè)定義見(jiàn)表:定義內(nèi)容Eps鄰域給定一個(gè)對(duì)象
p,p的Eps鄰域
NEps(p)定義為以
p為核心,以Eps為半徑的d維超球體區(qū)域核心點(diǎn)與邊界點(diǎn)對(duì)于對(duì)象p∈D,給定一個(gè)整數(shù)MinPts,如果p的Eps鄰域內(nèi)的對(duì)象數(shù)滿(mǎn)足|NEps(p)|≥MinPts
,則稱(chēng)p為(Eps,MinPts)條件下的核心點(diǎn);不是核心點(diǎn)但落在某個(gè)核心點(diǎn)的Eps鄰域內(nèi)的對(duì)象稱(chēng)為邊界點(diǎn)4基于密度的聚類(lèi)10十一月2024121直接密度可達(dá)給定
(Eps,MinPts),如果對(duì)象p和
q同時(shí)滿(mǎn)足如下條件:p∈NEps(q);|NEps(q)|≥MinPts
(即q是核心點(diǎn)),則稱(chēng)對(duì)象
p是從對(duì)象
q出發(fā),直接密度可達(dá)的密度可達(dá)給定數(shù)據(jù)集D,當(dāng)存在一個(gè)對(duì)象鏈
p1,p2,p3,…,pn,
其中
p1=q,
pN=
p,對(duì)于
pi∈D,如果在條件(Eps,MinPts)下pi+1從pi
直接密度可達(dá),則稱(chēng)對(duì)象p從對(duì)象q在條件
(Eps,MinPts)下密度可達(dá)密度相連如果數(shù)據(jù)集D中存在一個(gè)對(duì)象o,使得對(duì)象p和q是從o在
(Eps,MinPts)條件下密度可達(dá)的,那么稱(chēng)對(duì)象p和q在
(Eps,MinPts)條件下密度相連定義2(核心點(diǎn)與邊界點(diǎn))
對(duì)于對(duì)象p∈D,給定一個(gè)整數(shù)MinPts,如果p的Eps鄰域內(nèi)的對(duì)象數(shù)滿(mǎn)足|NEps(p)|≥MinPts
,則稱(chēng)p為(Eps,MinPts)條件下的核心點(diǎn);不是核心點(diǎn)但落在某個(gè)核心點(diǎn)的Eps鄰域內(nèi)的對(duì)象稱(chēng)為邊界點(diǎn)。
CorePointNoisePointBorderPoint4基于密度的聚類(lèi)4基于密度的聚類(lèi)定義3(直接密度可達(dá))
如圖所示,給定(Eps,MinPts),如果對(duì)象
p和
q同時(shí)滿(mǎn)足如下條件:p∈NEps(q);|NEps(q)|≥MinPts
(即q是核心點(diǎn)),
則稱(chēng)對(duì)象
p是從對(duì)象
q出發(fā),直接密度可達(dá)的。定義4(密度可達(dá))
如圖所示,給定數(shù)據(jù)集D,當(dāng)存在一個(gè)對(duì)象鏈
p1,p2,p3,…,pn,
其中
p1=q,
pN=
p,對(duì)于
pi∈D,如果在條件(Eps,MinPts)下
pi+1從pi
直接密度可達(dá),則稱(chēng)對(duì)象p從對(duì)象q在條件(Eps,MinPts)下密度可達(dá)。密度可達(dá)是非對(duì)稱(chēng)的,即p從q密度可達(dá)不能推出q也從p密度可達(dá)。
4基于密度的聚類(lèi)定義5(密度相連)
如圖所示,如果數(shù)據(jù)集D中存在一個(gè)對(duì)象o,使得對(duì)象p和q是從o在(Eps,MinPts)條件下密度可達(dá)的,那么稱(chēng)對(duì)象p和q在(Eps,MinPts)條件下密度相連。密度相連是對(duì)稱(chēng)的。4基于密度的聚類(lèi)4基于密度的聚類(lèi)126pqdirectlydensityreachablepqdensityreachableoqpdensityconnected4基于密度的聚類(lèi)DBSCAN算法描述:10十一月2024127輸入:Eps、MinPts和包含n個(gè)對(duì)象的數(shù)據(jù)庫(kù)。
輸出:基于密度的聚類(lèi)結(jié)果。
方法:(1)任意選取一個(gè)沒(méi)有加簇標(biāo)簽的點(diǎn)p;(2)得到所有從p關(guān)于
Eps和
MinPts密度可達(dá)的點(diǎn);(3)如果p是一個(gè)核心點(diǎn),形成一個(gè)新的簇,給簇內(nèi)所有對(duì)象點(diǎn)加簇標(biāo)簽;(4)如果p是一個(gè)邊界點(diǎn),沒(méi)有從p密度可達(dá)的點(diǎn),DBSCAN將訪問(wèn)數(shù)據(jù)庫(kù)中的下一個(gè)點(diǎn);(5)繼續(xù)這一過(guò)程,直到數(shù)據(jù)庫(kù)中所有的點(diǎn)都被處理。-鄰域?qū)ふ揖垲?lèi),將具有足夠高密度的區(qū)域劃分為簇,并可以在帶有“噪聲”的空間數(shù)據(jù)庫(kù)中發(fā)現(xiàn)任意形狀的聚類(lèi)。但是,DBSCAN算法對(duì)用戶(hù)設(shè)置的參數(shù)敏感,Eps和MinPts的設(shè)置會(huì)影響聚類(lèi)的效果。針對(duì)這一問(wèn)題,OPTICS(OrderingPointstoIdentifytheClusteringStructure)算法被提出,它通過(guò)引入核心距離和可達(dá)距離,使得聚類(lèi)算法對(duì)輸入的參數(shù)不敏感。
4基于密度的聚類(lèi)10十一月2024128DBSCAN需要對(duì)數(shù)據(jù)集中的每個(gè)對(duì)象進(jìn)行考察,通過(guò)檢查每個(gè)點(diǎn)的4基于密度的聚類(lèi)算法實(shí)現(xiàn)課本例8-3利用sklearn實(shí)現(xiàn):11/10/2024importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.clusterimportDBSCANfromsklearnimportdatasetsiris=datasets.load_iris()data=iris.datadbscan=DBSCAN(eps=0.4,min_samples=10,metric='euclidean')dbscan.fit(data)label_pred=dbscan.labels_5其他聚類(lèi)方法除了常用的劃分聚類(lèi)、層次聚類(lèi)和密度聚類(lèi)方法之外,還有一些聚類(lèi)方法如網(wǎng)格聚類(lèi)方法STING、概念聚類(lèi)COBWEB和模糊聚類(lèi)方法等。1.STING算法STING(StatisticalInformationGrid_basedMethod)是一種基于網(wǎng)格的多分辨率的聚類(lèi)技術(shù),它將輸入對(duì)象的空間區(qū)域劃分成矩形單元,空間可以用分層和遞歸方法進(jìn)行劃分。這種多層矩形單元對(duì)應(yīng)不同的分辨率,并且形成一個(gè)層次結(jié)構(gòu),每個(gè)高層單元被劃分為低一層的單元。有關(guān)每個(gè)網(wǎng)格單元的屬性的統(tǒng)計(jì)信息(如均值、最大值和最小值)被作為統(tǒng)計(jì)參數(shù)預(yù)先計(jì)算和存儲(chǔ)。10十一月20241305其他聚類(lèi)方法除了常用的劃分聚類(lèi)、層次聚類(lèi)和密度聚類(lèi)方法之外,還有一些聚類(lèi)方法如網(wǎng)格聚類(lèi)方法STING、概念聚類(lèi)COBWEB和模糊聚類(lèi)方法等。2COBWEB概念聚類(lèi)是機(jī)器學(xué)習(xí)中的一種聚類(lèi)算法。大多數(shù)的概念聚類(lèi)方法采用了統(tǒng)計(jì)學(xué)方法,在決定概念或聚類(lèi)時(shí)使用概率度量。COBWEB算法即簡(jiǎn)單增量概念聚類(lèi)算法,以一個(gè)分類(lèi)樹(shù)的形式創(chuàng)建層次聚類(lèi),它的輸入對(duì)象用分類(lèi)屬性-值對(duì)進(jìn)行描述。10十一月20241315其他聚類(lèi)方法3模糊聚類(lèi)10十一月2024132模糊C均值聚類(lèi)(FuzzyC-means,F(xiàn)CM)融合了模糊理論的精髓。相較于K-means的硬聚類(lèi),F(xiàn)CM聚類(lèi)提供了更加靈活的聚類(lèi)結(jié)果,它對(duì)每個(gè)對(duì)象和每個(gè)簇賦予一個(gè)權(quán)值,指明對(duì)象屬于該簇的程度(隸屬度)。5其他聚類(lèi)方法3模糊聚類(lèi)10十一月2024133采用拉格朗日乘數(shù)法,求解得到參數(shù)的更新值:5其他聚類(lèi)方法3模糊聚類(lèi)10十一月2024134輸入:數(shù)據(jù)樣本X輸出:每個(gè)樣本屬于的隸屬度及聚類(lèi)中心過(guò)程:(1)設(shè)置初始值:算法迭代時(shí)目標(biāo)函數(shù)的精度閾值,模糊度和迭代的最大次數(shù);(2)初始化聚類(lèi)中心和隸屬度矩陣;(3)使用公式8.9-8.10更新隸屬度矩陣
和聚類(lèi)中心
;(4)加入
或迭代次數(shù)
結(jié)束迭代過(guò)程,否則轉(zhuǎn)步驟(3);5其他聚類(lèi)方法Python中提供了模糊運(yùn)算的包scikit-fuzzy,簡(jiǎn)稱(chēng)skfuzzy,初次使用時(shí)需要安裝。skfuzzy中包含了FCM聚類(lèi)方法:center,u,u0,d,jm,p,fpc=cmeans(x.T,m=2,c=k,error=0.5,maxiter=1000)其中的主要參數(shù)u是最終的隸屬度矩陣,u0是初始化隸屬度矩陣,d是每個(gè)數(shù)據(jù)到各個(gè)中心的歐式距離矩陣,jm是目標(biāo)函數(shù)優(yōu)化,p是迭代次數(shù),fpc是評(píng)價(jià)指標(biāo),0表示最差、1最好。11/10/20245其他聚類(lèi)方法11/10/20245其他聚類(lèi)方法11/10/20245其他聚類(lèi)方法11/10/20245其他聚類(lèi)方法11/10/20245其他聚類(lèi)方法11/10/2024在sklearn中利用GaussianMixture方法實(shí)現(xiàn)高斯混合聚類(lèi),主要參數(shù)有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年校園食品供應(yīng)合同范本
- 企業(yè)培訓(xùn)合作計(jì)劃
- 2024出租車(chē)租賃經(jīng)營(yíng)合同企業(yè)租賃經(jīng)營(yíng)合同
- 2024室內(nèi)裝飾設(shè)計(jì)合同書(shū)樣本
- 軟件外包合同樣本
- 社區(qū)停車(chē)位租賃合同范本
- 賣(mài)房代理合同格式
- 公司貸款償還合同范例
- 專(zhuān)業(yè)攝影合作協(xié)議書(shū)模板
- 房屋租賃合同安全協(xié)議
- 2024中國(guó)郵政集團(tuán)公司貴州省分公司社會(huì)招聘191人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 無(wú)人機(jī)基礎(chǔ)知識(shí)問(wèn)答題庫(kù)100道及答案解析
- 郵政儲(chǔ)匯業(yè)務(wù)員(高級(jí))職業(yè)技能鑒定考試題及答案
- 建筑架子工(普通腳手架)??荚囶}及答案
- 2024~2025學(xué)年七年級(jí)上冊(cè)數(shù)學(xué)第五章 一元一次方程章節(jié)測(cè)試(含簡(jiǎn)單答案)
- 2024年銀行外匯業(yè)務(wù)知識(shí)理論考試題庫(kù)及答案(含各題型)
- Unit 4 What can you do Part A lets learn (教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教PEP版英語(yǔ)五年級(jí)上冊(cè)
- 藥品不良反應(yīng)與藥物警戒智慧樹(shù)知到答案2024年山東藥品食品職業(yè)學(xué)院
- 2024年全國(guó)職業(yè)院校技能大賽高職組(建筑裝飾數(shù)字化施工賽項(xiàng))備賽試題庫(kù)(含答案)
- 2-1、職業(yè)生涯規(guī)劃概述
- 2024年歷年考研英語(yǔ)真題與答案
評(píng)論
0/150
提交評(píng)論