日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python贝叶斯网络预测模型_高效灵活的概率建模方法基于Python

發(fā)布時(shí)間:2023/12/31 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python贝叶斯网络预测模型_高效灵活的概率建模方法基于Python 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

在今天給大家介紹一個(gè)研究工具:pomegranate。它比其他軟件包更加靈活,更快,直觀易用,并且可以在多線程中并行完成。

The API

主要模型介紹一般混合模型

隱馬爾可夫模型

貝葉斯網(wǎng)絡(luò)

貝葉斯分類器

所有模型使用做多的方法

model.log_probability(X) / model.probability(X)

model.sample()

model.fit(X, weights, inertia)

model.summarize(X, weights)

model.from_summaries(inertia)

model.predict(X) model.predict_proba(X)

model.predict_log_proba(X)

model.from_samples(X, weights)

支持很多分布函數(shù)單變量分布

1. UniformDistribution

2. BernoulliDistribution

3. NormalDistribution

4. LogNormalDistribution

5. ExponentialDistribution

6. BetaDistribution

7. GammaDistribution

8. DiscreteDistribution

9. PoissonDistribution

內(nèi)核密度

1. GaussianKernelDensity

2. UniformKernelDensity

3. TriangleKernelDensity

多變量分布

1. IndependentComponentsDistribution

2. MultivariateGaussianDistribution

3. DirichletDistribution

4. ConditionalProbabilityTable

5. JointProbabilityTable

模型可以從已知值中創(chuàng)建

模型也可以從數(shù)據(jù)直接學(xué)習(xí)

pomegranate 比 numpy 快

只需要一次數(shù)據(jù)集(適用于所有模型)。以下是正態(tài)分布統(tǒng)計(jì)示例:

支持核心學(xué)習(xí)

由于使用了足夠多的統(tǒng)計(jì)數(shù)據(jù),因此可以支持外核/在線學(xué)習(xí)。

pomegranate 比 scipy 快

The API

主要模型介紹一般混合模型

隱馬爾可夫模型

貝葉斯網(wǎng)絡(luò)

貝葉斯分類器

通用混合模型(GMM)可以對(duì)多組分布進(jìn)行建模

GMM使用期望最大化(EM)來擬合

1、使用kmeans ++或kmeans ||初始化集群

2、對(duì)于等于后P(M | D)(E步)的所有點(diǎn)分配權(quán)重

3、使用加權(quán)點(diǎn)更新分布(M步)

4、重復(fù)2和3,直到收斂

model = GeneralMixtureModel.from_samples(NormalDistribution, 2, X)

GMM不限于高斯分布

單個(gè)指數(shù)分布不能很好的數(shù)據(jù)進(jìn)行建模

model = ExponentialDistribution.from_samples(X)

兩個(gè)指數(shù)混合使數(shù)據(jù)更好的模擬

model = GeneralMixtureModel.from_samples(ExponentialDistribution, 2, X)

Heterogeneous mixtures are natively supported

model = GeneralMixtureModel.from_samples([ExponentialDistribution, UniformDistribution], 2, X)

一般混合模型比sklearn快

The API

主要模型介紹一般混合模型

隱馬爾可夫模型

貝葉斯網(wǎng)絡(luò)

貝葉斯分類器

CG enrichment detection HMM

GACTACGACTCGCGCTCGCGCGACGCGCTCGACATCATCGACACGACACTC

GMM-HMM

HMM比hmmlearn快

The API

主要模型介紹一般混合模型

隱馬爾可夫模型

貝葉斯網(wǎng)絡(luò)

貝葉斯分類器

P(M|D)= P(D|M)P(M) / P(D)

Posterior = Likelihood * Prior / Normalization

基于數(shù)據(jù)建立一個(gè)簡(jiǎn)單的分類器

似然函數(shù)本身忽略了類不平衡

先驗(yàn)概率可以模擬分類不平衡

后驗(yàn)?zāi)P透鎸?shí)地對(duì)原始數(shù)據(jù)進(jìn)行建模

后者的比例是一個(gè)很好的分類器

model = NaiveBayes.from_samples(NormalDistribution, X, y)

posteriors = model.predict_proba(idxs)

P(M|D)= ∏P(D|M) P(M) / P(D)

Posterior = Likelihood * Prior / Normalization

Naive Bayes does not need to be homogenous

不同的功能屬于不同的分布

Gaussian Naive Bayes: 0.798

sklearn Gaussian Naive Bayes: 0.798

Heterogeneous Naive Bayes: 0.844

與sklearn一樣快

P(M|D)= P(D|M) P(M) / P(D)

Posterior = Likelihood * Prior / Normalization

mc_a = MarkovChain.from_samples(X[y == 0])

mc_b = MarkovChain.from_samples(X[y == 1])

model_b = BayesClassifier([mc_a, mc_b], weights=numpy.array([1-y.mean(), y.mean()]))

hmm_a = HiddenMarkovModel…

hmm_b = HiddenMarkovModel...

model_b = BayesClassifier([hmm_a, hmm_b], weights=numpy.array([1-y.mean(), y.mean()]))

bn_a = BayesianNetwork.from_samples(X[y == 0])

bn_b = BayesianNetwork.from_samples(X[y == 1])

model_b = BayesClassifier([bn_a, bn_b], weights=numpy.array([1-y.mean(), y.mean()]))

并行

總結(jié)

以上是生活随笔為你收集整理的python贝叶斯网络预测模型_高效灵活的概率建模方法基于Python的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。