日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python em算法的實現(xiàn)

瀏覽:17日期:2022-07-09 10:19:04

’’’數(shù)據(jù)集:偽造數(shù)據(jù)集(兩個高斯分布混合)數(shù)據(jù)集長度:1000------------------------------運行結(jié)果:----------------------------the Parameters set is:alpha0:0.3, mu0:0.7, sigmod0:-2.0, alpha1:0.5, mu1:0.5, sigmod1:1.0----------------------------the Parameters predict is:alpha0:0.4, mu0:0.6, sigmod0:-1.7, alpha1:0.7, mu1:0.7, sigmod1:0.9----------------------------’’’import numpy as npimport randomimport mathimport timedef loadData(mu0, sigma0, mu1, sigma1, alpha0, alpha1): ’’’ 初始化數(shù)據(jù)集 這里通過服從高斯分布的隨機函數(shù)來偽造數(shù)據(jù)集 :param mu0: 高斯0的均值 :param sigma0: 高斯0的方差 :param mu1: 高斯1的均值 :param sigma1: 高斯1的方差 :param alpha0: 高斯0的系數(shù) :param alpha1: 高斯1的系數(shù) :return: 混合了兩個高斯分布的數(shù)據(jù) ’’’ # 定義數(shù)據(jù)集長度為1000 length = 1000 # 初始化第一個高斯分布,生成數(shù)據(jù),數(shù)據(jù)長度為length * alpha系數(shù),以此來 # 滿足alpha的作用 data0 = np.random.normal(mu0, sigma0, int(length * alpha0)) # 第二個高斯分布的數(shù)據(jù) data1 = np.random.normal(mu1, sigma1, int(length * alpha1)) # 初始化總數(shù)據(jù)集 # 兩個高斯分布的數(shù)據(jù)混合后會放在該數(shù)據(jù)集中返回 dataSet = [] # 將第一個數(shù)據(jù)集的內(nèi)容添加進去 dataSet.extend(data0) # 添加第二個數(shù)據(jù)集的數(shù)據(jù) dataSet.extend(data1) # 對總的數(shù)據(jù)集進行打亂(其實不打亂也沒事,只不過打亂一下直觀上讓人感覺已經(jīng)混合了 # 讀者可以將下面這句話屏蔽以后看看效果是否有差別) random.shuffle(dataSet) #返回偽造好的數(shù)據(jù)集 return dataSetdef calcGauss(dataSetArr, mu, sigmod): ’’’ 根據(jù)高斯密度函數(shù)計算值 依據(jù):“9.3.1 高斯混合模型” 式9.25 注:在公式中y是一個實數(shù),但是在EM算法中(見算法9.2的E步),需要對每個j 都求一次yjk,在本實例中有1000個可觀測數(shù)據(jù),因此需要計算1000次。考慮到 在E步時進行1000次高斯計算,程序上比較不簡潔,因此這里的y是向量,在numpy 的exp中如果exp內(nèi)部值為向量,則對向量中每個值進行exp,輸出仍是向量的形式。 所以使用向量的形式1次計算即可將所有計算結(jié)果得出,程序上較為簡潔 :param dataSetArr: 可觀測數(shù)據(jù)集 :param mu: 均值 :param sigmod: 方差 :return: 整個可觀測數(shù)據(jù)集的高斯分布密度(向量形式) ’’’ # 計算過程就是依據(jù)式9.25寫的,沒有別的花樣 result = (1 / (math.sqrt(2*math.pi)*sigmod**2)) * np.exp(-1 * (dataSetArr-mu) * (dataSetArr-mu) / (2*sigmod**2)) # 返回結(jié)果 return resultdef E_step(dataSetArr, alpha0, mu0, sigmod0, alpha1, mu1, sigmod1): ’’’ EM算法中的E步 依據(jù)當前模型參數(shù),計算分模型k對觀數(shù)據(jù)y的響應(yīng)度 :param dataSetArr: 可觀測數(shù)據(jù)y :param alpha0: 高斯模型0的系數(shù) :param mu0: 高斯模型0的均值 :param sigmod0: 高斯模型0的方差 :param alpha1: 高斯模型1的系數(shù) :param mu1: 高斯模型1的均值 :param sigmod1: 高斯模型1的方差 :return: 兩個模型各自的響應(yīng)度 ’’’ # 計算y0的響應(yīng)度 # 先計算模型0的響應(yīng)度的分子 gamma0 = alpha0 * calcGauss(dataSetArr, mu0, sigmod0) # 模型1響應(yīng)度的分子 gamma1 = alpha1 * calcGauss(dataSetArr, mu1, sigmod1) # 兩者相加為E步中的分布 sum = gamma0 + gamma1 # 各自相除,得到兩個模型的響應(yīng)度 gamma0 = gamma0 / sum gamma1 = gamma1 / sum # 返回兩個模型響應(yīng)度 return gamma0, gamma1def M_step(muo, mu1, gamma0, gamma1, dataSetArr): # 依據(jù)算法9.2計算各個值 # 這里沒什么花樣,對照書本公式看看這里就好了 mu0_new = np.dot(gamma0, dataSetArr) / np.sum(gamma0) mu1_new = np.dot(gamma1, dataSetArr) / np.sum(gamma1) sigmod0_new = math.sqrt(np.dot(gamma0, (dataSetArr - muo)**2) / np.sum(gamma0)) sigmod1_new = math.sqrt(np.dot(gamma1, (dataSetArr - mu1)**2) / np.sum(gamma1)) alpha0_new = np.sum(gamma0) / len(gamma0) alpha1_new = np.sum(gamma1) / len(gamma1) # 將更新的值返回 return mu0_new, mu1_new, sigmod0_new, sigmod1_new, alpha0_new, alpha1_newdef EM_Train(dataSetList, iter=500): ’’’ 根據(jù)EM算法進行參數(shù)估計 算法依據(jù)“9.3.2 高斯混合模型參數(shù)估計的EM算法” 算法9.2 :param dataSetList:數(shù)據(jù)集(可觀測數(shù)據(jù)) :param iter: 迭代次數(shù) :return: 估計的參數(shù) ’’’ # 將可觀測數(shù)據(jù)y轉(zhuǎn)換為數(shù)組形式,主要是為了方便后續(xù)運算 dataSetArr = np.array(dataSetList) # 步驟1:對參數(shù)取初值,開始迭代 alpha0 = 0.5 mu0 = 0 sigmod0 = 1 alpha1 = 0.5 mu1 = 1 sigmod1 = 1 # 開始迭代 step = 0 while (step < iter): # 每次進入一次迭代后迭代次數(shù)加1 step += 1 # 步驟2:E步:依據(jù)當前模型參數(shù),計算分模型k對觀測數(shù)據(jù)y的響應(yīng)度 gamma0, gamma1 = E_step(dataSetArr, alpha0, mu0, sigmod0, alpha1, mu1, sigmod1) # 步驟3:M步 mu0, mu1, sigmod0, sigmod1, alpha0, alpha1 = M_step(mu0, mu1, gamma0, gamma1, dataSetArr) # 迭代結(jié)束后將更新后的各參數(shù)返回 return alpha0, mu0, sigmod0, alpha1, mu1, sigmod1if __name__ == ’__main__’: start = time.time() # 設(shè)置兩個高斯模型進行混合,這里是初始化兩個模型各自的參數(shù) # 見“9.3 EM算法在高斯混合模型學習中的應(yīng)用” # alpha是“9.3.1 高斯混合模型” 定義9.2中的系數(shù)α # mu0是均值μ # sigmod是方差σ # 在設(shè)置上兩個alpha的和必須為1,其他沒有什么具體要求,符合高斯定義就可以 alpha0 = 0.3 # 系數(shù)α mu0 = -2 # 均值μ sigmod0 = 0.5 # 方差σ alpha1 = 0.7 # 系數(shù)α mu1 = 0.5 # 均值μ sigmod1 = 1 # 方差σ # 初始化數(shù)據(jù)集 dataSetList = loadData(mu0, sigmod0, mu1, sigmod1, alpha0, alpha1) #打印設(shè)置的參數(shù) print(’---------------------------’) print(’the Parameters set is:’) print(’alpha0:%.1f, mu0:%.1f, sigmod0:%.1f, alpha1:%.1f, mu1:%.1f, sigmod1:%.1f’ % ( alpha0, alpha1, mu0, mu1, sigmod0, sigmod1 )) # 開始EM算法,進行參數(shù)估計 alpha0, mu0, sigmod0, alpha1, mu1, sigmod1 = EM_Train(dataSetList) # 打印參數(shù)預(yù)測結(jié)果 print(’----------------------------’) print(’the Parameters predict is:’) print(’alpha0:%.1f, mu0:%.1f, sigmod0:%.1f, alpha1:%.1f, mu1:%.1f, sigmod1:%.1f’ % ( alpha0, alpha1, mu0, mu1, sigmod0, sigmod1 )) # 打印時間 print(’----------------------------’) print(’time span:’, time.time() - start)

