做网站宽高怎么决定主题猫wordpress
2026/2/13 7:15:27 网站建设 项目流程
做网站宽高怎么决定,主题猫wordpress,wordpress找回密码收不到邮件,济南seo官网优化背景 主成分分析#xff08;PCA, Principal Component Analysis#xff09; 在机器学习中#xff0c;主要用于提升向量表示的质量或效率。PCA 可以对一个向量在进行降维的同时#xff0c;还最大限度的保留向量的主要特征。 现代嵌入模型#xff08;如 BERT、OpenAI Embedd…背景主成分分析PCA, Principal Component Analysis 在机器学习中主要用于提升向量表示的质量或效率。PCA 可以对一个向量在进行降维的同时还最大限度的保留向量的主要特征。现代嵌入模型如 BERT、OpenAI Embeddings生成的向量维度很高如 768、1536 维导致● 存储成本高● 近似最近邻搜索速度慢解决方案用 PCA 将高维向量投影到低维空间如 128256 维● 保留大部分方差信息● 加速搜索● 减少内存占用PCA 就是对此非常有用的一个算法。原理假设有nnn个样本每个样本用一个ddd维的向量来表示我们可以用矩阵Xn×dX_{n\times d}Xn×d​来表示它假设已经完成了对XXX的归一化保证所有维度量纲、刻度相同也就是xi′xi−μσx_i\frac{x_i-\mu}{\sigma}xi′​σxi​−μ​。那么1n⋅XT⋅X\frac{1}{n}\cdot X^T\cdot Xn1​⋅XT⋅X是一个d×dd\times dd×d的矩阵它可以被这样来看待对角线上是每一个维度的方差其余是不同维度之间的协方差如果要对其进行降维的话我们希望去掉那些特征不鲜明的维度自身方差小或者说去掉那些和别的维度相关性很强的维度和别的维度协方差大也就是说希望保留下来的维度方差尽可能的大意味着这个维度特征鲜明和别的维度协方差尽可能的小意味着这这两个维度不相关。记SXT⋅XSX^T\cdot XSXT⋅XSSS的特征值从大到小是λ1,...,λd\lambda_1,...,\lambda_dλ1​,...,λd​且其对应的特征向量是w1,...,wdw_1,...,w_dw1​,...,wd​wiw_iwi​是d×1d\times 1d×1的。根据特征值、特征向量的特性有S⋅wiλiwiS\cdot w_i\lambda_iw_iS⋅wi​λi​wi​wiw_iwi​是一组正交基考虑用特征向量组成的矩阵WWW对XXX做线性变化YX⋅WYX\cdot WYX⋅WW(w1,...,wd)W(w_1,...,w_d)W(w1​,...,wd​)。观察YYY的方差和协方差即YT⋅YWT⋅XT⋅X⋅WWT⋅S⋅WY^T\cdot YW^T\cdot X^T\cdot X\cdot WW^T\cdot S\cdot WYT⋅YWT⋅XT⋅X⋅WWT⋅S⋅W(w1...wd)⋅(λ1w1...λdwd)(λ1...0...0λ20..................0...λd) {} \begin{pmatrix} w_1 \\ ... \\ w_d \end{pmatrix} \cdot \begin{pmatrix} \lambda_1w_1 ... \lambda_dw_d \end{pmatrix} {} \begin{pmatrix} \lambda_1 ... 0 ... \\ 0 \lambda_2 0 ... \\ ... ... ... ... \\ ... 0 ... \lambda_d \end{pmatrix}​w1​...wd​​​⋅(λ1​w1​...λd​wd​​)​λ1​0......​...λ2​...0​00......​.........λd​​​也就是对角线是特征值其余都是 0意味着方差沿着对角线从大到小排列协方差都是 0。这个结果正是我们想要的因此只要取前ccc个最大的特征值对应的wiw_iwi​组成W(wi,...,wc)W(w_i,...,w_c)W(wi​,...,wc​)去乘以XXX就可以得到YX⋅WYX\cdot WYX⋅W这一组新的维度因为WWW是d×cd\times cd×c的因此YYY是n×cn\times cn×c的相当于对原有数据进行了降维且降维后的维度保留了最大的特征特征并且是最不相关的协方差为 0。所以这个问题最终就变成求解矩阵前kkk个最大特征值对应的特征向量即可。实例让大模型生成一个 Python 脚本实现一下 PCAimportnumpyasnp# 设置打印精度可选np.set_printoptions(precision4,suppressTrue)# Step 1: 输入 5 个样本3 个维度的数据Xnp.array([[2.5,2.4,1.1],[0.5,0.7,0.8],[2.2,2.9,1.3],[1.9,2.2,1.0],[3.1,3.0,1.5]])print(原始数据 X (5 samples × 3 features):)print(X)print()# Step 2: 中心化减去均值mean_vecnp.mean(X,axis0)X_centeredX-mean_vecprint(中心化后的数据 X_centered:)print(X_centered)print()# Step 3: 计算协方差矩阵# 注意numpy.cov 默认按列是变量行是观测所以需要转置# 或者用 (X_centered.T X_centered) / (n_samples - 1) 作为无偏估计n_samplesX.shape[0]# 使用无偏估计除以 n-1与 sklearn 一致cov_matrixnp.cov(X_centered,rowvarFalse)# rowvarFalse 表示每列是一个变量print(协方差矩阵 S (3×3):)print(cov_matrix)print()# Step 4: 特征值分解eigenvals,eigenvecsnp.linalg.eigh(cov_matrix)# eigh 用于对称矩阵返回升序# 将特征值从大到小排序idxnp.argsort(eigenvals)[::-1]eigenvalseigenvals[idx]eigenvecseigenvecs[:,idx]print(特征值从大到小:)print(eigenvals)print()print(对应的特征向量每列为一个特征向量:)print(eigenvecs)print()# Step 5: 选择前 k2 个主成分k2projection_matrixeigenvecs[:,:k]# 3×2 矩阵print(f投影矩阵 W (3×{k}) —— 前{k}个主成分特征向量:)print(projection_matrix)print()# Step 6: 投影到低维空间X_pcaX_centered projection_matrix# (5×3) (3×2) (5×2)print(降维后的数据 (5 samples × 2 components):)print(X_pca)print()# Step 7: 验证方差每个主成分的方差应等于对应特征值print(各主成分的样本方差应 ≈ 特征值:)pca_variancesnp.var(X_pca,axis0,ddof1)# ddof1 为无偏估计print(pca_variances)print(对应的特征值:)print(eigenvals[:k])结果如下原始数据 X(5 samples × 3 features):[[2.5 2.4 1.1][0.5 0.7 0.8][2.2 2.9 1.3][1.9 2.2 1.][3.1 3.1.5]]中心化后的数据 X_centered:[[0.46 0.16-0.04][-1.54-1.54-0.34][0.16 0.66 0.16][-0.14-0.04-0.14][1.06 0.76 0.36]]协方差矩阵 S(3×3):[[0.938 0.8405 0.233][0.8405 0.853 0.2255][0.233 0.2255 0.073]]特征值从大到小:[1.798 0.0541 0.0119]对应的特征向量每列为一个特征向量:[[-0.7121-0.6967-0.0872][-0.6774 0.7143-0.1758][-0.1847 0.0661 0.9806]]投影矩阵 W(3×2)—— 前 2 个主成分特征向量:[[-0.7121-0.6967][-0.6774 0.7143][-0.1847 0.0661]]降维后的数据(5 samples × 2 components):[[-0.4285-0.2088][2.2025-0.0496][-0.5906 0.3706][0.1526 0.0597][-1.3361-0.1718]]各主成分的样本方差应 ≈ 特征值:[1.798 0.0541]对应的特征值:[1.798 0.0541]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询