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

您的位置:首頁技術文章
文章詳情頁

python em算法的實現

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

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99国产精品久久久久久久成人热| 玖玖精品视频| 国产毛片一区二区三区 | 精品理论电影在线| 麻豆免费精品视频| 福利一区和二区| 亚洲天堂资源| 亚洲高清av| 男人天堂欧美日韩| 午夜精品福利影院| 国产乱码精品一区二区三区四区 | 黄毛片在线观看| 日韩欧美午夜| 狠狠色狠狠色综合日日tαg| 国产毛片久久| 日韩1区2区日韩1区2区| 国产精品久久久久久久久久白浆| 精品久久久久中文字幕小说| 另类中文字幕国产精品| 午夜国产一区二区| 亚欧洲精品视频在线观看| 国产伦精品一区二区三区视频| 麻豆精品在线| 91一区二区三区四区| 午夜影院欧美| 亚洲精品黄色| 麻豆视频久久| 国产韩日影视精品| 日本少妇一区二区| 久久电影tv| 最新日韩欧美| 91成人精品在线| 国产高潮在线| 中日韩男男gay无套| 日本午夜精品一区二区三区电影 | 精品一区二区三区免费看| 日韩电影免费网址| 性欧美长视频| 卡一卡二国产精品| 午夜国产一区二区| 久久黄色影视| 久久精品国产99久久| 最新国产精品久久久| 久久精品国产网站| 午夜久久影院| 国产精品1区| 免费视频国产一区| 国产亚洲一区二区三区啪| 国产精品99一区二区三区| 在线视频免费在线观看一区二区| 国产精品久久久久久久免费软件| 欧美成a人免费观看久久| 日韩在线a电影| 精品国产91| 久久亚洲国产精品一区二区| 久久亚洲精品中文字幕| 水野朝阳av一区二区三区| 精品91福利视频| 亚洲三级网站| 久久中文字幕av| 麻豆精品视频在线观看视频| 国产亚洲一级| av中文字幕在线观看第一页| 日韩中文av| 激情五月综合网| 高清一区二区三区| 午夜亚洲福利| 久久精品影视| 久久精品系列| 日韩精品视频中文字幕| 欧美/亚洲一区| 成人在线免费观看网站| 日韩高清在线不卡| 伊人精品在线| 日本蜜桃在线观看视频| 国产午夜一区| 亚洲欧美日本日韩| 亚洲国产欧美日本视频| 91福利精品在线观看| 不卡一区综合视频| 日韩深夜视频| 久久精品一区二区国产| 国产精品丝袜xxxxxxx| 91青青国产在线观看精品| 日韩av网站在线免费观看| 一本色道久久精品| 99精品在线| sm久久捆绑调教精品一区| 欧美日本不卡高清| 婷婷成人av| 丝袜诱惑制服诱惑色一区在线观看| 亚洲黄色中文字幕| 欧美激情福利| 日韩二区在线观看| 免费在线看一区| 妖精视频成人观看www| 欧美日韩一区二区三区视频播放| 国产精品成人国产| 国产亚洲精品美女久久久久久久久久| 日韩精品一二三区| 黑丝一区二区| 九九综合九九| 精品国模一区二区三区| 亚洲欧洲美洲av| 国产精品99一区二区三| 麻豆91精品91久久久的内涵| 欧美精品福利| 欧美日韩精品一区二区三区在线观看| 丝瓜av网站精品一区二区 | 91精品国产自产在线观看永久∴| 欧美aa在线视频| 欧美视频二区| 777久久精品| 日韩三级久久| 亚洲一区二区日韩| 最新亚洲国产| 日韩高清在线一区| 欧美日韩黄网站| 国产精品亚洲一区二区在线观看| 欧美久久精品| 美女性感视频久久| 国产一区二区三区四区五区| 国产成人在线中文字幕| 极品av在线| 99精品小视频| 欧美综合另类| 国产一区亚洲| 亚洲美洲欧洲综合国产一区| 91超碰国产精品| 久久福利影视| 日韩精品久久理论片| 国产精品xxx| 国产一区二区三区日韩精品| 日韩欧美网址| 午夜欧美视频| 婷婷五月色综合香五月| 国产精品日韩精品在线播放| 久久精品亚洲| 欧美黄色网页| 亚洲资源av| 亚洲综合图色| 青草av.久久免费一区| 国产精品久久久免费| 日韩av专区| 好看不卡的中文字幕| 亚洲人成精品久久久| 欧美三级第一页| 国产一区二区三区四区五区| 激情欧美亚洲| 色8久久久久| 麻豆精品视频在线| 久久久久蜜桃| 亚洲毛片一区| 国产精品久久久久77777丨| 福利一区在线| 99亚洲视频| 欧美日韩1区| 欧美成人a交片免费看| 欧美.日韩.国产.一区.二区| 亚洲综合五月| 福利一区视频| 先锋影音久久久| 欧美激情视频一区二区三区在线播放| 日韩不卡视频在线观看| 一区二区精彩视频| 国产aⅴ精品一区二区四区| 亚洲精品在线观看91| 日韩欧美美女在线观看| 成人精品久久| 久久午夜精品| 精品三级av| 激情婷婷久久| 国产亚洲一卡2卡3卡4卡新区| 91精品xxx在线观看| 影音先锋久久精品| 国语精品一区| 亚洲涩涩av| 日韩精品dvd| 日韩精品视频一区二区三区| 日韩国产一区| 欧美日韩va| 黄色欧美日韩| 国内自拍视频一区二区三区| 美女精品在线| 久久青青视频| 日韩精品亚洲一区二区三区免费| 久久精品国产99国产精品| 91久久视频| 国产盗摄——sm在线视频| 日本在线成人| 91精品高清| 国产在线视频欧美一区| 亚洲免费成人av在线| 亚洲a一区二区三区| 国产精品久久久久久久久久齐齐| 黄色欧美日韩| 欧美日韩在线观看首页| 日韩精品一区二区三区av| 久久中文字幕二区| 精品午夜视频|