Explication détaillée du principe de l'algorithme t-SNE et de l'implémentation du code Python

WBOY
Libérer: 2024-01-22 23:48:05
avant
1492 Les gens l'ont consulté

Explication détaillée du principe de lalgorithme t-SNE et de limplémentation du code Python

L'intégration de voisins stochastiques distribués en T (t-SNE) est un algorithme d'apprentissage automatique non supervisé pour la visualisation qui utilise la technologie de réduction de dimensionnalité non linéaire pour tenter de minimiser la somme de grande dimension en fonction de la similarité des points de données et des caractéristiques. entre ces probabilités conditionnelles (ou similitudes) dans un espace de faible dimension pour représenter parfaitement les points de données dans un espace de faible dimension.

Par conséquent, le t-SNE est efficace pour intégrer des données de haute dimension dans un espace de basse dimension en deux ou trois dimensions à des fins de visualisation. Il convient de noter que t-SNE utilise une distribution à queue lourde pour calculer la similarité entre deux points dans un espace de faible dimension au lieu d'une distribution gaussienne, ce qui aide à résoudre les problèmes d'encombrement et d'optimisation. Et les valeurs aberrantes n’affectent pas le t-SNE.

Étapes de l'algorithme t-SNE

1. Trouvez la similitude par paire entre des points adjacents dans un espace de grande dimension.

2. Sur la base de la similarité par paire des points dans l'espace de grande dimension, mappez chaque point de l'espace de grande dimension sur une carte de basse dimension.

3. Utilisez la descente de gradient basée sur la divergence Kullback-Leibler (divergence KL) pour trouver une représentation de données de faible dimension qui minimise l'inadéquation entre les distributions de probabilité conditionnelles.

4. Utilisez la distribution Student-t pour calculer la similarité entre deux points dans un espace de faible dimension.

Code Python pour implémenter t-SNE sur l'ensemble de données MNIST

Module d'importation

# 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
Copier après la connexion

Lire les données

# 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)
Copier après la connexion

Prétraitement des données

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

standardized_data = StandardScaler().fit_transform(data)
print(standardized_data.shape)
Copier après la connexion

Sortie

# 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()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:163.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!