Построение диаграммы рассеяния TSNE для речевых спектрограмм - PullRequest
0 голосов
/ 10 мая 2019

У меня есть спектрограмма речевых сигналов, относящихся к 4 классам. Я хочу построить график рассеяния TSNE, чтобы визуализировать распределение речевых файлов среди четырех классов. Как я могу сделать это с Цне?

1 Ответ

2 голосов
/ 10 мая 2019

Допустим, у вас есть данные спектрограмм в виде массива (n_points, n_dims) и связанных с ними меток.

Здесь я буду генерировать мины:

import matplotlib.pyplot as plt
import numpy as np
from sklearn.manifold import TSNE

n_points = 50
n_classes = 4
n_dims = 150

# Generate data
labels = np.random.randint(n_classes, size=n_points)
X = np.random.normal(size=(n_points, n_dims))
X = (X.transpose() + labels).transpose()

Тогда вы можете просто применить TSNE к вашим данным, чтобы сделать их двумерными и построить их.

# Do TSNE
X_embedded = TSNE(n_components=2).fit_transform(X)

# Plot
names = ['class_1', 'class_2', 'class_3', 'class_4']
for i in range(n_classes):
    X_label = X_embedded[np.where(labels == i)]
    plt.scatter(X_label[:, 0], X_label[:, 1], label=names[i])
plt.legend()

TSNE plot of the clusters

...