數(shù)據(jù)挖掘經(jīng)典算法大全_第1頁
數(shù)據(jù)挖掘經(jīng)典算法大全_第2頁
數(shù)據(jù)挖掘經(jīng)典算法大全_第3頁
數(shù)據(jù)挖掘經(jīng)典算法大全_第4頁
數(shù)據(jù)挖掘經(jīng)典算法大全_第5頁
已閱讀5頁,還剩143頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)挖掘經(jīng)典算法大全技術(shù)創(chuàng)新,變革未來智慧IT數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)K-均值聚類-簡介 從無標(biāo)簽數(shù)據(jù)中組織數(shù)據(jù)的結(jié)構(gòu),從而對樣本進(jìn)行分組,是無監(jiān)督學(xué)習(xí)的一種常用聚類方法。聚類示例將無標(biāo)簽的數(shù)據(jù)集分成兩組輸入數(shù)據(jù)不含任何標(biāo)簽將相似的樣本劃分為一個(gè)組K-均值聚類-簡介原始數(shù)據(jù)集劃分為2個(gè)簇劃分為4個(gè)簇K-均值聚類-原理 K-means聚類算法流程可以分為四個(gè)步驟,需要注意幾點(diǎn):距離度量:歐氏距離、余弦相似度等質(zhì)心計(jì)算:樣本均值第1步. 從數(shù)據(jù)中隨機(jī)選擇K個(gè)對象作為初始聚類中心;第2步.計(jì)算每個(gè)聚類對象到聚類中

2、心的距離來劃分K個(gè)簇;第3步.計(jì)算每個(gè)簇的質(zhì)心作為新的聚類中心;第4步.重復(fù)步驟2、3,直到達(dá)到最大迭代次數(shù),最后所有樣本被分為K個(gè)簇。K-均值聚類-原理 K如何選擇?K的選擇一般是按照實(shí)際需求進(jìn)行決定,或在實(shí)現(xiàn)算法時(shí)直接給定K值 。 距離度量給定樣本 與,常用的距離度量有以下三種:閔可夫斯基距離(Minkowski distance):歐氏距離(Euclidean distance):曼哈頓距離(Manhattan distance):即當(dāng) p=2 時(shí)的閔可夫斯基距離即當(dāng) p=1 時(shí)的閔可夫斯基距離 更新“簇中心”對于劃分好的各個(gè)簇,計(jì)算各個(gè)簇中的樣本點(diǎn)均值,將其均值作為新的簇中心。K-均值

3、聚類-原理K-均值聚類-原理 K-均值算法缺點(diǎn) K-均值算法由于初始“簇中心”點(diǎn)是隨機(jī)選取的,因此最終求得的簇的劃分與隨機(jī)選取的“簇中心”有關(guān),也就是說,可能會造成多種 k 個(gè)簇的劃分情況。這是因?yàn)镵-均值算法收斂到了局部最小值,而非全局最小值。K-均值聚類-實(shí)戰(zhàn) 數(shù)據(jù)介紹按照每一個(gè)實(shí)例的相似度聚類成多個(gè)簇K-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)def loadDataSet(filename): 讀取數(shù)據(jù)集 Args: filename: 文件名 Returns: dataMat: 數(shù)據(jù)樣本矩陣 dataMat = with open(filename, rb) as f: for line in f:

4、 # 讀取的字節(jié)流需要先解碼成utf-8再處理 eles = list(map(float, line.decode(utf-8).strip().split(t) dataMat.append(eles) return dataMatK-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)def distEclud(vecA, vecB): 計(jì)算兩向量的歐氏距離 Args: vecA: 向量A vecB: 向量B Returns: 歐式距離 return np.sqrt(np.sum(np.power(vecA-vecB,2)K-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)def randCent(dataSet, k): 隨機(jī)生成k個(gè)聚

5、類中心 Args: dataSet: 數(shù)據(jù)集 k: 簇?cái)?shù)目 Returns: centroids: 聚類中心矩陣 m, _ = dataSet.shape # 隨機(jī)從數(shù)據(jù)集中選幾個(gè)作為初始聚類中心 centroids = dataSet.take(np.random.choice(80,k), axis=0) return centroidsK-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)def kMeans(dataSet, k, maxIter=20): K-Means Args: dataSet: 數(shù)據(jù)集 k: 聚類數(shù) Returns: centroids: 聚類中心 clusterAssment: 點(diǎn)分配

6、結(jié)果 # 隨機(jī)初始化聚類中心 centroids = randCent(dataSet, k) init_centroids = centroids.copy() m, n = dataSet.shape # 點(diǎn)分配結(jié)果:第一列指明樣本所在的簇,第二列指明 該樣本到聚類中心的距離 clusterAssment = np.mat(np.zeros(m, 2) # 標(biāo)識聚類中心是否仍在變化 clusterChanged = True # 直至聚類中心不再變化 iterCount = 0 while clusterChanged and iterCount maxIter: iterCount +=

7、 1 clusterChanged = False # 分配樣本到簇 for i in range(m): # 計(jì)算第i個(gè)樣本到各個(gè)聚類中心的距離 minIndex = 0 minDist = np.inf for j in range(k): dist = distEclud(dataSeti, :, centroidsj, :) if dist array ptsInCluster = dataSetnp.nonzero(clusterAssment:, 0.A = cent)0 if ptsInCluster.shape0 0: # 計(jì)算均值并移動 centroidscent, : =

8、np.mean(ptsInCluster, axis=0) return centroids, clusterAssment, init_centroidsK-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)dataMat = np.mat(loadDataSet(data/testSet.txt)m, n = np.shape(dataMat)set_k = 4centroids, clusterAssment, init_centroids = kMeans(dataMat, set_k)clusterCount = np.shape(centroids)0# 我們這里只設(shè)定了最多四個(gè)簇的樣式,所以前面如果set

9、_k設(shè)置超過了4,后面就會出現(xiàn)index errorpatterns = o, D, , scolors = b, g, y, blackfig = plt.figure()title = kmeans with k=.format(set_k)ax = fig.add_subplot(111, title=title)for k in range(clusterCount): # 繪制聚類中心 ax.scatter(centroidsk,0, centroidsk,1, color=r, marker=+, linewidth=20) # 繪制初始聚類中心 ax.scatter(init_c

10、entroidsk,0, init_centroidsk,1, color=purple, marker=*, linewidth=10 ) for i in range(m): # 繪制屬于該聚類中心的樣本 ptsInCluster = dataMatnp.nonzero(clusterAssment:,0.A=k)0 ax.scatter(ptsInCluster:,0.flatten().A0, ptsInCluster:,1.flatten().A0, color=colorsk, marker=patternsk)plt.show()K-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)利用sklearn機(jī)器

