을 클래스 당 비 제로 항목을 계산하고, 다음 코드 예제의 메커니즘을 이해하기 위해 고군분투 :는 NumPy와
import numpy as np
X = np.array([[0,1,0,1],[1,0,1,1],[0,0,0,1],[1,0,1,0]])
y = np.array([0,1,0,1])
print(X)
print('\n')
print(y)
print('\n')
counts = {}
for label in np.unique(y):
print(label,'\n')
counts[label] = X[y == label].sum(axis=0)
print(counts[label],'\n')
print('Feature counts:\n{}'.format(counts))
을 코드의 출력 :
[[0 1 0 1]
[1 0 1 1]
[0 0 0 1]
[1 0 1 0]]
[0 1 0 1]
0
[0 1 0 2]
1
[2 0 2 1]
Feature counts:
{0: array([0, 1, 0, 2]), 1: array([2, 0, 2, 1])}
나는 각 클래스에 대한 배열 (0과 1) 채워지는 방법을 이해하지 않습니다.
제 생각에 sum (축 = 0)은 행렬의 열을 요약하는 것을 의미합니다. 따라서 "0"레이블 (일명 클래스)의 경우 'X'행렬에서 다음을 계산합니다.
두 번째 열에 0이 2 개, 두 번째 열에 3 개의 제로, 세 번째 열에 2 개의 0, 네 번째 열
코드 출력을 감안할 때 분명히 내 이해가 정확하지 않습니다.
호기심 downvote의 이유를 듣고? –