当前位置: 首页 > wzjs >正文

网站上那些轮播图视频怎么做的免费网站 推广网站

网站上那些轮播图视频怎么做的,免费网站 推广网站,如何做公司的网站,wordpress 3.6 下载TensorFlow深度学习实战(17)——主成分分析详解 0. 前言1. 主成分分析2. 使用 TensorFlow 实现 PCA3. TensorFlow 嵌入 API小结系列链接 0. 前言 主成分分析 (Principal Component Analysis, PCA) 是一种强大的降维工具,通过找到数据的主成分…

TensorFlow深度学习实战(17)——主成分分析详解

    • 0. 前言
    • 1. 主成分分析
    • 2. 使用 TensorFlow 实现 PCA
    • 3. TensorFlow 嵌入 API
    • 小结
    • 系列链接

0. 前言

主成分分析 (Principal Component Analysis, PCA) 是一种强大的降维工具,通过找到数据的主成分,可以有效地减少数据的复杂性,去除冗余特征,并保留数据的主要信息,在数据预处理、特征提取和可视化等方面都有广泛的应用。

1. 主成分分析

主成分分析 (Principal Component Analysis, PCA) 是最流行的用于降维的多变量统计技术。它分析由多个相关变量组成的训练数据,并从中提取出重要信息,这些信息以一组新的正交变量(称为主成分, principal components )的形式呈现。
我们可以通过两种方法来执行 PCA,包括特征分解 (eigen decomposition) 和奇异值分解 (singular value decomposition, SVD)。PCA n n n 维输入数据降维到 r r r 维,其中 r < n r < n r<n。简单来说,PCA 平移原点并旋转坐标轴,使得其中一个轴(主轴)具有数据点的最大方差。通过这种变换,我们从原始数据集中得到一个降维数据集,然后去除低方差的正交轴。在本节中,我们使用 SVD 方法来进行 PCA 降维。假设 X X X 是一个 n n n 维数据,包含 p p p 个点,即 X X X 是一个大小为 p × n p \times n p×n 的矩阵。根据线性代数,我们知道任何实矩阵都可以通过奇异值分解进行分解:
X = U Σ V T X=U\Sigma V^T X=UΣVT
其中, U U U V V V 分别是大小为 p × p p \times p p×p n × n n \times n n×n 的正交矩阵(即, U U T = V V T = E UU^T = VV^T = E UUT=VVT=E E E E 为单位矩阵), Σ \Sigma Σ 是一个 p × n p × n p×n 的对角矩阵。 U U U 矩阵被称为左奇异矩阵, V V V 矩阵是右奇异矩阵,而 Σ \Sigma Σ 对角矩阵包含 X X X 的奇异值作为其对角元素。这里我们假设 X X X 矩阵已中心化。 V V V 矩阵的列是主成分,而 U Σ U\Sigma UΣ 矩阵的列是经过主成分转换的数据。
为了将数据的维度从 n n n 减少到 k k k (其中 k < n k < n k<n),选择 U U U 的前 k k k 列和 Σ \Sigma Σ 的左上角 k × k k × k k×k 部分。这两者的乘积为降维后的矩阵:
Y k = U Σ k Y_k=U\Sigma_k Yk=UΣk
得到的数据 Y Y Y 将具有降低特征。接下来,使用 TensorFlow 实现 PCA

2. 使用 TensorFlow 实现 PCA

(1) 导入所需库,除了 TensorFlow 外,还需要 NumPy 进行一些基本的矩阵计算,以及 MatplotlibMatplotlibSeaborn 进行可视化:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import seaborn as sns

(2) 接下来,加载 MNIST 数据集。由于使用 PCA 进行降维,不需要测试数据集和标签;这里加载标签是为了在降维后验证 PCA 的性能。PCA 应该将相似的数据点聚集在一个簇中;因此,如果使用 PCA 形成的簇与标签相关,表明 PCA 算法工作正常:

((x_train, y_train), (_, _)) = tf.keras.datasets.mnist.load_data()

(3) 对数据进行预处理。首先对数据进行归一化,使所有数据值介于 01 之间,然后将图像由尺寸为 28 × 28 的矩阵重塑为 784 维的向量,最后通过减去均值进行中心化:

x_train = x_train / 255.
x_train = x_train.astype(np.float32)
x_train = np.reshape(x_train, (x_train.shape[0], 784))mean = x_train.mean(axis = 1)
x_train = x_train - mean[:,None]

(4) 利用 TensorFlow 的线性代数 (linalg) 模块计算训练数据集的奇异值分解 (singular value decomposition, SVD)。TensorFlow 使用 tf.linalg 中的 svd() 函数执行 SVD 任务。然后使用 diag 函数将 Σ \Sigma Σ 数组(奇异值的列表 s s s )转换为对角矩阵:

s, u, v = tf.linalg.svd(x_train)
s = tf.linalg.diag(s)

得到一个大小为 784 × 784 的对角矩阵 s s s;一个大小为 60,000 × 784 的左奇异矩阵 u u u;以及一个大小为 784 × 784 的右奇异矩阵 v v v。由于 svd() 函数的 full_matrices 参数默认设置为 False,因此,它不会生成完整的 U U U 矩阵(完整的 U U U 矩阵大小为 60,000 × 60,000);而是如果输入 X X X 的大小为 m × n m × n m×n,它会生成大小为 p = m i n ( m , n ) p = min(m,n) p=min(m,n) U U U 矩阵。