11、學(xué)習(xí)庫classsklearn.cluster.KMeans(n_clusters=8,init=k-means+,n_init=10,max_iter=300,tol=0.0001,precompute_distances=auto,verbose=0,random_state=None,copy_x=True,n_jobs=None,algorithm=auto) KMeans類的主要參數(shù)有: 1) n_clusters: 即我們的k值,一般需要多試一些值以獲得較好的聚類效果。 2)max_iter: 最大的迭代次數(shù)。 3)n_init:用不同的初始化質(zhì)心運(yùn)行算法的次數(shù)。由于K-Means

12、是結(jié)果受初始值影響的 局部最優(yōu)的迭代算法,因此需要多跑幾次以選擇一個(gè)較好的聚類效果,默認(rèn)是10,一般不需要改。如果你的k值較大,則可以適當(dāng)增大這個(gè)值。 4)init: 即初始值選擇的方式,可以為完全隨機(jī)選擇random,優(yōu)化過的k-means+或者自己指定初始化的k個(gè)質(zhì)心。一般建議使用默認(rèn)的k-means+。 5)algorithm:有“auto”, “full” or “elkan”三種選擇。“full”就是我們傳統(tǒng)的K-Means算法, “elkan”是elkan K-Means算法。默認(rèn)的auto則會根據(jù)數(shù)據(jù)值是否是稀疏的,來決定如何選擇full和“elkan”。一般數(shù)據(jù)是稠密的,那么就

13、是 “elkan”,否則就是full”。一般來說建議直接用默認(rèn)的autoK-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)利用sklearn機(jī)器學(xué)習(xí)庫fit(self, X)fit_predict(self, X) KMeans類的主要方法:對數(shù)據(jù)X聚類對數(shù)據(jù)X聚類且計(jì)算每一個(gè)樣本點(diǎn)對應(yīng)的類別索引predict(self, X)預(yù)測新輸入的樣本對應(yīng)的最近的聚類中心X:ndarray數(shù)據(jù)類型K-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)利用sklearn機(jī)器學(xué)習(xí)庫import numpy as npimport matplotlib.pyplot as pltfrom sklearn.cluster import KMeansfrom

14、 sklearn.datasets import make_blobsplt.figure(figsize=(12, 12)n_samples = 1500random_state = 200X, y = make_blobs(n_samples=n_samples, random_state=random_state)# Incorrect number of clustersy_pred = KMeans(n_clusters=3, random_state=random_state).fit_predict(X)plt.plot()plt.scatter(X:, 0, X:, 1, c=

15、y_pred)plt.title(kmeans)plt.show()K-均值聚類-實(shí)戰(zhàn) 代碼結(jié)構(gòu)利用sklearn機(jī)器學(xué)習(xí)庫K-Means+ 由于 K-means 算法的分類結(jié)果會受到初始點(diǎn)的選取而有所區(qū)別,因此有提出這種算法的改進(jìn): K-means+ ,其實(shí)這個(gè)算法也只是對初始點(diǎn)的選擇有改進(jìn)而已,其他步驟都一樣。初始質(zhì)心選取的基本思路就是,初始的聚類中心之間的相互距離要盡可能的遠(yuǎn)。K-Means+ 數(shù)據(jù)集中共有8個(gè)樣本,分布以及對應(yīng)序號如右圖所示: 聚類中心選取示例 假設(shè)經(jīng)過步驟一后6號點(diǎn)被選擇為第一個(gè)初始聚類中心,那在進(jìn)行步驟二時(shí)每個(gè)樣本的D(x)和被選擇為第二個(gè)聚類中心的概率如下表所示:

16、K-Means+ 聚類中心選取示例 其中的P(x)就是每個(gè)樣本被選為下一個(gè)聚類中心的概率。最后一行的Sum是概率P(x)的累加和,用于輪盤法選擇出第二個(gè)聚類中心。方法是隨機(jī)產(chǎn)生出一個(gè)01之間的隨機(jī)數(shù),判斷它屬于哪個(gè)區(qū)間,那么該區(qū)間對應(yīng)的序號就是被選擇出來的第二個(gè)聚類中心了。 例如1號點(diǎn)的區(qū)間為0,0.2),2號點(diǎn)的區(qū)間為0.2, 0.525)。 從上表可以直觀的看到第二個(gè)初始聚類中心是1號,2號,3號,4號中的一個(gè)的概率為0.9。而這4個(gè)點(diǎn)正好是離第一個(gè)初始聚類中心6號點(diǎn)較遠(yuǎn)的四個(gè)點(diǎn)。 這也驗(yàn)證了K-means的改進(jìn)思想:即離當(dāng)前已有聚類中心較遠(yuǎn)的點(diǎn)有更大的概率被選為下一個(gè)聚類中心。數(shù)據(jù)挖掘經(jīng)

17、典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)PCA-簡介 數(shù)據(jù)降維 在實(shí)際生產(chǎn)生活中,我們所獲得的數(shù)據(jù)集在特征上往往具有很高的維度,對高維度的數(shù)據(jù)進(jìn)行處理時(shí)消耗的時(shí)間很大,并且過多的特征變量也會妨礙查找規(guī)律的建立。如何在最大程度上保留數(shù)據(jù)集的信息量的前提下進(jìn)行數(shù)據(jù)維度的降低,是我們需要解決的問題。 對數(shù)據(jù)進(jìn)行降維有以下優(yōu)點(diǎn):(1)使得數(shù)據(jù)集更易使用 (2)降低很多算法的計(jì)算開銷 (3)去除噪聲 (4)使得結(jié)果易懂PCA-簡介 數(shù)據(jù)降維如何降維可以保留盡可能多的信息?PCA-簡介數(shù)據(jù)降維 數(shù)據(jù)降維的優(yōu)化目標(biāo)就是:(1)對于 2 維降到 1

