>

제목이 혼동 될 수 있지만 무엇을 넣어야할지 모르겠습니다. 현재 책에서 RBF-Kernel-PCA에 대해 배우려고하는데 데이터 세트를로드 한 다음 코드와 함께 데이터 세트를 플롯하는 코드에 있습니다.

from scipy.spatial.distance import pdist, squareform 
from scipy import exp 
from scipy.linalg import eigh 
from sklearn.datasets import make_moons 
import matplotlib.pyplot as plt
import numpy as np
X, y = make_moons(n_samples=100, random_state=123)
plt.scatter(X[y==0, 0], X[y==0, 1],
            color='red', marker='^', alpha=0.5) 
plt.scatter(X[y==1, 0], X[y==1, 1],
            color='blue', marker='o', alpha=0.5)
plt.show()

X [y == 0,0] 및 X [y == 0,1]을 사용하는 이유를 이해하지 못합니다. y는 무엇이며 왜 y == 0, 1로 수행 될 수 있습니까? 실제로 0과 1은 무엇입니까? 친절하게 자세하게 설명하거나 지식을 공유하십시오. 나는 아직 초보자이므로 깊은 설명을 이해하지 못할 수도 있습니다. 감사합니다

수정 **

현재 "y"가 데이터 세트의 레이블이라는 것을 알고 있습니다. 그러나 왜 그들이 0,1을 사용하는지 알 수 없습니다. 0은 라벨 0을 의미하지만 1은 어떻습니까?

예,

X[y==0,1] # here label is 0 so what about the 1?
X[y==1,1] # here label is 1 so what about the 1?

  • 답변 # 1

    와이즈 비츠와 비슷해 괄호에 유의하십시오. 특히이 코드는 X[(y==0), 1] 가있는 각 행을 선택합니다. 이며 1은 열 (두 번째 열)입니다. 쉼표는 y==0 의 축을 분리합니다  정렬. 예를 들어,이 배열들을 X 로하자  그리고 X :

    y
    
    

    이제 In [100]: X = np.array([[5, 4], [3, 2], [1, 0]]) In [101]: X Out[101]: array([[5, 4], [3, 2], [1, 0]]) In [102]: y = np.array([1, 0, 0])   y==0 와 같은 크기의 부울 배열을 제공합니다. 그러나 y 와 함께  또는 True  각각 값이 0 인 경우 :

    False
    
    

    이 부울 배열을 사용하여 부울 색인을 통해 행을 선택할 수 있습니다 :

    In [103]: y == 0
    Out[103]: array([False,  True,  True])
    
    

    In [104]: X[y == 0] Out[104]: array([[3, 2], [1, 0]]) 의 인덱스 인 두 번째와 세 번째 행을 선택했습니다.  0과 같았습니다. 이 열 중 하나만 원하면 다른 인덱스를 추가하면됩니다.

    y
    
    

    여기서이 인덱싱 작업에 대한 자세한 설명은 " In [105]: X[y == 0, 1] Out[105]: array([2, 0]) 인 인덱스에 따라 행을 선택하십시오.  0으로 설정하고 두 번째 열을 선택하십시오. "

    y

관련 자료

  • 이전 android - 플러터 블루 설정 알림
  • 다음 사용자 정의 손실 기능 Keras Tensorflow