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

ps做网站编排行距网站

ps做网站编排,行距网站,wordpress 评论 插件,公众号开发答题活动大侠幸会#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸#xff0c;多个算法赛 Top 「日更万日#xff0c;让更多人享受智能乐趣」 t-SNE#xff08;t-Distributed Stochastic Neighbor Embedding#xff09;是一种用于降维和数据可视化的非线性算法。它被广泛应用于… 大侠幸会在下全网同名「算法金」 0 基础转 AI 上岸多个算法赛 Top 「日更万日让更多人享受智能乐趣」 t-SNEt-Distributed Stochastic Neighbor Embedding是一种用于降维和数据可视化的非线性算法。它被广泛应用于图像处理、文本挖掘和生物信息学等领域特别擅长处理高维数据。 本文旨在详细介绍 t-SNE 算法的基本概念、数学基础、算法步骤、代码示范及其在不同领域的应用案例。我们还将探讨 t-SNE 的常见误区和注意事项并与其他降维算法进行对比以帮助铁子们更好地理解和应用 t-SNE 算法。 by datacamp t-SNE 的基本概念 1.1 什么是 t-SNE t-SNE 是一种非线性降维技术用于将高维数据映射到低维空间以便进行可视化。它通过保持高维空间中数据点之间的局部相似性来生成低维空间的表示。这种方法特别适用于揭示复杂数据集中的模式和结构 1.2 t-SNE 的核心思想 t-SNE 的核心思想是通过两步过程实现高维到低维的映射。首先t-SNE 在高维空间中使用高斯分布来计算数据点之间的条件概率。然后在低维空间中t-SNE 使用 t 分布来计算相似度并通过最小化两个分布之间的 Kullback-Leibler 散度KL 散度来优化数据点的位置。这个过程可以通过梯度下降法进行优化从而得到低维空间中的表示。 2. t-SNE 的数学基础 对看公司很痛苦的同学可直接跳过公式 2.1 高斯分布与条件概率 在 t-SNE 算法中首先需要在高维空间中计算数据点之间的相似度。为此我们使用高斯分布来表示这种相似度。 2.2 Kullback-Leibler 散度 在低维空间中t-SNE 使用 t 分布来计算数据点之间的相似度。与高维空间中的条件概率类 2.3 梯度下降法 为了最小化 KL 散度t-SNE 使用梯度下降法来优化低维空间中数据点的位置。梯度下降法是一种迭代优化算法每次迭代更新数据点的位置使 KL 散度逐渐减小。具体来说t-SNE 计算 KL 散度对每个数据点位置的梯度并按照负梯度的方向更新数据点的位置 3. t-SNE 的算法步骤 3.1 高维空间中的相似度计算 在 t-SNE 算法中首先需要计算高维空间中数据点之间的相似度。具体步骤如下 对于每个数据点 (x_i)计算其与其他数据点 (x_j) 的欧氏距离 (|x_i - x_j|)使用高斯分布计算条件概率 (p_{j|i})即在给定 (x_i) 的情况下选择 (x_j) 作为邻居的概率 计算联合概率 (p_{ij}) 3.2 低维空间中的相似度计算 在低维空间中t-SNE 使用 t 分布来计算数据点之间的相似度。具体步骤如下 对于每个低维数据点 (y_i)计算其与其他数据点 (y_j) 的欧氏距离 (|y_i - y_j|)使用 t 分布计算相似度 (q_{ij}) 3.3 损失函数的优化 t-SNE 通过最小化高维空间和低维空间之间的相似度分布的 Kullback-Leibler 散度来优化低维空间中数据点的位置。具体步骤如下 计算 KL 散度 计算 KL 散度对每个低维数据点位置的梯度 使用梯度下降法更新低维数据点的位置 通过上述步骤迭代优化t-SNE 最终可以得到一个低维空间中的表示使得高维数据的局部相似性在低维空间中得以保留 4. t-SNE 的代码示范 在这部分我们将生成一个带有武侠风格的数据集包含三个门派的武侠人物。数据集的特征包括武力值、智力值和身法值。我们将使用 t-SNE 进行降维并展示其可视化效果。接下来我们会调整 t-SNE 的参数以观察其对降维结果的影响。 4.1 数据集生成与基本实现 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.manifold import TSNE from sklearn.datasets import load_iris# 生成武侠人物数据集 np.random.seed(42) num_samples_per_class 50 data {武力值: np.hstack([np.random.normal(loc5, scale1, sizenum_samples_per_class),np.random.normal(loc7, scale1, sizenum_samples_per_class),np.random.normal(loc9, scale1, sizenum_samples_per_class)]),智力值: np.hstack([np.random.normal(loc3, scale1, sizenum_samples_per_class),np.random.normal(loc5, scale1, sizenum_samples_per_class),np.random.normal(loc7, scale1, sizenum_samples_per_class)]),身法值: np.hstack([np.random.normal(loc1, scale1, sizenum_samples_per_class),np.random.normal(loc2, scale1, sizenum_samples_per_class),np.random.normal(loc3, scale1, sizenum_samples_per_class)]),门派: np.hstack([np.full(num_samples_per_class, 少林),np.full(num_samples_per_class, 武当),np.full(num_samples_per_class, 峨眉)]) } df pd.DataFrame(data)# 将类别标签转换为数字 df[门派] df[门派].astype(category).cat.codes# 打印前几行数据 print(df.head())# t-SNE 降维 X df[[武力值, 智力值, 身法值]] y df[门派] tsne TSNE(n_components2, random_state42) X_tsne tsne.fit_transform(X)# 可视化 t-SNE 结果 plt.figure(figsize(10, 7)) scatter plt.scatter(X_tsne[:, 0], X_tsne[:, 1], cy, cmapviridis) plt.colorbar(scatter, ticks[0, 1, 2], label门派) plt.clim(-0.5, 2.5) plt.title(t-SNE 结果可视化) plt.xlabel(t-SNE 维度 1) plt.ylabel(t-SNE 维度 2) plt.show()解释与结果解读 在基本实现中我们生成了一个包含武侠人物特征和门派标签的数据集。数据集中的武侠人物分别来自少林、武当和峨眉三个门派。我们使用 t-SNE 将数据降维到二维并可视化其结果。不同颜色表示不同的门派从图中可以看到同一门派的武侠人物在降维后的二维空间中聚集在一起而不同门派的武侠人物则分布在不同的区域。 4.2 参数调优 接下来我们调整 t-SNE 的两个关键参数perplexity 和 learning_rate并观察它们对降维结果的影响。 # 调整 perplexity 参数 tsne_perplexity TSNE(n_components2, perplexity30, random_state42) X_tsne_perplexity tsne_perplexity.fit_transform(X)plt.figure(figsize(10, 7)) scatter_perplexity plt.scatter(X_tsne_perplexity[:, 0], X_tsne_perplexity[:, 1], cy, cmapviridis) plt.colorbar(scatter_perplexity, ticks[0, 1, 2], label门派) plt.clim(-0.5, 2.5) plt.title(t-SNE 结果 (perplexity30)) plt.xlabel(t-SNE 维度 1) plt.ylabel(t-SNE 维度 2) plt.show()# 调整 learning_rate 参数 tsne_learning_rate TSNE(n_components2, learning_rate200, random_state42) X_tsne_learning_rate tsne_learning_rate.fit_transform(X)plt.figure(figsize(10, 7)) scatter_learning_rate plt.scatter(X_tsne_learning_rate[:, 0], X_tsne_learning_rate[:, 1], cy, cmapviridis) plt.colorbar(scatter_learning_rate, ticks[0, 1, 2], label门派) plt.clim(-0.5, 2.5) plt.title(t-SNE 结果 (learning_rate200)) plt.xlabel(t-SNE 维度 1) plt.ylabel(t-SNE 维度 2) plt.show()解释与结果解读 调整 perplexity 参数 将 perplexity 设置为 30 后我们再次对数据进行 t-SNE 降维。结果显示调整 perplexity 会影响数据点在二维空间中的分布。perplexity 参数决定了 t-SNE 在计算高维空间中数据点的相似度时考虑的邻居数量。适当调整 perplexity 可以更好地平衡局部和全局数据结构。调整 learning_rate 参数将 learning_rate 设置为 200 后我们再次对数据进行 t-SNE 降维。结果显示调整 learning_rate 会影响降维结果的收敛速度和最终效果。learning_rate 参数决定了梯度下降的步长合适的 learning_rate 可以加速收敛并避免陷入局部最优解。 通过这些示例和详细解释可以更好地理解 t-SNE 算法及其在实际数据集中的应用效果。希望这能帮助你更好地掌握 t-SNE 的使用方法和参数调优技巧。 每天一个简洁明了的小案例如果你对这类文章感兴趣 欢迎订阅、点赞和分享哦~ 5. t-SNE 的应用案例 5.1 图像数据降维 t-SNE 在图像数据降维中非常有效。以下示例展示了如何将 t-SNE 应用于图像数据降维和可视化。我们将使用手写数字数据集MNIST进行演示。 import numpy as np import pandas as pd from sklearn.manifold import TSNE from sklearn.datasets import fetch_openml from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA import matplotlib.pyplot as plt# 加载 MNIST 数据集 mnist fetch_openml(mnist_784, version1) X mnist.data / 255.0 # 将数据归一化到 [0, 1] 区间 y mnist.target# 随机选择 10000 个数据点 np.random.seed(42) indices np.random.choice(X.shape[0], 10000, replaceFalse) X_subset X.iloc[indices] y_subset y.iloc[indices]# 标准化数据 scaler StandardScaler() X_scaled scaler.fit_transform(X_subset)# 应用 t-SNE 进行降维 tsne TSNE(n_components2, perplexity30, n_iter1000, random_state42) X_tsne tsne.fit_transform(X_scaled)# t-SNE 可视化结果 plt.figure(figsize(12, 8)) scatter_tsne plt.scatter(X_tsne[:, 0], X_tsne[:, 1], cy_subset.astype(int), cmaptab10, s1) plt.legend(*scatter_tsne.legend_elements(), titleDigits) plt.title(MNIST 数据集的 t-SNE 可视化) plt.xlabel(t-SNE 维度 1) plt.ylabel(t-SNE 维度 2) plt.show()5.2 文本数据降维 t-SNE 也广泛应用于文本数据降维。以下示例展示了如何将 t-SNE 应用于文本数据降维和可视化。我们将使用新闻组数据集进行演示。 5.3 生物信息学中的应用 在生物信息学中t-SNE 常用于基因表达数据的降维和可视化。以下示例展示了如何将 t-SNE 应用于单细胞 RNA 序列数据的降维和可视化。 6. t-SNE 的误区和注意事项 6.1 t-SNE 不适合大数据集 t-SNE 的计算复杂度较高对于大规模数据集计算时间和内存消耗都非常大。因此t-SNE 不适合直接应用于大数据集。在处理大数据集时可以考虑以下几种方法 先使用其他降维方法如 PCA进行预处理将数据维度降低到较小的范围然后再应用 t-SNE选择一部分代表性数据点进行 t-SNE 降维而不是对整个数据集进行降维使用基于树的近似算法如 Barnes-Hut t-SNE来加速计算 6.2 参数选择的影响 t-SNE 的降维效果对参数的选择非常敏感。两个关键参数是 perplexity 和 learning_rate。perplexity 参数控制每个数据点的有效邻居数量一般设置在 5 到 50 之间learning_rate 参数控制梯度下降的步长通常设置在 10 到 1000 之间。以下是一些经验性的参数选择建议 对于较小的数据集可以选择较小的 perplexity 和较大的 learning_rate对于较大的数据集可以选择较大的 perplexity 和较小的 learning_rate通过实验和可视化结果调整参数以获得最佳的降维效果 6.3 结果的解释与可视化误导 t-SNE 的可视化结果虽然直观但有时会产生误导。需要注意以下几点 t-SNE 只保留局部相似性低维空间中距离较远的数据点在高维空间中不一定距离较远因此低维空间中的距离不能直接解释为高维空间中的距离t-SNE 的随机性较强不同的运行可能产生不同的结果可以通过设置随机种子来获得可重复的结果可视化结果中的簇并不总是表示真实的分类需要结合其他信息进行综合分析 7. t-SNE 与其他降维算法的对照 7.1 与 PCA 的对照 PCA主成分分析和 t-SNE 是两种常用的降维算法但它们的原理和应用场景有所不同 基本原理PCA 是一种线性降维方法通过找到数据最大方差的方向主成分将高维数据投影到低维空间。t-SNE 是一种非线性降维方法通过最小化高维空间和低维空间之间的概率分布差异将高维数据嵌入到低维空间应用场景PCA 适用于数据维度较低且线性关系较强的情况如数据预处理和特征选择。t-SNE 适用于高维数据和非线性关系较强的情况如数据可视化和模式识别计算复杂度PCA 计算复杂度较低适合大规模数据集。t-SNE 计算复杂度较高不适合大规模数据集 7.2 与 LLE 的对照 LLE局部线性嵌入和 t-SNE 都是非线性降维方法但它们的实现方式不同 基本原理LLE 通过保持数据局部邻居关系将高维数据嵌入到低维空间。t-SNE 通过最小化高维空间和低维空间之间的概率分布差异将高维数据嵌入到低维空间应用场景LLE 适用于数据维度较低且局部线性关系较强的情况如图像数据和时间序列数据。t-SNE 适用于高维数据和非线性关系较强的情况如文本数据和生物信息学数据计算复杂度LLE 的计算复杂度中等适用于中等规模的数据集。t-SNE 的计算复杂度较高不适合大规模数据集 7.3 不同算法的优劣势 每种降维算法都有其优劣势选择合适的算法取决于具体的数据集和任务需求 PCA优点是计算速度快结果容易解释适用于线性关系较强的数据集。缺点是无法处理非线性关系t-SNE优点是能够揭示数据的非线性结构适用于高维数据和复杂模式识别。缺点是计算复杂度高参数选择敏感不适合大规模数据集LLE优点是能够保持数据的局部邻居关系适用于局部线性关系较强的数据集。缺点是对数据噪声敏感计算复杂度中等 通过以上对比可以更好地理解不同降维算法的适用场景和特点从而选择最适合具体任务的算法 8. 相关与相对的概念引出与对比 8.1 降维与聚类 降维和聚类是数据分析中的两种不同但相关的方法 降维降维是将高维数据映射到低维空间以便进行可视化或简化分析。降维方法包括 PCA、t-SNE、LLE 等。降维的目的是减少特征数量同时尽量保留原始数据的结构信息聚类聚类是将数据分为若干组使得同组数据点之间的相似度尽可能高而不同组之间的相似度尽可能低。常用的聚类方法包括 K-means、层次聚类、DBSCAN 等。聚类的目的是发现数据中的自然分组或模式 虽然降维和聚类有不同的目标但它们可以结合使用。例如降维可以用于将高维数据投影到低维空间从而便于进行聚类分析 8.2 t-SNE 与 UMAP UMAPUniform Manifold Approximation and Projection是另一种非线性降维方法常用于与 t-SNE 进行比较 基本原理t-SNE 通过最小化高维空间和低维空间之间的概率分布差异将高维数据嵌入到低维空间。UMAP 通过构建高维空间的邻接图然后通过优化图嵌入将数据投影到低维空间应用场景t-SNE 适用于高维数据和复杂模式识别特别是在可视化方面效果显著。UMAP 在保持全局和局部结构方面表现更好计算速度更快适合处理大规模数据集计算复杂度t-SNE 计算复杂度较高不适合大规模数据集。UMAP 计算复杂度较低更适合大规模数据集 8.3 t-SNE 与 MDS MDS多维尺度分析和 t-SNE 都是用于降维和数据可视化的算法 基本原理MDS 通过保留高维空间中数据点之间的距离将数据嵌入到低维空间。t-SNE 通过最小化高维空间和低维空间之间的概率分布差异将数据嵌入到低维空间应用场景MDS 适用于数据点之间距离信息较为可靠的情况如心理学和市场研究中的数据分析。t-SNE 适用于高维数据和复杂模式识别如图像和文本数据计算复杂度MDS 计算复杂度中等适用于中等规模的数据集。t-SNE 计算复杂度较高不适合大规模数据集 [ 抱个拳总个结 ] t-SNE 的核心概念t-SNE 是一种非线性降维方法通过保持高维空间中数据点之间的局部相似性将高维数据嵌入到低维空间以便进行可视化和模式识别应用场景t-SNE 广泛应用于图像处理、文本挖掘和生物信息学等领域特别适用于高维和非线性数据的可视化数学基础t-SNE 通过计算高维空间中的条件概率和低维空间中的相似度并最小化两个分布之间的 Kullback-Leibler 散度来优化低维表示算法步骤t-SNE 包括高维空间中的相似度计算、低维空间中的相似度计算以及通过梯度下降法优化损失函数的步骤代码实现使用 Python 和 scikit-learn 库可以实现 t-SNE 算法并结合不同的参数调优和可视化效果进行展示应用案例t-SNE 在图像数据、文本数据和生物信息学中的应用展示了其强大的降维和可视化能力误区和注意事项t-SNE 不适合大规模数据集参数选择对结果影响较大低维空间中的距离解释需要谨慎与其他降维算法的对照t-SNE 与 PCA、LLE、UMAP 和 MDS 等降维算法在原理、应用场景和计算复杂度上各有不同可以根据具体任务选择合适的算法相关与相对的概念降维和聚类可以结合使用t-SNE 与 UMAP 和 MDS 等方法在保留数据结构和计算效率上有不同的优劣势 通过以上的详细介绍希望大侠对 t-SNE 算法有了更深入的理解和认识。在实际应用中结合数据特点和任务需求选择合适的降维方法才能发挥数据分析和可视化的最大效用。 - 科研为国分忧创新与民造福 - 日更时间紧任务急难免有疏漏之处还请大侠海涵 内容仅供学习交流之用部分素材来自网络侵联删 [ 算法金碎碎念 ] 全网同名日更万日让更多人享受智能乐趣 如果觉得内容有价值烦请大侠多多 分享、在看、点赞助力算法金又猛又持久、很黄很 BL 的日更下去 同时邀请大侠 关注、星标 算法金围观日更万日助你功力大增、笑傲江湖
http://www.yayakq.cn/news/5354/

