搜尋
首頁後端開發Python教學t-SNE演算法的原理與Python程式碼實作詳解

t-SNE演算法的原理與Python程式碼實作詳解

T分佈隨機鄰域嵌入(t-SNE),是一種用於視覺化的無監督機器學習演算法,使用非線性降維技術,根據資料點與特徵的相似性,試圖最小化高維和低維空間中這些條件機率(或相似性)之間的差異,以在低維空間中完美表示資料點。

因此,t-SNE擅長在二維或三維的低維空間中嵌入高維度資料以進行視覺化。需要注意的是,t-SNE使用重尾分佈來計算低維空間中兩點之間的相似度,而不是高斯分佈,這有助於解決擁擠和最佳化問題。而且離群值不影響t-SNE。

t-SNE演算法步驟

1.找出高維度空間中相鄰點之間的配對相似性。

2.根據高維空間中點的配對相似性,將高維空間中的每個點映射到低維映射。

3.使用基於Kullback-Leibler散度(KL散度)的梯度下降找到最小化條件機率分佈之間的不匹配的低維資料表示。

4.使用Student-t分佈計算低維度空間中兩點之間的相似度。

MNIST資料集上實作t-SNE的Python程式碼

#導入模組

# Importing Necessary Modules.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
from sklearn.preprocessing import StandardScaler

讀取資料

# Reading the data using pandas
df = pd.read_csv('mnist_train.csv')

# print first five rows of df
print(df.head(4))

# save the labels into a variable l.
l = df['label']

# Drop the label feature and store the pixel data in d.
d = df.drop("label", axis = 1)

資料預處理

# Data-preprocessing: Standardizing the data
from sklearn.preprocessing import StandardScaler

standardized_data = StandardScaler().fit_transform(data)
print(standardized_data.shape)

輸出

# TSNE
# Picking the top 1000 points as TSNE
# takes a lot of time for 15K points
data_1000 = standardized_data[0:1000, :]
labels_1000 = labels[0:1000]

model = TSNE(n_components = 2, random_state = 0)
# configuring the parameters
# the number of components = 2
# default perplexity = 30
# default learning rate = 200
# default Maximum number of iterations
# for the optimization = 1000

tsne_data = model.fit_transform(data_1000)

# creating a new data frame which
# help us in plotting the result data
tsne_data = np.vstack((tsne_data.T, labels_1000)).T
tsne_df = pd.DataFrame(data = tsne_data,
columns =("Dim_1", "Dim_2", "label"))

# Plotting the result of tsne
sn.FacetGrid(tsne_df, hue ="label", size = 6).map(
plt.scatter, 'Dim_1', 'Dim_2').add_legend()

plt.show()

#

以上是t-SNE演算法的原理與Python程式碼實作詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:网易伏羲。如有侵權,請聯絡admin@php.cn刪除
深入剖析灰狼优化算法(GWO)及其优势与弱点深入剖析灰狼优化算法(GWO)及其优势与弱点Jan 19, 2024 pm 07:48 PM

灰狼优化算法(GWO)是一种基于种群的元启发式算法,模拟自然界中灰狼的领导层级和狩猎机制。灰狼算法灵感1、灰狼被认为是顶级掠食者,处于食物链的顶端。2、灰狼喜欢群居(群居),每个狼群平均有5-12只狼。3、灰狼具有非常严格的社会支配等级,如下图:Alpha狼:Alpha狼在整个灰狼群中占据优势地位,拥有统领整个灰狼群的权利。在算法应用中,Alpha狼是最佳解决方案之一,由优化算法产生的最优解。Beta狼:Beta狼定期向Alpha狼报告,并帮助Alpha狼做出最佳决策。在算法应用中,Beta狼可

解析麻雀搜索算法(SSA)的原理、模型和构成解析麻雀搜索算法(SSA)的原理、模型和构成Jan 19, 2024 pm 10:27 PM

麻雀搜索算法(SSA)是基于麻雀反捕食和觅食行为的元启发式优化算法。麻雀的觅食行为可分为两种主要类型:生产者和拾荒者。生产者主动寻找食物,而拾荒者则争夺生产者的食物。麻雀搜索算法(SSA)原理在麻雀搜索算法(SSA)中,每只麻雀都密切关注着邻居的行为。通过采用不同的觅食策略,个体能够有效地利用保留的能量来追求更多的食物。此外,鸟类在搜索空间中更容易受到捕食者的攻击,因此它们需要寻找更安全的位置。群体中心的鸟类可以通过靠近邻居来最大限度地减少自身的危险范围。当一只鸟发现捕食者时,会发出警报声,以便

探究嵌套采样算法的基本原理和实施流程探究嵌套采样算法的基本原理和实施流程Jan 22, 2024 pm 09:51 PM