18、 維:找到一個(gè)投影方向,使得投影誤差和最小。(2)對于 n 維降到 k 維:找到 k 個(gè)向量定義的 k 維投影平面,使得投影 誤差和最小。 那么投影誤差又是什么呢? 投影誤差即為,每一個(gè)樣本點(diǎn)到投影向量或者投影平面的距離。 投影誤差和即為所有樣本點(diǎn)到投影向量或投影平面的距離的和。PCA-簡介數(shù)據(jù)降維為什么將“投影誤差和最小”作為優(yōu)化目標(biāo)?投影誤差和 假設(shè)對于原樣本中,位于第一象限的三個(gè)樣本點(diǎn)屬于類別“A”,位于第三象限的兩個(gè)樣本點(diǎn)屬于類別“B”。經(jīng)過投影后,僅左邊可保留類別信息。PCA-簡介 數(shù)據(jù)降維如何尋找投影誤差最小的方向? 尋找到方差最大的方向即可。方差最大與投影誤差最小這兩個(gè)優(yōu)化目標(biāo)其

19、實(shí)本質(zhì)上是一樣的。希望投影后的投影值盡可能分散PCA-簡介主成分分析(Principal Component Analysis, PCA)是最流行的降維算法,通過把數(shù)據(jù)從高維映射到低維來降低特征維度,同時(shí)保留盡可能多的信息。廣泛應(yīng)用于降維、有損數(shù)據(jù)壓縮、特征提取、數(shù)據(jù)可視化等領(lǐng)域。是一種無監(jiān)督的學(xué)習(xí)方式。 數(shù)據(jù)降維PCA-簡介進(jìn)行主成分分析有兩個(gè)目的: 1. 在保留盡可能多的信息的前提下,降低維度。 2. 各樣本在新的維度上,沒有相關(guān)關(guān)系(線性)。 也就是不能根據(jù)一個(gè)維度的值就能大概推測(線性)另一個(gè)維度的值。主成分分析第一條原則是新的變量要盡量分散,因?yàn)檫@樣代表差異性大,蘊(yùn)含了更多的信息。第

20、二條原則是新的變量之間線性無關(guān),這樣就盡量消除了冗余信息。PCA-簡介 PCA算法思路 PCA的算法思路主要是:數(shù)據(jù)從原來的坐標(biāo)系轉(zhuǎn)換到新的坐標(biāo)系,由數(shù)據(jù)本身決定。轉(zhuǎn)換坐標(biāo)系時(shí),以方差最大的方向作為坐標(biāo)軸方向,因?yàn)閿?shù)據(jù)的最大方差給出了數(shù)據(jù)的最重要的信息。第一個(gè)新坐標(biāo)軸選擇的是原始數(shù)據(jù)中方差最大的方向,第二個(gè)新坐標(biāo)軸選擇的是與第一個(gè)新坐標(biāo)軸正交且方差次大的方向。重復(fù)該過程,重復(fù)次數(shù)為原始數(shù)據(jù)的特征維數(shù)。PCA-深入分析 數(shù)學(xué)基礎(chǔ)PCA-簡介 PCA算法思路 有了前述兩條原則以后,那應(yīng)該具體怎樣一步步實(shí)現(xiàn)?對于分散程度的度量,我們知道,通常用方差表示。而對于相關(guān)性的度量,協(xié)方差是一個(gè)常見的度量方式

21、。 所以,上述目標(biāo)轉(zhuǎn)換為: 每個(gè)新變量的方差盡量大,新變量之間的協(xié)方差為0。PCA-簡介 PCA算法思路舉個(gè)例子,有兩個(gè)變量的矩陣A為:目標(biāo)轉(zhuǎn)換為: 協(xié)方差矩陣的對角線上元素盡量大,其它元素為0,也就是需要進(jìn)行對角化。PCA-簡介 PCA算法思路協(xié)方差矩陣是實(shí)對稱矩陣,這里需要利用實(shí)對稱矩陣的一個(gè)性質(zhì):nxn的實(shí)對稱矩陣一定可以找到n個(gè)單位正交的特征向量,一定可以對角化,特征向量是進(jìn)行對角化的轉(zhuǎn)移矩陣,特征值組成對角矩陣。因此,問題轉(zhuǎn)化為特征值分解,然后取較大的特征值。 對協(xié)方差矩陣進(jìn)行特征值分解,特征值從大到小排序組成新的協(xié)方差矩陣,對應(yīng)的特征向量(單位正交基)就組成了轉(zhuǎn)移矩陣Q。所以,轉(zhuǎn)換

22、后新的變量C=QA。PCA-簡介 PCA算法思路完成變換以后,降維就很容易。新協(xié)方差矩陣對角線元素是方差,是包含信息量的度量,而對角線元素從大到小排列,所以只需取前k個(gè)變量(列)即可。k具體是多少,可以指定,也可以先計(jì)算所有方差的和S,如果前n個(gè)方差的和大于了95%*S,那么k就取n。PCA-深入分析 算法過程 缺點(diǎn)分析數(shù)據(jù)維度降低并不代表特征的減少,因?yàn)榻稻S仍舊保留了較大的信息量,對結(jié)果過擬合問題并沒有幫助。不能將降維算法當(dāng)做解決過擬合問題方法。如果原始數(shù)據(jù)特征維度并不是很大,也并不需要進(jìn)行降維。PCA-實(shí)例 要求將二維數(shù)據(jù)降為1維 解決步驟因?yàn)檫@個(gè)矩陣的每行已經(jīng)是零均值,這里我們直接求協(xié)方

23、差矩陣:求解后特征值和特征向量為:PCA-實(shí)例 最后我們用P的第一行乘以數(shù)據(jù)矩陣,就得到了降維后的表示:降維投影結(jié)果如右圖:標(biāo)準(zhǔn)化后的特征向量為:因此我們的矩陣P是:PCA-實(shí)戰(zhàn)sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)n_components: int, float, None 或 string,PCA算法中所要保留的主成分個(gè)數(shù),也即保留下來的特征個(gè)數(shù),如果 n_components = 1,將把原始數(shù)據(jù)降到一維;如果賦值為string,如n_components=mle,將自動選取特征個(gè)數(shù),使得

