绘制语音频谱图的 TSNE 散点图
Plotting TSNE scatter plot for speech spectrograms
我有属于 4 类 的语音波形的频谱图。我想绘制 TSNE 散点图以可视化语音文件在四个 类 中的分布。我怎样才能用 tsne 做到这一点?
假设您将频谱图数据作为形状数组 (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()
我有属于 4 类 的语音波形的频谱图。我想绘制 TSNE 散点图以可视化语音文件在四个 类 中的分布。我怎样才能用 tsne 做到这一点?
假设您将频谱图数据作为形状数组 (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()