在机器学习和模式识别的研究中,我们知道如果样本i具有二维特征,如(长度,体重),长度和体重都属于高斯分布,因此我们可以使用多元高斯分布来描述它
这只是一个看起来像这样的3D图形:
其中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
- 将D维数据转换为2维或3维数据
- 根据数据降维的维度,在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')
你也可以尝试使用其他算法。每种方法都有不同的优势。我希望这能回答你的问题。
注意:在高维度中,“维度灾难”现象也会出现。因此,在低维度上的准确投影可能无法实现。这就像为什么格陵兰岛在制图地图上看起来与非洲大小相似的原因一样。