24、滿足所要求的方差百分比;如果沒有賦值,默認(rèn)為None,特征個(gè)數(shù)不會改變(特征數(shù)據(jù)本身會改變)。copy:True 或False,默認(rèn)為True,即是否需要將原始訓(xùn)練數(shù)據(jù)復(fù)制。whiten:True 或False,默認(rèn)為False,即是否白化,使得每個(gè)特征具有相同的方差。PCA-實(shí)戰(zhàn) PCA對象的屬性explained_variance_ratio_:返回所保留各個(gè)特征的方差百分比,如果n_components沒有賦值,則所有特征都會返回一個(gè)數(shù)值且解釋方差之和等于1。n_components_:返回所保留的特征個(gè)數(shù)。PCA-實(shí)戰(zhàn) PCA常用方法fit(X): 用數(shù)據(jù)X來訓(xùn)練PCA模型。fit_t

25、ransform(X):用X來訓(xùn)練PCA模型,同時(shí)返回降維后的數(shù)據(jù)。transform(X):將數(shù)據(jù)X轉(zhuǎn)換成降維后的數(shù)據(jù),當(dāng)模型訓(xùn)練好后,對于新輸入的數(shù)據(jù),也可以用transform方法來降維。PCA-實(shí)戰(zhàn)import numpy as npimport matplotlib.pyplot as pltfrom sklearn.decomposition import PCAX = np.array(-1, -1, -2, -1, -3, -2, 1, 1, 2, 1, 3, 2)#pca = PCA(n_components=2)#newX = pca.fit_transform(X)pri

26、nt(X)#print(newX)#print(pca.explained_variance_ratio_)pca = PCA(n_components=1)newX = pca.fit_transform(X)print(newX)#print(pca.explained_variance_ratio_)plt.scatter(X:, 0, X:, 1,marker=o)plt.scatter(newX:, 0, newX:, 0*0,color=r)plt.show()數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)K-近鄰算

27、法-簡介 給定一個(gè)訓(xùn)練數(shù)據(jù)集,對新的輸入實(shí)例,在訓(xùn)練數(shù)據(jù)集中找到與該實(shí)例最鄰近的 k 個(gè)實(shí)例,這 k 個(gè)實(shí)例的多數(shù)屬于某個(gè)類,就把該輸入實(shí)例分為這個(gè)類。 定義綠色點(diǎn)屬于什么類別?當(dāng) k=3 時(shí),結(jié)果見第一個(gè)圓環(huán)內(nèi),此時(shí)紅色實(shí)例點(diǎn)為2個(gè),藍(lán)色實(shí)例點(diǎn)為1個(gè),因此將未知點(diǎn)判定為紅色類別。當(dāng) k=5 時(shí),結(jié)果見第二個(gè)圓環(huán)內(nèi),此時(shí)紅色實(shí)例點(diǎn)為2個(gè),藍(lán)色實(shí)例點(diǎn)為3個(gè),因此將未知點(diǎn)判定為藍(lán)色類別。K-近鄰算法-分析 給定一個(gè)訓(xùn)練數(shù)據(jù)集,對新的輸入實(shí)例,在訓(xùn)練數(shù)據(jù)集中找到與該實(shí)例最鄰近的 k 個(gè)實(shí)例,這 k 個(gè)實(shí)例的多數(shù)屬于某個(gè)類,就把該輸入實(shí)例分為這個(gè)類。 定義回顧K-近鄰算法的三大要素距離的度量:一般使用

28、歐氏距離K值的選擇:結(jié)果對k值敏感,一般通過交叉驗(yàn)證選擇分類決策規(guī)則:投票法K-近鄰算法-步驟輸入:輸出:輸入訓(xùn)練數(shù)據(jù)K-近鄰算法-優(yōu)缺點(diǎn)分析 訓(xùn)練樣本是否要一視同仁?在訓(xùn)練集中,有些樣本可能是更值得依賴的??梢越o不同的樣本施加不同的權(quán)重,加強(qiáng)依賴樣本的權(quán)重,降低不可信賴樣本的影響。weight = 1 / (distance + const) 性能問題?KD樹Ball樹暴力匹配K-近鄰算法-優(yōu)缺點(diǎn)分析 優(yōu)點(diǎn) 缺點(diǎn)精度高對異常值不敏感無數(shù)據(jù)輸入假定計(jì)算復(fù)雜度高空間復(fù)雜度高樣本不平衡時(shí)分類錯(cuò)誤幾率較高K-近鄰算法-實(shí)戰(zhàn)class sklearn.neighbors.NearestNeighbor

29、s(n_neighbors=5, algorithm=auto, leaf_size=30, metric=minkowski, p=2, metric_params=None, n_jobs=None, *kwargs) K近鄰算法n_neighbors : int, optional (default = 5) 鄰居的個(gè)數(shù)algorithm : auto, ball_tree, kd_tree, brute, optional ball_tree BallTree kd_tree KDTree brute 暴力搜索. auto 根據(jù)數(shù)據(jù)自動選擇leaf_size:使用BallTree 或

30、KDTree時(shí)需指定,影響計(jì)算速度,具體問題具體對待metric: 距離度量類型,cityblock, cosine, euclidean, l1, l2, manhattanP:閔式距離時(shí)的范數(shù)metric_params:自定義距離度量函數(shù)K-近鄰算法-實(shí)戰(zhàn) K近鄰算法fit(X) 學(xué)習(xí)KNN模型kneighbors(X) 尋找最近的K個(gè)點(diǎn)常用成員方法K-近鄰算法-實(shí)戰(zhàn) K近鄰算法from sklearn.neighbors import NearestNeighborsimport numpy as np # 快速操作結(jié)構(gòu)數(shù)組的工具X = np.array(-1, -1, -2, -1,

