T分布随机邻居嵌入(t-SNE)是一种非线性降维技术, 非常适合在二维或三维的低维空间中嵌入高维数据以进行可视化。
什么是降维?
降维是一种表示2维或3维n维数据(具有许多特征的多维数据)的技术。
降维的一个例子可以作为分类问题来讨论, 即学生是否会踢足球, 因为温度和湿度都取决于一个特征, 因为这两个特征都高度相关。因此, 我们可以减少此类问题中的特征数量。 3-D分类问题可能很难可视化, 而2-D分类问题可以映射到简单的二维空间, 而1-D问题可以映射到简单的线。
t-SNE如何工作?
【ML(T分布随机邻居嵌入(t-SNE)算法)】t-SNE是一种非线性降维算法, 它基于具有特征的数据点的相似性来查找数据中的模式, 将点的相似性计算为点A选择点B作为其邻居的条件概率。
然后, 它试图最小化高维和低维空间中这些条件概率(或相似性)之间的差异, 以实现低维空间中数据点的完美表示。
时空复杂性
该算法计算成对的条件概率, 并尝试最小化在较高和较低维度上的概率差异之和。这涉及许多计算和计算。因此, 该算法需要大量时间和空间来计算。 t-SNE在数据点数量上具有二次时间和空间复杂度。
在MNIST数据集上应用t-SNE
# 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
代码1:读取数据
# 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 )
输出如下:
文章图片
代码2:
数据预处理
# Data-preprocessing: Standardizing the data
from sklearn.preprocessing import StandardScalerstandardized_data = https://www.lsbin.com/StandardScaler().fit_transform(data)print (standardized_data.shape)
输出如下:
文章图片
代码3:
# 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 parameteres
# the number of components = 2
# default perplexity = 30
# default learning rate = 200
# default Maximum number of iterations
# for the optimization = 1000tsne_data = https://www.lsbin.com/model.fit_transform(data_1000)# creating a new data frame which
# help us in ploting 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" ))# Ploting the result of tsne
sn.FacetGrid(tsne_df, hue = "label" , size = 6 ). map (
plt.scatter, 'Dim_1' , 'Dim_2' ).add_legend()plt.show()
输出如下:
文章图片
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- ML使用门控循环单位网络生成文本
- ML机器学习类型–第2部分
- ML机器学习(了解数据处理)
- ML无监督人脸聚类管道项目示例
- ML使用SVM对非线性数据集执行分类
- ML使用Sklearn投票分类器详细指南
- ML为什么要在分类中进行逻辑回归()
- 手机数字键盘问题详细介绍
- 安装系统 一键win重装系统图文详细教程