嵌套采样算法是一种高效的贝叶斯统计推断算法,用于计算复杂概率分布下的积分或求和。它通过将参数空间分解为多个体积相等的超立方体,并逐步迭代地将其中一个最小体积的超立方体“推出”,然后用随机样本填充该超立方体,以更好地估计概率分布的积分值。通过不断迭代,嵌套采样算法可以得到高精度的积分值和参数空间的边界,从而可应用于模型比较、参数估计和模型选择等统计学问题。该算法的核心思想是将复杂的积分问题转化为一系列简单的积分问题,通过逐步缩小参数空间的体积,逼近真实的积分值。每个迭代步骤都通过随机采样从参数空间

信息增益在id3算法中的作用是什么信息增益在id3算法中的作用是什么Jan 23, 2024 pm 11:27 PM

ID3算法是决策树学习中的基本算法之一。它通过计算每个特征的信息增益来选择最佳的分裂点,以生成一棵决策树。信息增益是ID3算法中的重要概念,用于衡量特征对分类任务的贡献。本文将详细介绍信息增益的概念、计算方法以及在ID3算法中的应用。一、信息熵的概念信息熵是信息论中的概念,衡量随机变量的不确定性。对于离散型随机变量X,其信息熵定义如下:H(X)=-\sum_{i=1}^{n}p(x_i)log_2p(x_i)其中,n代表随机变量X可能的取值个数,而p(x_i)表示随机变量X取值为x_i的概率。信

鲸鱼优化算法 (WOA) 的数值优化原理和分析鲸鱼优化算法 (WOA) 的数值优化原理和分析Jan 19, 2024 pm 07:27 PM

鲸鱼优化算法(WOA)是一种基于自然启发的元启发式优化算法,模拟了座头鲸的狩猎行为,用于数值问题的优化。鲸鱼优化算法(WOA)以一组随机解作为起点,通过每次迭代中搜索代理的位置更新,根据随机选择的搜索代理或迄今为止的最佳解决方案来进行优化。鲸鱼优化算法灵感鲸鱼优化算法的灵感源自座头鲸的狩猎行为。座头鲸喜欢的食物位于海面附近,如磷虾和鱼群。因此,座头鲸在狩猎时通过自下而上螺旋吐泡泡的方式,将食物聚集在一起形成泡泡网。在“向上螺旋”机动中,座头鲸下潜约12m,然后开始在猎物周围形成螺旋形气泡并向上游

尺度转换不变特征(SIFT)算法尺度转换不变特征(SIFT)算法Jan 22, 2024 pm 05:09 PM

尺度不变特征变换(SIFT)算法是一种用于图像处理和计算机视觉领域的特征提取算法。该算法于1999年提出,旨在提高计算机视觉系统中的物体识别和匹配性能。SIFT算法具有鲁棒性和准确性,被广泛应用于图像识别、三维重建、目标检测、视频跟踪等领域。它通过在多个尺度空间中检测关键点,并提取关键点周围的局部特征描述符来实现尺度不变性。SIFT算法的主要步骤包括尺度空间的构建、关键点检测、关键点定位、方向分配和特征描述符生成。通过这些步骤,SIFT算法能够提取出具有鲁棒性和独特性的特征,从而实现对图像的高效

Wu-Manber算法简介及Python实现说明Wu-Manber算法简介及Python实现说明Jan 23, 2024 pm 07:03 PM

Wu-Manber算法是一种字符串匹配算法,用于高效地搜索字符串。它是一种混合算法,结合了Boyer-Moore和Knuth-Morris-Pratt算法的优势,可提供快速准确的模式匹配。Wu-Manber算法步骤1.创建一个哈希表,将模式的每个可能子字符串映射到该子字符串出现的模式位置。2.该哈希表用于快速识别文本中模式的潜在起始位置。3.遍历文本并将每个字符与模式中的相应字符进行比较。4.如果字符匹配,则可以移动到下一个字符并继续比较。5.如果字符不匹配,可以使用哈希表来确定在模式的下一个潜

详解贝尔曼福特算法并用Python实现详解贝尔曼福特算法并用Python实现Jan 22, 2024 pm 07:39 PM

贝尔曼福特算法(BellmanFord)可以找到从目标节点到加权图其他节点的最短路径。这一点和Dijkstra算法很相似,贝尔曼福特算法可以处理负权重的图,从实现来看也相对简单。贝尔曼福特算法原理详解贝尔曼福特算法通过高估从起始顶点到所有其他顶点的路径长度,迭代寻找比高估路径更短的新路径。因为我们要记录每个节点的路径距离,可以将其存储在大小为n的数组中,n也代表了节点的数量。实例图1、选择起始节点,并无限指定给其他所有顶点,记录路径值。2、访问每条边,并进行松弛操作,不断更新最短路径。3、我们需

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器