31、-3, -2, 1, 1, 2, 1, 3, 2) # 樣本數(shù)據(jù)test_x = np.array(-3.2, -2.1, -2.6, -1.3, 1.4, 1.0, 3.1, 2.6, 2.5, 1.0, -1.2, -1.3) # 設(shè)置測試數(shù)據(jù)# test_x=X # 測試數(shù)據(jù)等于樣本數(shù)據(jù)。這樣就相當(dāng)于在樣本數(shù)據(jù)內(nèi)部查找每個(gè)樣本的鄰節(jié)點(diǎn)了。nbrs = NearestNeighbors(n_neighbors=2, algorithm=ball_tree).fit(X) # 為X生成knn模型distances, indices = nbrs.kneighbors(test_x) # 為t

32、est_x中的數(shù)據(jù)尋找模型中的鄰節(jié)點(diǎn)print(鄰節(jié)點(diǎn):,indices)print(鄰節(jié)點(diǎn)距離:,distances)K-近鄰算法-實(shí)戰(zhàn) K近鄰分類class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights=uniform, algorithm=auto, leaf_size=30, p=2, metric=minkowski, metric_params=None, n_jobs=None)weights : 樣本權(quán)重uniform : 所有樣本均勻(同權(quán)重)distance : 樣本權(quán)重等于距離的倒數(shù)K-近鄰算法

33、-實(shí)戰(zhàn) K近鄰分類常用成員方法fit(X, y) 訓(xùn)練模型kneighbors(X) 返回最近鄰點(diǎn)predict(X) 預(yù)測新的數(shù)據(jù)的類別K-近鄰算法-實(shí)戰(zhàn) K近鄰分類import numpy as np # 快速操作結(jié)構(gòu)數(shù)組的工具from sklearn.neighbors import KNeighborsClassifier,KDTree # 導(dǎo)入knn分類器# 數(shù)據(jù)集。4種屬性,3種類別data= 5.1, 3.5, 1.4, 0.2, 0, 4.9, 3.0, 1.4, 0.2, 0, 4.7, 3.2, 1.3, 0.2, 0, 4.6, 3.1, 1.5, 0.2, 0, 5.0

34、, 3.6, 1.4, 0.2, 0, 7.0, 3.2, 4.7, 1.4, 1, 6.4, 3.2, 4.5, 1.5, 1, 6.9, 3.1, 4.9, 1.5, 1, 5.5, 2.3, 4.0, 1.3, 1, 6.5, 2.8, 4.6, 1.5, 1, 6.3, 3.3, 6.0, 2.5, 2, 5.8, 2.7, 5.1, 1.9, 2, 7.1, 3.0, 5.9, 2.1, 2, 6.3, 2.9, 5.6, 1.8, 2, 6.5, 3.0, 5.8, 2.2, 2,# 構(gòu)造數(shù)據(jù)集dataMat = np.array(data)X = dataMat:,0:4y =

35、dataMat:,4knn = KNeighborsClassifier(n_neighbors=2,weights=distance) # 初始化一個(gè)knn模型,設(shè)置k=2。weights=distance樣本權(quán)重等于距離的倒數(shù)。uniform為統(tǒng)一權(quán)重knn.fit(X, y) #根據(jù)樣本集、結(jié)果集,對knn進(jìn)行建模result = knn.predict(3, 2, 2, 5) #使用knn對新對象進(jìn)行預(yù)測print(result)數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)樸素貝葉斯分類-簡介某個(gè)醫(yī)院早上收了六個(gè)門診病

36、人,如下表:癥狀職業(yè)疾病打噴嚏護(hù)士感冒打噴嚏農(nóng)夫過敏 頭痛建筑工人腦震蕩頭痛建筑工人感冒打噴嚏教師感冒頭痛教師腦震蕩 現(xiàn)在又來了第七個(gè)病人,是一個(gè)打噴嚏的建筑工人。請問他患上感冒的概率有多大?樸素貝葉斯分類-簡介貝葉斯定理?xiàng)l件概率和全概率 上面的推導(dǎo)過程反過來證明了如果 A 和 B 是相互獨(dú)立的事件,那么事件 A 發(fā)生的概率與 B 無關(guān)。樸素貝葉斯分類-簡介貝葉斯定理?xiàng)l件概率和全概率考慮到先驗(yàn)條件 B 的多種可能性,引入全概率公式: 對前式移項(xiàng):樸素貝葉斯分類-簡介貝葉斯定理貝葉斯公式優(yōu)點(diǎn):搭建了先驗(yàn)概率與后驗(yàn)概率的橋梁樸素貝葉斯分類-原理某個(gè)醫(yī)院早上收了六個(gè)門診病人,如下表:癥狀職業(yè)疾病打噴

37、嚏護(hù)士感冒打噴嚏農(nóng)夫過敏 頭痛建筑工人腦震蕩頭痛建筑工人感冒打噴嚏教師感冒頭痛教師腦震蕩 現(xiàn)在又來了第七個(gè)病人,是一個(gè)打噴嚏的建筑工人。請問他患上感冒的概率有多大?事件A:打噴嚏事件B:建筑工人事件C:感冒事件A與事件B是獨(dú)立的樸素貝葉斯分類-原理某個(gè)醫(yī)院早上收了六個(gè)門診病人,如下表:癥狀職業(yè)疾病打噴嚏護(hù)士感冒打噴嚏農(nóng)夫過敏 頭痛建筑工人腦震蕩頭痛建筑工人感冒打噴嚏教師感冒頭痛教師腦震蕩 現(xiàn)在又來了第七個(gè)病人,是一個(gè)打噴嚏的建筑工人。請問他患上感冒的概率有多大?事件A:打噴嚏事件B:建筑工人事件C:感冒觀測歷史數(shù)據(jù)越多,準(zhǔn)確率越高樸素貝葉斯分類-實(shí)戰(zhàn)性別分類下面是一組人類身體特征的統(tǒng)計(jì)資料。性

38、別身高(英尺) 體重(磅) 腳掌(英寸)男 6 180 12男 5.92 190 11男 5.58 170 12男 5.92 165 10女 5 100 6女 5.5 150 8女 5.42 130 7女 5.75 150.9 9已知某人身高6英尺、體重130磅,腳掌8英寸,請問該人是男是女?根據(jù)樸素貝葉斯分類器,計(jì)算下面這個(gè)式子的值。P(身高|性別) x P(體重|性別) x P(腳掌|性別) x P(性別)樸素貝葉斯分類-實(shí)戰(zhàn)性別分類下面是一組人類身體特征的統(tǒng)計(jì)資料。性別身高(英尺) 體重(磅) 腳掌(英寸)男 6 180 12男 5.92 190 11男 5.58 170 12男 5.9

