> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-sdk-testing-latest.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 포인트 집계

> W&B 선형 플롯의 두 가지 포인트 집계 모드인 full fidelity 버킷 샘플링과 랜덤 샘플링을 알아보세요.

데이터 시각화의 정확도와 성능을 높이려면 선형 플롯에서 포인트 집계 방법을 사용하세요. 이 페이지에서는 사용 가능한 두 가지 집계 모드와 각 모드를 구성하는 방법을 설명하므로, 워크스페이스에 맞게 세부 수준과 렌더링 속도 사이에서 적절한 절충안을 선택할 수 있습니다. 포인트 집계 모드에는 [full fidelity](#full-fidelity)와 [랜덤 샘플링](#random-sampling), 두 가지 유형이 있습니다. W\&B는 기본적으로 full fidelity 모드를 사용합니다.

<div id="full-fidelity">
  ## Full fidelity
</div>

Full fidelity는 기본 aggregation 방법이며 데이터의 극값을 보존합니다. 이 섹션에서는 full fidelity의 작동 방식, 주요 장점, 그리고 이를 단일 chart 또는 전체 워크스페이스에 켜는 방법을 설명합니다.

full fidelity 모드를 사용하면 W\&B는 x축을 동적 버킷으로 나눕니다. 각 선의 포인트 수는 chart 크기와 run 수에 따라 조정됩니다. 각 버킷 내의 최솟값과 최댓값을 계산하고(선택 음영에 사용됨), 기본 선을 그릴 때는 각 버킷의 마지막 값(평균이 아님)을 사용합니다.

포인트 aggregation에 full fidelity 모드를 사용할 때의 주요 장점은 세 가지입니다:

* 극값과 스파이크 보존: 데이터의 극값과 스파이크를 유지합니다.
* 최솟값 및 최댓값 포인트의 render 방식 설정: W\&B App을 사용해 극값(min/max)을 음영 영역으로 표시할지 대화형으로 결정할 수 있습니다.
* 데이터 충실도를 유지하면서 데이터 탐색: 특정 데이터 포인트로 확대하면 W\&B가 x축 버킷 크기를 다시 계산합니다. 이를 통해 정확도를 잃지 않고 데이터를 탐색할 수 있습니다. 이전에 계산한 aggregation은 캐싱되어 로드 시간을 줄여 주며, 특히 큰 데이터셋을 탐색할 때 유용합니다.

<div id="turn-on-full-fidelity">
  ### full fidelity 활성화
</div>

W\&B는 기본적으로 full fidelity 모드를 사용합니다. 수동으로 설정하려면 다음 단계를 따르세요.

<Tabs>
  <Tab title="워크스페이스의 모든 차트">
    1. 워크스페이스로 이동합니다.
    2. 화면 오른쪽 상단에서 **Add panels** 버튼 왼쪽에 있는 톱니바퀴 아이콘을 선택합니다.
    3. 표시되는 UI 슬라이더에서 **선형 플롯**을 선택합니다.
    4. **포인트 집계** 섹션에서 **Full fidelity**를 선택합니다.
    5. **스무딩** 알고리즘과 설정을 구성합니다.
    6. **집계**를 **평균**, **최소**, 또는 **최대**로 설정합니다.
    7. **적용**을 클릭합니다.
  </Tab>

  <Tab title="워크스페이스의 개별 차트">
    1. 워크스페이스로 이동합니다.
    2. 왼쪽 탭에서 **Workspace** 아이콘을 선택합니다.
    3. 설정하려는 선형 플롯 패널 위에 마우스를 올린 다음 톱니바퀴 아이콘을 클릭합니다.
    4. 표시되는 모달에서 **포인트 집계 방법**을 **Full fidelity**로 설정합니다.
    5. **스무딩** 알고리즘과 설정을 구성합니다.
    6. **적용**을 클릭합니다.
  </Tab>
</Tabs>

<div id="configure-shading">
  ### 음영 설정
</div>

음영은 각 버킷 내의 변동성을 시각화하여 점들이 선 주위에 얼마나 퍼져 있는지 보여줍니다.

full fidelity 선형 플롯의 음영 영역에는 다음을 표시할 수 있습니다.

* **최소/최대**: 각 X축 지점에서 최솟값과 최댓값 사이 영역에 음영을 표시합니다. 음영 영역은 각 버킷에서 가장 낮은 값부터 가장 높은 값까지의 모든 지점을 보여줍니다.
  ```math theme={null}
  \text{Min/Max Range} = [\min(x_1, x_2, \ldots, x_n),\ \max(x_1, x_2, \ldots, x_n)]
  ```
  여기서 $x&#95;1, x&#95;2, \ldots, x&#95;n$는 주어진 버킷의 값입니다.

* **표준편차**: 각 X축 지점에서 표준편차를 사용해 값의 변동성을 계산하고, 그 결과 영역에 음영을 표시합니다.
  ```math theme={null}
  SD = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(x_i - \overline{x})^2}
  ```

* **표준오차**: 각 X축 지점에서 표준편차를 표본 크기의 제곱근으로 나누어 표본오차의 가능성을 계산합니다.
  ```math theme={null}
  SE = \frac{SD}{\sqrt{n}}
  ```

* **없음**: 음영을 표시하지 않습니다(기본값).

다음 이미지는 파란색 선형 플롯을 보여줍니다. 연한 파란색 음영 영역은 각 버킷의 최솟값과 최댓값을 나타냅니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-sdk-testing-latest/VXcq5xVRfdCSVRpI/images/app_ui/shaded-areas.png?fit=max&auto=format&n=VXcq5xVRfdCSVRpI&q=85&s=b2c4d15762a4f3072d4292b095690668" alt="음영 처리된 신뢰 영역" width="1350" height="626" data-path="images/app_ui/shaded-areas.png" />
</Frame>

음영을 설정하려면 다음과 같이 하세요.

1. 워크스페이스로 이동합니다.
2. 선형 플롯 위에 마우스를 올린 다음 톱니바퀴 아이콘을 클릭합니다.
3. **Data** 탭에서 필요하면 **포인트 집계**를 **Full fidelity**로 설정한 다음, 스무딩 알고리즘을 구성합니다.
4. **Grouping** 탭에서 **Group runs**를 켭니다. 필요에 따라 **Group by**를 run 속성으로 설정합니다.
5. **Agg**를 **평균**(기본값), **최소**, 또는 **최대**로 설정합니다.
6. **Range**를 **최소/최대**, **Std Dev**, **Std Err**, 또는 **None**으로 설정합니다.
7. **적용**을 클릭합니다.

<div id="explore-your-data-without-losing-data-fidelity">
  ### 데이터 충실도를 유지한 채 데이터 탐색하기
</div>

극단값이나 스파이크 같은 중요한 지점을 놓치지 않고 데이터셋의 특정 구간을 분석하세요. 선형 플롯을 확대하면 W\&B는 각 버킷 내 최소값, 최대값, 마지막 값을 계산하는 데 사용되는 버킷 크기를 조정합니다.

<Frame>
  <img src="https://mintcdn.com/wb-21fd5541-sdk-testing-latest/VXcq5xVRfdCSVRpI/images/app_ui/zoom_in.gif?s=7e1ca5d75986c554fe00217bdb35c202" alt="플롯 확대 기능" width="1114" height="820" data-path="images/app_ui/zoom_in.gif" />
</Frame>

W\&B는 동적 비닝을 사용해 x축을 버킷으로 나눕니다. 각 선에 표시되는 포인트 수는 차트 크기와 run 수에 따라 조정됩니다. 차트가 작거나 run 수가 많을수록 차트의 응답성을 유지하고 더 많은 선을 표시할 수 있도록 선당 포인트 수가 줄어들 수 있습니다. 각 버킷에 대해 W\&B는 다음 값을 계산합니다:

* **최소값**: 해당 버킷의 가장 낮은 값입니다(음영 처리에 사용).
* **최대값**: 해당 버킷의 가장 높은 값입니다(음영 처리에 사용).
* **선 값**: 해당 버킷의 마지막 값으로, 선을 그리는 데 사용됩니다.

W\&B는 전체 데이터 표현을 유지하고 모든 플롯에 극단값이 포함되도록 버킷 단위로 값을 플로팅합니다. 선은 각 버킷의 마지막 값을 기준으로 그려집니다. 충분히 확대하면 full fidelity 모드에서 추가 집계 없이 모든 데이터 포인트를 렌더링할 수 있습니다. 정확한 임곗값은 현재 차트 크기와 run 수에 따라 달라집니다.

선형 플롯을 확대하려면 다음 단계를 따르세요:

1. W\&B 프로젝트로 이동합니다.
2. 왼쪽 탭에서 **Workspace** 아이콘을 선택합니다.
3. 선택 사항: 워크스페이스에 선형 플롯 패널을 추가하거나 기존 선형 플롯 패널로 이동합니다.
4. 클릭한 상태로 드래그하여 확대할 특정 영역을 선택합니다.

<Note>
  **선형 플롯 그룹화 및 표현식**

  Line Plot Grouping을 사용하면 W\&B는 선택한 모드에 따라 다음을 적용합니다:

  * **비윈도우 샘플링(그룹화)**: x축에서 run 간 포인트를 정렬합니다. 여러 포인트가 동일한 x값을 공유하면 평균을 계산하고, 그렇지 않으면 개별 포인트로 표시됩니다.
  * **윈도우 샘플링(그룹화 및 표현식)**: x축을 250개 버킷 또는 가장 긴 선의 포인트 수 중 더 작은 값 기준으로 나눕니다. W\&B는 각 버킷 내 포인트의 평균을 계산합니다.
  * **Full fidelity(그룹화 및 표현식)**: 비윈도우 샘플링과 유사하지만, 성능과 세부 표현의 균형을 위해 run당 최대 500개 포인트를 가져옵니다.
</Note>

<div id="random-sampling">
  ## 랜덤 샘플링
</div>

랜덤 샘플링은 데이터 충실도보다 렌더링 속도를 우선하는 대체 집계 방법입니다. 차트를 더 빠르게 표시해야 하고 모든 극단값을 유지할 필요가 없을 때 사용하세요.

랜덤 샘플링은 무작위로 추출한 1,500개의 포인트를 사용해 선형 플롯을 렌더링합니다. 샘플링 과정에서 일부 포인트가 제외되므로 이상치나 급격한 스파이크를 발견하기가 더 어려워집니다.

<Warning>
  랜덤 샘플링은 비결정적으로 수행됩니다. 따라서 데이터의 이상치나 스파이크가 제외되는 경우가 있으며, 그 결과 데이터 정확도가 낮아질 수 있습니다.
</Warning>

<div id="enable-random-sampling">
  ### 랜덤 샘플링 활성화
</div>

기본적으로 W\&B는 full fidelity 모드를 사용합니다. 랜덤 샘플링을 활성화하려면 다음 단계를 따르세요.

<Tabs>
  <Tab title="워크스페이스의 모든 차트">
    1. W\&B 프로젝트로 이동합니다.
    2. 왼쪽 탭에서 **Workspace** 아이콘을 선택합니다.
    3. 화면 오른쪽 상단의 **Add panels** 버튼 왼쪽에 있는 톱니바퀴 아이콘을 선택합니다.
    4. 나타나는 UI 슬라이더에서 **선형 플롯**을 선택합니다.
    5. **포인트 집계** 섹션에서 **랜덤 샘플링**을 선택합니다.
  </Tab>

  <Tab title="워크스페이스의 개별 차트">
    1. W\&B 프로젝트로 이동합니다.
    2. 왼쪽 탭에서 **Workspace** 아이콘을 선택합니다.
    3. 랜덤 샘플링을 활성화할 선형 플롯 패널을 선택합니다.
    4. 나타나는 모달에서 **포인트 집계 방법** 섹션의 **랜덤 샘플링**을 선택합니다.
  </Tab>
</Tabs>

<div id="access-non-sampled-data">
  ### 샘플링되지 않은 데이터에 액세스
</div>

랜덤 샘플링으로 필요한 포인트가 누락되더라도, 프로그래밍 방식으로 샘플링되지 않은 전체 메트릭 이력에 계속 액세스할 수 있습니다. [W\&B Run API](/ko/models/ref/python/public-api/runs)를 사용하면 run 동안 로깅된 메트릭의 전체 이력에 액세스할 수 있습니다. 다음 예제에서는 특정 run의 loss 값을 조회하고 처리하는 방법을 보여줍니다.

```python theme={null}
# W&B API 초기화
run = api.run("l2k2/examples-numpy-boston/i0wt6xua")

# 'Loss' 메트릭의 이력 조회
history = run.scan_history(keys=["Loss"])

# 이력에서 loss 값 추출
losses = [row["Loss"] for row in history]
```