以上就是python em算法的實現(xiàn)的詳細內(nèi)容,更多關(guān)于python em算法的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线一区免费| 亚洲欧美日韩国产综合精品二区 | 六月婷婷一区| 国产精品1区在线| 久久久久久黄| 日韩精品视频在线看| 91tv亚洲精品香蕉国产一区| 91精品国产自产在线丝袜啪| 久久五月天小说| 久久99青青| 亚洲一区二区免费在线观看| 丁香六月综合| 国产日韩一区二区三区在线 | 夜久久久久久| 高清日韩欧美| 午夜精品影视国产一区在线麻豆| 国产精品99视频| 日本午夜精品久久久久| 欧美日韩国产传媒| 麻豆视频久久| 日韩国产成人精品| 亚洲欧美视频| 极品裸体白嫩激情啪啪国产精品| 国产成人免费视频网站视频社区| 日本精品另类| 蜜桃一区二区三区在线观看| 日韩av免费| 久久精品国产一区二区| 亚州av日韩av| 99在线精品视频在线观看| 成人一二三区| 国产精品qvod| 日韩国产欧美视频| 免费看日韩精品| 尤物在线精品| 91精品国产福利在线观看麻豆| 免费在线亚洲| 欧美私人啪啪vps| 综合色一区二区| 9国产精品视频| 蜜桃成人av| 四虎4545www国产精品| 国产精品成人自拍| 日本成人在线网站| 亚洲精品影视| 亚洲免费一区二区| 欧美亚洲激情| 日韩在线中文| 久久久久久久欧美精品| 麻豆精品视频在线| 亚洲不卡视频| 日本一区二区免费高清| 国产亚洲一级| 亚洲精品乱码| 欧美一区久久| 首页亚洲欧美制服丝腿| 国产欧美日韩精品一区二区免费 | 久久精品青草| 久久久一二三| 三级在线观看一区二区| 亚洲专区欧美专区| 另类专区亚洲| 欧美激情一区| 日韩精品久久久久久久软件91| 国产精品www.| 亚洲tv在线| 激情综合自拍| 桃色av一区二区| 国产精品亚洲人成在99www| 亚洲精华国产欧美| 国产精品黑丝在线播放| 美女视频黄 久久| 日韩av午夜在线观看| 亚洲va中文在线播放免费| 国产精品任我爽爆在线播放| 日韩一二三区在线观看| 麻豆成人在线| 久久亚洲不卡| 在线免费观看亚洲| 99国产精品99久久久久久粉嫩| 神马久久午夜| 久久男人av资源站| 日韩欧美一区二区三区免费看| 里番精品3d一二三区| 欧美日韩a区| 日本综合视频| 97精品资源在线观看| 亚洲欧洲日韩精品在线| 免费不卡中文字幕在线| 国产精品久久久久av电视剧| 国产a久久精品一区二区三区| 国产精品**亚洲精品| 久久国产精品美女| 精品国产一区二区三区噜噜噜| 精品视频久久| 人人草在线视频| 国产真实久久| 亚洲欧美不卡| 欧美天堂一区二区| 成人污污视频| 怡红院精品视频在线观看极品| 亚洲欧美日韩国产综合精品二区| 日韩精品一二三区| 日本免费在线视频不卡一不卡二| 91成人精品在线| 国产一区二区亚洲| 成人精品亚洲| 亚洲毛片在线| 高清在线一区| 国产亚洲精品久久久久婷婷瑜伽| 亚洲欧洲国产精品一区| 久久99青青| 国产亚洲午夜| 国产aⅴ精品一区二区四区| 日韩一区二区免费看| 国产精品视频一区二区三区综合 | 蜜桃久久av一区| 青青青国产精品| 亚洲高清不卡| 久久亚洲人体| 中文字幕日韩高清在线| 成人国产精品久久| 亚洲精品乱码日韩| 91精品国产乱码久久久久久久| 深夜福利一区| 欧美99久久| 国产精品成人a在线观看| 亚洲综合五月| 国产99亚洲| 国产中文欧美日韩在线| 国模 一区 二区 三区| 精品一区二区三区四区五区| 无码日韩精品一区二区免费| 亚洲先锋成人| 精品成人免费一区二区在线播放| 日韩欧美在线精品| 蜜桃成人av| 久久精品电影| 中文字幕在线免费观看视频| 国产精品一区亚洲| 日韩av字幕| 婷婷视频一区二区三区| 视频一区二区三区中文字幕| 欧美日韩国产观看视频| 高清不卡亚洲| 麻豆91精品91久久久的内涵| 亚洲精品福利| 日韩中文字幕| 日韩有吗在线观看| 91精品国产自产精品男人的天堂| 美女被久久久| 亚洲精品黄色| 日本久久一区| 国产精品蜜月aⅴ在线| 欧美日韩中出| 欧美极品一区二区三区| 欧美成人精品一级| 久久精品福利| 波多视频一区| 午夜视频精品| 国产高清一区二区| 宅男噜噜噜66国产日韩在线观看| 日韩视频二区| 丝袜a∨在线一区二区三区不卡| 99国产精品视频免费观看一公开 | 少妇精品久久久一区二区| 少妇高潮一区二区三区99| 91精品国产经典在线观看| 久久不卡国产精品一区二区| 成人在线视频免费看| 一区免费在线| 老牛国产精品一区的观看方式| 免费欧美日韩| 国产精品成人自拍| 欧美日韩在线播放视频| 欧美a级片一区| 亚洲一区二区三区四区电影 | 精品在线99| 免费日韩成人| 亚洲香蕉久久| 欧美久久精品一级c片| 精品国产三区在线| 日韩欧美在线精品| 在线视频精品| 91精品推荐| 国产精品白浆| 婷婷精品在线| 在线午夜精品| 亚洲第一精品影视| 国产精品毛片久久| 国产欧美日韩一区二区三区四区| 久久国产福利| 国产在线不卡| 蜜桃传媒麻豆第一区在线观看| 午夜国产一区二区| 久久一区欧美| 欧美久久精品| 中文字幕亚洲影视| 激情久久五月| 日韩国产欧美|