39、2 165 10女 5 100 6女 5.5 150 8女 5.42 130 7女 5.75 150.9 9P(身高=6|男) x P(體重=130|男) x P(腳掌=8|男) x P(男) P(身高=6|女) x P(體重=130|女) x P(腳掌=8|女) x P(女)樸素貝葉斯分類-實(shí)戰(zhàn)難點(diǎn)連續(xù)數(shù)據(jù)如何處理數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)邏輯回歸-簡介 邏輯回歸(Logistic Regression)主要用于二分類、概率預(yù)測問題,使用sigmoid函數(shù)可以將輸出的值限制在區(qū)間0,1上,然后我們可以選擇一

40、個(gè)閾值,通常是0.5,當(dāng)y0.5時(shí),就將樣本歸到一類,如果y0.5就將樣本歸到另一類。邏輯回歸一般用于0/1分類0: “負(fù)類” 1: “正類”malignant 邏輯回歸-簡介Malignant ?(Yes) 1(No) 0Tumor Size邏輯回歸-簡介Tumor SizeMalignant ?(Yes) 1(No) 0邏輯回歸-簡介Tumor SizeMalignant ?(Yes) 1(No) 0If , 預(yù)測 “y = 1”If , 預(yù)測 “y = 0”邏輯回歸-簡介邏輯回歸的目的: 找到一種方式使得 Sigmoid函數(shù)邏輯回歸-公式化表示決策邊界(Decision Boundary

41、)邏輯回歸-公式化表示決策邊界(Decision Boundary)例子回顧邏輯回歸-深入分析線性決策邊界模型表達(dá)式?jīng)Q策邊界表達(dá)式邏輯回歸-深入分析非線性決策邊界模型表達(dá)式邏輯回歸-深入分析邏輯回歸的一般化表示邏輯回歸-深入分析損失函數(shù)兩邊取log期望最大優(yōu)化最小邏輯回歸-深入分析損失函數(shù)直接使用線性回歸的損失函數(shù)會造成非凸優(yōu)化難題邏輯回歸-深入分析多分類問題邏輯回歸-深入分析多分類問題數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)決策樹-簡介決策樹以樹結(jié)構(gòu)的形式建立分類或回歸模型。決策樹可以通過從樹根節(jié)點(diǎn)開始到葉節(jié)點(diǎn)的路徑?jīng)Q策

42、來預(yù)測目標(biāo)變量的值。決策樹包括分支條件,其中預(yù)測器的值與訓(xùn)練的權(quán)重進(jìn)行比較。在訓(xùn)練過程中確定分支的數(shù)量和權(quán)重的值。決策樹容易過擬合,可以使用附加修改或修剪可以用于簡化模型。決策樹-分析構(gòu)建決策樹的三要素 以上是由決策樹來進(jìn)行分類的過程。而決策樹的學(xué)習(xí)(構(gòu)建)通常是一個(gè)遞歸地選擇最優(yōu)特征的過程。那么構(gòu)建決策樹時(shí)如何選擇特征作為劃分點(diǎn)(即選擇哪個(gè)特征作為根節(jié)點(diǎn)或者選擇哪個(gè)特征作為非葉子節(jié)點(diǎn))?當(dāng)訓(xùn)練數(shù)據(jù)量大、特征數(shù)量較多時(shí)構(gòu)建的決策樹可能很龐大,這樣的決策樹用來分類是否好?特征選擇決策樹的生成決策樹修剪決策樹-分析特征選擇 基于ID3算法的決策樹構(gòu)建,其選擇特征的準(zhǔn)則是信息增益。信息增益(info

43、rmation gain)表示得知特征 X 的信息而使得類 Y 的信息的不確定性減少的程度。也就是說,信息增益越大,通過特征 X ,就越能夠準(zhǔn)確地將樣本進(jìn)行分類;信息增益越小,越無法準(zhǔn)確進(jìn)行分類。決策樹-分析特征選擇熵 熵是度量樣本集合純度最常用的一種指標(biāo),它是信息的期望值。如果待分類的事務(wù)可能劃分在多個(gè)分類之中,則符號(特征)k 的信息定義為:而熵計(jì)算的是所有類別所有可能值包含的信息期望值,其公式為:決策樹-分析特征選擇熵(1)對于最終分類(是否為好瓜),計(jì)算其信息熵: 由上表可看出,一共有17個(gè)樣本,屬于好瓜的有8個(gè)樣本,壞瓜的有9個(gè)樣本,因此其熵為:決策樹-分析特征選擇熵決策樹-分析特征

44、選擇熵決策樹-分析特征選擇信息增益決策樹-分析特征選擇信息增益決策樹-步驟 ID3算法遞歸地構(gòu)建決策樹,從根節(jié)點(diǎn)開始,對所有特征計(jì)算信息增益,選擇信息增益最大的特征作為節(jié)點(diǎn)的特征,由該特征的不同取值建立子節(jié)點(diǎn);再對子節(jié)點(diǎn)遞歸地調(diào)用以上方法構(gòu)建決策樹;知道所有特征的信息增益均很小或者沒有特征可以選擇為止。最后得到一個(gè)決策樹。在算法中有三種情形導(dǎo)致遞歸返回:(1)當(dāng)前節(jié)點(diǎn)包含的樣本全屬于同一類別,無需劃分。(2)當(dāng)前屬性集為空,或是所有樣本在所有屬性上取值相同,無法劃分。(此時(shí)將所含樣本最多的類別設(shè)置為該葉子節(jié)點(diǎn)類別)(3)當(dāng)前節(jié)點(diǎn)包含的樣本集合為空,不能劃分。(將其父節(jié)點(diǎn)中樣本最多的類別設(shè)置為該

45、葉子節(jié)點(diǎn)的類別)決策樹-步驟剪枝處理 當(dāng)訓(xùn)練數(shù)據(jù)量大、特征數(shù)量較多時(shí)構(gòu)建的決策樹可能很龐大,這樣的決策樹用來分類是否好?答案是否定的。決策樹是依據(jù)訓(xùn)練集進(jìn)行構(gòu)建的,當(dāng)決策樹過于龐大時(shí),可能對訓(xùn)練集依賴過多,也就是對訓(xùn)練數(shù)據(jù)過度擬合。從訓(xùn)練數(shù)據(jù)集上看,擬合效果很好,但對于測試數(shù)據(jù)集或者新的實(shí)例來說,并不一定能夠準(zhǔn)確預(yù)測出其結(jié)果。因此,對于決策樹的構(gòu)建還需要最后一步-即決策樹的修剪。決策樹的修剪,也就是剪枝操作,主要分為兩種:(1)預(yù)剪枝(Pre-Pruning)(2)后剪枝(Post-Pruning)決策樹-步驟剪枝處理(1)預(yù)剪枝(Pre-Pruning) 預(yù)剪枝是指在決策樹生成過程中,對每個(gè)

