t-SNE에는 복잡도(perplexity) 및 학습률(엡실론(epsilon))과 같은 하이퍼파라미터가 있지만 이 예제에서는 생략했습니다(즉, 사이킷런 기본값을 사용했습니다). 실제로는 이런 매개변수도 살펴보는 것이 좋습니다. 이런 매개변수와 결과에 미치는 영향에 대한 자세한 내용을 Distill에 있는 훌륭한 글15에서 확인할 수 있습니다.

    마지막으로 다음 코드를 사용하여 2D t-SNE 임베딩을 시각화해 보겠습니다.

    >>> import matplotlib.patheffects as PathEffects
    >>> def plot_projection(x, colors):
    ...     f = plt.figure(figsize=(8, 8))
    ...     ax = plt.subplot(aspect='equal')
    ...     for i in range(10):
    ...         plt.scatter(x[colors==i, 0],
    ...                     x[colors==i, 1])
    ...     for i in range(10):
    ...         xtext, ytext = np.median(x[colors==i, :], axis=0)
    ...         txt = ax.text(xtext, ytext, str(i), fontsize=24)
    ...         txt.set_path_effects([
    ...             PathEffects.Stroke(linewidth=5, foreground="w"),
    ...             PathEffects.Normal()])
    >>> plot_projection(X_digits_tsne, y_digits)
    >>> plt.show()
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.