Python 从高斯混合模型中采样数据点
我对python和GMM真的很陌生。我最近学习了GMM,并试图从中实现代码 我在运行gmm.sample()方法时遇到了一些问题: 错误显示:Python 从高斯混合模型中采样数据点,python,scikit-learn,data-science,gaussian,mixture-model,Python,Scikit Learn,Data Science,Gaussian,Mixture Model,我对python和GMM真的很陌生。我最近学习了GMM,并试图从中实现代码 我在运行gmm.sample()方法时遇到了一些问题: 错误显示: TypeError: sample() got an unexpected keyword argument 'random_state' 我检查了最新的文档,发现方法样本应该只包含n,这表示要生成的样本数。但当我删除“random_state=42”时,会出现新的错误: 代码: Xnew = gmm16.sample(400) plt.scatter
TypeError: sample() got an unexpected keyword argument 'random_state'
我检查了最新的文档,发现方法样本应该只包含n,这表示要生成的样本数。但当我删除“random_state=42”时,会出现新的错误:
代码:
Xnew = gmm16.sample(400)
plt.scatter(Xnew[:, 0], Xnew[:, 1])
错误:
TypeError: tuple indices must be integers or slices, not tuple
当您实现Jake VanderPlas的代码时,是否有人遇到此问题?我怎样才能修好它
我的Jupyter:
笔记本服务器的版本为:5.7.4
Python 3.7.1(默认值,2018年12月14日,13:28:58)
有关详细信息,请键入“版权”、“信用”或“许可证”
IPython 7.2.0——一种增强的交互式Python。键入“?”以获取帮助
您的问题在于将数据输入散点图的方式。 尤其是元组中有一个numpy数组,并且索引的方式是不正确的。 试试这个
plt.scatter(Xnew[0][:,0], Xnew[0][:,1])
基本上,我们拥有的是第一个索引
Xnew[0]
将指向您想要的元组中的元素(numpy数组),第二个将根据需要对其进行切片[:,1]
这里我们获取所有行和第二列。您将获得类型错误
,因为示例
方法返回一个元组
,请参阅
这应该可以做到:
Xnew, Ynew = gmm16.sample(400) # if Ynew is valuable
plt.scatter(Xnew[:, 0], Xnew[:, 1])
或
Xnew, Ynew = gmm16.sample(400) # if Ynew is valuable
plt.scatter(Xnew[:, 0], Xnew[:, 1])
Xnew, _ = gmm16.sample(400) # if Ynew isn't valuable
plt.scatter(Xnew[:, 0], Xnew[:, 1])