当前位置: 首页 > 知识库问答 >
问题:

在PCA和LDA中绘制凸包

龚运乾
2023-03-14

在下面的代码中,有一个基于Iris数据集的主成分分析(PCA)和线性判别分析(LDA)图的示例。我如何添加到每组它的凸包?

代码:

import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

iris = datasets.load_iris()

X = iris.data
y = iris.target
target_names = iris.target_names

pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)

lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

# Percentage of variance explained for each components
print('explained variance ratio (first two components): %s'
      % str(pca.explained_variance_ratio_))

plt.figure()
colors = ['navy', 'turquoise', 'darkorange']
lw = 2

for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r[y == i, 0], X_r[y == i, 1], color=color, alpha=.8, lw=lw,
                label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('PCA of IRIS dataset')

plt.figure()
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r2[y == i, 0], X_r2[y == i, 1], alpha=.8, color=color,
                label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('LDA of IRIS dataset')

plt.show() 

共有1个答案

欧阳向文
2023-03-14

使用SciPy,您可以很容易地绘制点的凸包。

hull = ConvexHull(X_r)
for simplex in hull.simplices:
    plt.plot(X_r[simplex, 0], X_r[simplex, 1], 'k-')

对于您的第一个情节,这将给出以下结果:

 类似资料:
  • 主要内容:示例可以使用类的方法在图像上绘制凸多段线。 以下是此方法的语法。 该方法接受以下参数 - mat - 表示要在其上绘制矩形的图像的对象。 points - 一个对象,表示要在其间绘制凸多段线的点。 color - 表示矩形颜色的标量对象(BGR)。 类的构造函数接受类的对象。 示例 以下程序演示如何在图像上绘制凸多段线并使用JavaFX窗口显示它。 在执行上述程序时,您将得到以下输出 -

  • 本文向大家介绍SVD和PCA?相关面试题,主要包含被问及SVD和PCA?时的应答技巧和注意事项,需要的朋友参考一下 PCA的理念是使得数据投影后的方差最大,找到这样一个投影向量,满足方差最大的条件即可,而经过了去除均值的操作之后,就可以用SVD分解来求解这样一个投影向量,选择特征值最大的方向

  • 这个TAB中间的这种,后面有个平滑凸起的背景

  • PCA

    PCA:principal component analysis ,主成分分析 ICA :Independent component analysis,独立成分分析 PCA,ICA都是统计理论当中的概念,在机器学习当中应用很广,比如图像,语音,通信的分析处理。 从线性代数的角度去理解,PCA和ICA都是要找到一组基,这组基张成一个特征空间,数据的处理就都需要映射到新空间中去。 两者常用于机器学习中

  • LDA*(Latent Dirichlet Allocation) LDA是一种常见的主题模型算法。简单来说它是一个贝叶斯概率生成模型,用于对文档集进行降维或者潜在语义分析。 1. 算法介绍 整体说明 给定一个语料库。 语料库中的词整体构成了一个词汇表中采样出 一个 中采样出该词的话题 中采样出单词, SparseLDA, AliasLDA, F+LDA, LightLDA和WarpLDA。 我们

  • Wiki ▸ [[API Reference]] ▸ [[Geometry]] ▸ Hull Geom # d3.geom.hull() Create a new hull layout with the default x- and y-accessors. # hull(vertices) Returns the convex hull for the specified vertices a