46、節(jié)點(diǎn)在劃分前先進(jìn)行估計(jì),若當(dāng)前節(jié)點(diǎn)的劃分不能帶來決策樹泛化性能的提升,則停止劃分并將當(dāng)前節(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn)。決策樹-步驟剪枝處理(1)預(yù)剪枝(Pre-Pruning) 預(yù)剪枝是指在決策樹生成過程中,對每個(gè)節(jié)點(diǎn)在劃分前先進(jìn)行估計(jì),若當(dāng)前節(jié)點(diǎn)的劃分不能帶來決策樹泛化性能的提升,則停止劃分并將當(dāng)前節(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn)。決策樹-步驟剪枝處理(1)后剪枝(Post-Pruning) 后剪枝是指先從訓(xùn)練集生成一棵完整的決策樹,然后自底向上地對非葉節(jié)點(diǎn)進(jìn)行考察,若將該節(jié)點(diǎn)對應(yīng)的子樹替換為葉節(jié)點(diǎn)能帶來決策能力的提升,則將該子樹替換成葉節(jié)點(diǎn)。決策樹-實(shí)戰(zhàn)數(shù)據(jù)介紹共分為四個(gè)屬性特征:年齡段,有工作,有自己的房子,信貸情

47、況;現(xiàn)根據(jù)這四種屬性特征來決定是否給予貸款決策樹-實(shí)戰(zhàn)數(shù)據(jù)介紹預(yù)處理在編寫代碼之前,我們先對數(shù)據(jù)集進(jìn)行屬性標(biāo)注。(0)年齡:0代表青年,1代表中年,2代表老年;(1)有工作:0代表否,1代表是;(2)有自己的房子:0代表否,1代表是;(3)信貸情況:0代表一般,1代表好,2代表非常好;(4)類別(是否給貸款):no代表否,yes代表是。決策樹-實(shí)戰(zhàn)數(shù)據(jù)介紹核心代碼模塊(計(jì)算信息熵)def jisuanEnt(dataset): numEntries = len(dataset) labelCounts = # 給所有可能分類創(chuàng)建字典 for featVec in dataset: curren

48、tlabel = featVec-1 if currentlabel not in labelCounts.keys(): labelCountscurrentlabel = 0 labelCountscurrentlabel += 1 Ent = 0.0 for key in labelCounts: p = float(labelCountskey) / numEntries Ent = Ent - p * log(p, 2) # 以2為底求對數(shù) return Ent決策樹-實(shí)戰(zhàn)數(shù)據(jù)介紹構(gòu)建樹結(jié)果示例決策樹-實(shí)戰(zhàn)class sklearn.tree.DecisionTreeClassifi

49、er(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, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)criterion:gini或者entropy,前者是基尼系數(shù),后者是

50、信息熵。splitter: best or random 前者是在所有特征中找最好的切分點(diǎn) 后者是在部分特征中,默認(rèn)的”best”適合樣本量不大的時(shí)候,而如果樣本數(shù)據(jù)量非常大,此時(shí)決策樹構(gòu)建推薦”random” 。max_features:None(所有),log2,sqrt,N 特征小于50的時(shí)候一般使用所有的max_depth: int or None, optional (default=None) 設(shè)置決策隨機(jī)森林中的決策樹的最大深度,深度越大,越容易過擬合,推薦樹的深度為:5-20之間。min_samples_split:設(shè)置結(jié)點(diǎn)的最小樣本數(shù)量,當(dāng)樣本數(shù)量可能小于此值時(shí),結(jié)點(diǎn)將不會在

51、劃分。min_samples_leaf: 這個(gè)值限制了葉子節(jié)點(diǎn)最少的樣本數(shù),如果某葉子節(jié)點(diǎn)數(shù)目小于樣本數(shù),則會和兄弟節(jié)點(diǎn)一起被剪枝。決策樹-實(shí)戰(zhàn)class 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, min_impur

52、ity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)min_weight_fraction_leaf: 這個(gè)值限制了葉子節(jié)點(diǎn)所有樣本權(quán)重和的最小值,如果小于這個(gè)值,則會和兄弟節(jié)點(diǎn)一起被剪枝默認(rèn)是0,就是不考慮權(quán)重問題。max_leaf_nodes: 通過限制最大葉子節(jié)點(diǎn)數(shù),可以防止過擬合,默認(rèn)是None”,即不限制最大的葉子節(jié)點(diǎn)數(shù)。class_weight: 指定樣本各類別的的權(quán)重,主要是為了防止訓(xùn)練集某些類別的樣本過多導(dǎo)致訓(xùn)練的決策樹過于偏向這些類別。這里可以自己指定各個(gè)樣本的權(quán)重,如果使用“

53、balanced”,則算法會自己計(jì)算權(quán)重,樣本量少的類別所對應(yīng)的樣本權(quán)重會高。min_impurity_split: 這個(gè)值限制了決策樹的增長,如果某節(jié)點(diǎn)的不純度(基尼系數(shù),信息增益,均方差,絕對差)小于這個(gè)閾值則該節(jié)點(diǎn)不再生成子節(jié)點(diǎn)。即為葉子節(jié)點(diǎn) 。決策樹-實(shí)戰(zhàn)fit(self, X, y): 擬合(構(gòu)建樹)predict(self, X): 預(yù)測score(self, X):計(jì)算平均準(zhǔn)確率cancer = load_breast_cancer()#參數(shù)random_state是指隨機(jī)生成器X_train,X_test,y_train,y_test = train_test_split(ca