(5) 可以通过将 u u u s s s 的相应切片相乘来生成降维后的数据。我们可以选择将数据减少到小于 784 的任何维度,在本节中,我们将数据从 784 维减少到 3 维,以便后续更容易可视化。使用 tf.Tensor.getitem 对矩阵执行切片:

k = 3
pca = tf.matmul(u[:,0:k], s[0:k,0:k])

(6) 比较原始数据和降维数据的形状:

print('original data shape',x_train.shape)
print('reduced data shape', pca.shape) # original data shape (60000, 784)
# reduced data shape (60000, 3)

(7) 最后,在三维空间中绘制数据点:

Set = sns.color_palette("Set2", 10)
color_mapping = {key:value for (key,value) in enumerate(Set)}
colors = list(map(lambda x: color_mapping[x], y_train))
print(type(colors))
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(pca[:, 0].numpy(), pca[:, 1].numpy(), pca[:, 2].numpy(), c=colors)
plt.show() 

PCA

可以看到,相同颜色(即相同标签)的点聚集在一起。因此,可以认为已经成功地使用 PCAMNIST 图像的维度降低。每个原始图像的大小为 28 × 28。使用 PCA 方法,我们可以将其减少到更小的尺寸。通常,对于图像数据,降维是必要的,因为图像的大小很大,并且包含大量冗余数据。

3. TensorFlow 嵌入 API

TensorFlow 提供了一个嵌入 API,使用 TensorBoard 查找和可视化 PCAtSNE 聚类,可以查看 MNIST 图像上的实时 PCA

MNIST PCA

可以使用 TensorBoard 来处理数据,TensorBoard 包含了一个称为 Embedding Projector 的工具,允许用户交互式地可视化嵌入。Embedding Projector 工具有三个面板:

  • 数据 (Data) 面板:可以在此面板中选择数据、标签等
  • 投影 (Projection) 面板:可以在此面板选择所需的投影类型,提供了 4 种选择:UMAPPCAt-SNE 和自定义 (CUSTOM)
  • 检查 (Inspector) 面板:可以在此面板搜索特定的点,并查看最近邻的列表

Embedding Projector

PCA 是一个用于可视化数据集和寻找变量之间线性关系的有用工具,还可以用于聚类、异常检测和特征选择。

小结

主成分分析 (Principal Component Analysis, PCA) 是一种常用的数据降维技术,主要用于处理高维数据并减少数据的复杂性,同时尽可能保留原始数据中的信息。它通过线性变换将数据从原始坐标系投影到一个新的坐标系,在新的坐标系中,数据的方差最大,且各主成分之间互相正交。

系列链接

TensorFlow深度学习实战(1)——神经网络与模型训练过程详解
TensorFlow深度学习实战(2)——使用TensorFlow构建神经网络
TensorFlow深度学习实战(3)——深度学习中常用激活函数详解
TensorFlow深度学习实战(4)——正则化技术详解
TensorFlow深度学习实战(5)——神经网络性能优化技术详解
TensorFlow深度学习实战(6)——回归分析详解
TensorFlow深度学习实战(7)——分类任务详解
TensorFlow深度学习实战(8)——卷积神经网络
TensorFlow深度学习实战(9)——构建VGG模型实现图像分类
TensorFlow深度学习实战(10)——迁移学习详解
TensorFlow深度学习实战(11)——风格迁移详解
TensorFlow深度学习实战(12)——词嵌入技术详解
TensorFlow深度学习实战(13)——神经嵌入详解
TensorFlow深度学习实战(14)——循环神经网络详解
TensorFlow深度学习实战(15)——编码器-解码器架构
TensorFlow深度学习实战(16)——注意力机制详解

http://www.dtcms.com/wzjs/435658.html

相关文章:

  • wordpress 会员 按月360站长工具seo
  • 站内seo是什么意思指数基金怎么买
  • 企业做网站需要什么手续吗福州seo公司
  • 零基础怎么开网店seo网站关键词优化方法
  • 武汉免费网站制作百度24小时人工客服电话
  • 手机做网站软件各种网站
  • 牛商网做的网站手机优化专家下载
  • 宁海哪里有做网站的seo sem是什么职位
  • 深圳集团网站建设公司好推广普通话活动方案
  • 做网站需要流程宁波seo优化报价多少
  • 现在c 做网站用什么框架新闻发布的网站
  • 腾讯云可以做网站吗济南seo快速霸屏
  • 建设网站免费今日热点事件
  • 自己怎么做淘宝客网站关键词汇总
  • 网站建设的主题网上电商平台开发
  • 做网站的总要求上门网站推广seo方法
  • 网站 成功案例新媒体运营培训学校
  • 日本有免费无线网吗站内seo内容优化包括
  • 住房与住房建设部网站首页绍兴seo排名收费
  • 物联网平台软件汕头自动seo
  • 室内设计网站有哪些比较好google关键词挖掘工具
  • 母版页和窗体做网站例子网站建设优化的技巧
  • 一个网站可以设多少关键词培训机构连锁加盟
  • 昆明大型网站建设网页怎么制作
  • 网站制作图片插入代码百度竞价广告点击器
  • 安阳宣传片制作公司网站性能优化
  • 自己做静态网站的步骤互联网广告平台排名
  • 应用商店app福州seo博客
  • 网站整站截图营销渠道分为三种模式
  • cms做企业网站网络推广外包加手机蛙软件