相关文章:

  • 设置个网站要多少钱七牛 wordpress 图床
  • 网站怎么建设模块centos 安装 wordpress
  • asp 网站开发 软件兰州做网站或小程序
  • 企业网站建站意义网站建设设计说明书
  • 云虚拟主机和网站建设网页素材图
  • 肇庆网站开发公司产品服务展示型网站有哪些
  • 高级网站开发工程师证书在社保网站做调动
  • wordpress删除管理站点链接专业团队广告语
  • 企业网站的维护wap浏览器在线
  • 网站新年特效什么叫营销模式
  • 购物商城网站开发实验报告网站建设合同封面模板
  • 红番茄 网站点评宣传片拍摄制作公司报价明细
  • 不同域名一样的网站网站的动态图怎么做的
  • 网站建设方案范文2000字小程序需要租服务器吗
  • 做超市海报的网站广西建设工会网站
  • 网站开发培训教程html5手机网页模板
  • 毕节网站建设网站设计专业有前途吗
  • 网文网站排名大同市住房城乡建设网站
  • 网站建设运营服务商网站seo优化检测
  • 宝塔做的网站网页打不开怎么提升网站排名
  • 网站被k后换域名 做301之外_之前发的外链怎么办做电力项目信息的网站
  • 徐州网站建设 网站推广北京做网站找哪家好
  • 网站页面关键词优化如何做线下推广
  • 个人公司网站怎么做旅游网站模板下载
  • 网站策划书撰写迅速提高网站排名
  • 优度网站建设wordpress自适应 分页
  • 网站建设需要怎样的经营范围网站网络营销方式
  • 网站免费正能量直接进入浏览器下载安装能源网站模板
  • 海南网站建设推广公司石家庄最新封闭小区消息
  • 视频网站采集规则泰安市住房和城乡建设局网站