如何绘制三维或更多维的多元高斯分布

在机器学习和模式识别的研究中,我们知道如果样本i具有二维特征,如(长度,体重),长度和体重都属于高斯分布,因此我们可以使用多元高斯分布来描述它

这只是一个看起来像这样的3D图形:

enter image description here

其中z轴表示可能性,但如果这个样本i具有三维特征,x1, x2, x3…xn甚至更多,我们如何用一个图形正确地绘制它呢?


回答:

你可以使用降维方法来可视化高维数据。https://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html#sphx-glr-auto-examples-manifold-plot-compare-methods-py

  1. 将D维数据转换为2维或3维数据
  2. 根据数据降维的维度,在2维或3维上绘制转换后的数据点

让我们考虑一个例子。以10维高斯分布为例

然后进行降维(我使用了PCA,你可以根据算法对特定类型数据的有效性先验知识选择其他方法)

然后绘制它们

fig = plt.figure(figsize=(12,4))ax = fig.add_subplot(121, projection='3d')ax.scatter(X_3d[:,0],X_3d[:,1],X_3d[:,2])plt.title('3D')fig.add_subplot(122)plt.scatter(X_2d[:,0], X_2d[:,1])plt.title('2D')

results for 10D gaussian

你也可以尝试使用其他算法。每种方法都有不同的优势。我希望这能回答你的问题。

注意:在高维度中,“维度灾难”现象也会出现。因此,在低维度上的准确投影可能无法实现。这就像为什么格陵兰岛在制图地图上看起来与非洲大小相似的原因一样。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注