dp-概率dp

概率DP主要用于求解期望、概率等题目。

转移方程有时候比较灵活。

一般求概率是正推,求期望是逆推。通过题目可以体会到这点。


1.

在一条不满地雷的路上,你现在的起点在1处。在N个点处布有地雷,1<=N<=10。地雷点的坐标范围:[1,100000000].
每次前进p的概率前进一步,1-p的概率前进2步。问顺利通过这条路的概率。就是不要走到有地雷的地方。

a.记dp[i]为到达i点处的概率,则有dp[1]=1;

 dp[i]=p*dp[i-1]+(1-p)*dp[i-2];但是i-1与i-2有没有地雷需要考虑,数据量太大


N个有地雷的点的坐标为 x[1],x[2],x[3]```````x[N].
我们把道路分成N段:
1~x[1];
x[1]+1~x[2];
x[2]+1~x[3];
`
`
`
x[N-1]+1~x[N].
 
这样每一段只有一个地雷。我们只要求得通过每一段的概率。乘法原理相乘就是答案。
对于每一段,通过该段的概率等于 1-踩到该段终点的地雷的概率。
 
就比如第一段 1~x[1].  通过该段其实就相当于是到达x[1]+1点。那么p[x[1]+1]=1-p[x[1]].
但是这个前提是p[1]=1,即起点的概率等于1.对于后面的段我们也是一样的假设,这样就乘起来就是答案了。
 
对于每一段的概率的求法可以通过矩阵乘法快速求出来。

 










由于给定引用中未提及DP - GMM的相关内容,结合专业知识,DP - GMM即狄利克雷过程混合高斯模型(Dirichlet Process Gaussian Mixture Model),以下为其原理、应用及实现的介绍。 ### 原理 DP - GMM是一种非参数贝叶斯模型,用于对数据进行聚类分析。传统的高斯混合模型(GMM)需要预先指定高斯分量的数量,而DP - GMM通过狄利克雷过程(Dirichlet Process, DP)来自动确定高斯分量的数量,从而避免了人为指定的主观性。 狄利克雷过程是一种随机概率测度,它可以生成无限多个原子概率分布。在DP - GMM中,每个数据点都被认为是从一个潜在的高斯分布中生成的,而这些高斯分布的参数则是从狄利克雷过程中抽样得到的。具体来说,DP - GMM的生成过程可以描述如下: 1. 从狄利克雷过程中抽样得到一个概率测度。 2. 从这个概率测度中抽样得到高斯分布的参数。 3. 对于每个数据点,从抽样得到的高斯分布中生成该数据点。 ### 应用 DP - GMM在许多领域都有广泛的应用,主要包括以下方面: - **聚类分析**:DP - GMM可以自动确定聚类的数量,因此在数据聚类任务中具有很大的优势。例如,在图像分割、文本分类等领域,可以使用DP - GMM对数据进行聚类分析。 - **密度估计**:DP - GMM可以用于估计数据的概率密度函数。通过对数据进行建模,可以得到数据的分布特征,从而为后续的分析和决策提供依据。 - **异常检测**:DP - GMM可以识别出数据中的异常点。通过对正常数据进行建模,当出现不符合模型的数据点时,可以将其判定为异常点。 ### 实现 在Python中,可以使用`scikit - learn`库中的`BayesianGaussianMixture`类来实现DP - GMM。以下是一个简单的示例代码: ```python import numpy as np from sklearn.mixture import BayesianGaussianMixture import matplotlib.pyplot as plt # 生成一些示例数据 np.random.seed(0) n_samples = 300 X = np.vstack([ np.random.normal(loc=[0, 0], scale=[1, 1], size=(n_samples // 3, 2)), np.random.normal(loc=[5, 5], scale=[1, 1], size=(n_samples // 3, 2)), np.random.normal(loc=[10, 0], scale=[1, 1], size=(n_samples // 3, 2)) ]) # 创建DP - GMM模型 dpgmm = BayesianGaussianMixture(n_components=10, weight_concentration_prior_type='dirichlet_process', weight_concentration_prior=0.01) # 拟合模型 dpgmm.fit(X) # 预测每个数据点的类别 labels = dpgmm.predict(X) # 可视化结果 plt.scatter(X[:, 0], X[:, 1], c=labels, s=40, cmap='viridis') plt.title('DP - GMM Clustering') plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值