54、ncerdata,cancertarget,random_state=42)tree = DecisionTreeClassifier(random_state=0)#tree = DecisionTreeClassifier(max_depth=4,random_state=0)tree.fit(X_train,y_train)print(Train score:.3f.format(tree.score(X_train,y_train)print(Test score:.3f.format(tree.score(X_test,y_test)#生成可視化圖export_graphviz(tr

55、ee,out_file=tree.dot,class_names=嚴(yán)重,輕微,feature_names=cancer.feature_names,impurity=False,filled=True)# 展示可視化圖 import pydot(graph,) = pydot.graph_from_dot_file(tree.dot) graph.write_png(tree.png)數(shù)據(jù)挖掘經(jīng)典算法邏輯回歸1PCA降維2 K-近鄰算法3樸素貝葉斯分類4K均值聚類56決策樹7EM算法8支持向量機(jī)EM算法-簡介Expectation Maximization AlgorithmEM算法是ML中一

56、種非常重要的參數(shù)估計(jì)方法似然函數(shù) 在數(shù)理統(tǒng)計(jì)學(xué)中,似然函數(shù)是一種關(guān)于統(tǒng)計(jì)模型中的參數(shù)的函數(shù),表示模型參數(shù)中的似然性。“似然性”與“或然性”或“概率”意思相近,都是指某種事件發(fā)生的可能性。 而極大似然就相當(dāng)于最大可能的意思。EM算法-簡介Expectation Maximization AlgorithmEM算法是ML中一種非常重要的參數(shù)估計(jì)方法似然函數(shù)例子: 比如你一位同學(xué)和一位獵人一起外出打獵,一只野兔從前方竄過。只聽一聲槍響,野兔應(yīng)聲到下,如果要你推測,這一發(fā)命中的子彈是誰打的?你就會想,只發(fā)一槍便打中,由于獵人命中的概率一般大于你那位同學(xué)命中的概率,從而推斷出這一槍應(yīng)該是獵人射中的。 這

57、個(gè)例子所作的推斷就體現(xiàn)了最大似然法的基本思想。-例子來源于結(jié)構(gòu)之法,算法之道EM算法-簡介似然函數(shù) 多數(shù)情況下我們是根據(jù)已知條件來推算結(jié)果,而最大似然估計(jì)是已經(jīng)知道了結(jié)果,然后尋求使該結(jié)果出現(xiàn)的可能性最大的條件,以此作為估計(jì)值。 概率是根據(jù)條件推測結(jié)果,而似然則是根據(jù)結(jié)果反推條件。在這種意義上,似然函數(shù)可以理解為條件概率的逆反。假定已知某個(gè)參數(shù)B時(shí),推測事件A會發(fā)生的概率寫作:通過貝葉斯公式,可以得出EM算法-簡介似然函數(shù)EM算法-簡介極大似然估計(jì)假定我們需要統(tǒng)計(jì)10萬學(xué)生中男生女生的身高分布,怎么統(tǒng)計(jì)?考慮到10萬的數(shù)量巨大,所以不可能一個(gè)一個(gè)的去統(tǒng)計(jì)。實(shí)際解決方案:隨機(jī)抽樣,從10萬學(xué)員中

58、隨機(jī)抽取100個(gè)男生,100個(gè)女生,然后依次統(tǒng)計(jì)他們各自的身高。 EM算法-簡介極大似然估計(jì)EM算法-簡介極大似然估計(jì)解決思路:怎樣的能讓L()最大?EM算法-簡介極大似然估計(jì)求極大似然函數(shù)估計(jì)值的一般步驟:EM算法-簡介極大似然估計(jì)求極大似然函數(shù)估計(jì)值的一般步驟:寫出似然函數(shù);對似然函數(shù)取對數(shù),并整理;求導(dǎo)數(shù),令導(dǎo)數(shù)為0,得到似然方程;解似然方程,得到的參數(shù)即為所求;EM算法-簡介極大似然估計(jì)EM算法-簡介極大似然估計(jì)假設(shè)我們的試驗(yàn)結(jié)果如上圖, 那么我們很容易用極大似然估計(jì)來預(yù)測:EM算法-簡介極大似然估計(jì)EM算法-步驟EM算法-步驟先隨便給PA和PB賦一個(gè)值,比如:硬幣A正面朝上的概率PA

59、 = 0.2硬幣B正面朝上的概率PB = 0.7然后,我們看看第一輪拋擲最可能是哪個(gè)硬幣。如果是硬幣A,得出3正2反的概率為 0.2*0.2*0.2*0.8*0.8 = 0.00512如果是硬幣B,得出3正2反的概率為0.7*0.7*0.7*0.3*0.3=0.03087然后依次求出其他4輪中的相應(yīng)概率。EM算法-步驟按照最大似然法則:第1輪中最有可能的是硬幣B ; 第2輪中最有可能的是硬幣A;第3輪中最有可能的是硬幣A ; 第4輪中最有可能的是硬幣B; 第5輪中最有可能的是硬幣A。我們就把概率更大,即更可能是A的,即第2輪、第3輪、第5輪出現(xiàn)正的次數(shù)2、1、2相加,除以A被拋的總次數(shù)15(A

60、拋了三輪,每輪5次),作為z的估計(jì)值,B的計(jì)算方法類似。然后我們便可以按照最大似然概率法則來估計(jì)新的PA和PB。PA = (2+1+2)/15 = 0.33 PB =(3+3)/10 = 0.6EM算法-步驟 最大期望算法(Expectation-maximization algorithm,又譯為期望最大化算法),是在概率模型中尋找參數(shù)最大似然估計(jì)或者最大后驗(yàn)估計(jì)的算法,其中概率模型依賴于無法觀測的隱性變量。最大期望算法經(jīng)過兩個(gè)步驟交替進(jìn)行計(jì)算, 第一步是計(jì)算期望(E),利用對隱藏變量的現(xiàn)有估計(jì)值,計(jì)算其最大似然估計(jì)值; 第二步是最大化(M),最大化在E步上求得的最大似然值來計(jì)算參數(shù)的值。M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論