제59회 · LLM과 함께 배우는 생각그림

바이올린 그림의 폭은 분포의 밀도를 어떻게 추정할까?

바이올린의 넓은 부분을 관측 수로 단정하지 않고, 밀도 추정 설정과 실제 점을 함께 확인합니다.

같은 중앙값 뒤에 숨은 두 봉우리를 펼친다

두 모델의 응답 시간 중앙값과 IQR이 비슷하지만 모델 B에는 빠른 요청군과 느린 요청군이 따로 있을 수 있다. 상자그림만으로는 이 두 봉우리가 숨는다. 바이올린 그림은 값 축을 따라 커널 밀도 추정 곡선을 그리고 좌우로 대칭 복제한다. 폭이 넓은 위치는 그 근처에 상대적으로 값이 많이 모였다고 추정한 곳이다.

Hintze와 Nelson은 1998년 상자그림의 요약 통계와 밀도 추정의 정보를 결합한 형태로 바이올린 그림을 제안했다. 폭은 실제 막대 개수도 확률 그 자체도 아니며 선택한 커널·대역폭·평가 범위·정규화에 따라 달라진다. 중앙값과 IQR 또는 개별 점을 안쪽에 함께 보여 주면 요약과 모양을 대조할 수 있다.

생각그림 1 · 밀도 폭과 중앙값·IQR을 함께 읽는 바이올린도표를 좌우로 움직여 전체 내용을 확인하세요.
밀도 폭(좌우 대칭)응답 시간(ms)폭은 관측 수가 아니라추정한 밀도입니다.
좌우 폭은 대칭으로 그린 교육용 밀도 추정입니다. 중앙의 점과 선은 중앙값과 IQR을 따로 표시합니다.

대역폭은 곡선을 얼마나 매끈하게 할지 정한다

커널 밀도 추정은 각 관측 주변에 작은 봉우리를 놓고 합친다. 대역폭이 좁으면 개별 관측의 흔들림까지 봉우리로 보일 수 있고, 넓으면 실제 두 무리를 하나로 합칠 수 있다. seaborn 공식 문서의 bw_method와 bw_adjust처럼 소프트웨어는 기준 대역폭과 조정 배수를 제공한다. 기본값을 썼다면 그 사실도 설정이다.

“봉우리가 두 개이므로 두 사용자 집단이 있다”라고 바로 결론내리지 않는다. 여러 대역폭, 히스토그램, 원자료 점에서 구조가 유지되는지 확인하고, 캐시·입력 길이·지역 같은 메타데이터로 가설을 시험한다. 밀도 모양은 표본에 대한 추정이며 숨은 원인을 자동으로 찾아내지 않는다.

생각그림 2 · 좁은·중간·넓은 대역폭의 영향도표를 좌우로 움직여 전체 내용을 확인하세요.
좁은 대역폭넓은 대역폭
같은 값도 대역폭에 따라 봉우리 수와 굴곡이 달라집니다. 설정 변화에도 남는 특징을 중심으로 읽습니다.

곡선이 관측 범위 밖으로 뻗을 수 있다

커널은 관측값 주변으로 퍼지므로 밀도 곡선이 실제 최소·최대보다 바깥까지 이어질 수 있다. 응답 시간이 0보다 작을 수 없는데 바이올린이 음수 영역으로 내려가면 독자가 불가능한 값을 관측한 것으로 오해한다. seaborn의 cut 같은 설정은 대역폭 몇 배까지 극단값 밖으로 곡선을 확장할지 정한다.

축의 자연 경계가 있으면 곡선을 관측 범위에서 자르거나 경계 보정 방법을 검토한다. 단순히 잘랐으면 캡션에 적고, 원자료 최소·최대와 점을 함께 보인다. 점수 0–100%, 확률 0–1처럼 경계가 있는 값에서는 특히 중요하다. 부드러운 꼬리는 관측 점이 아니라 추정 곡선이다.

생각그림 3 · 관측 범위·추정 범위·자연 경계
범위뜻표시
원자료 범위실제 최소–최대점·가로선
밀도 평가 범위곡선을 계산한 x 범위설정 기록
자연 경계물리·정의상 가능한 범위축·절단
곡선 꼬리커널 추정의 연장관측으로 오해 금지
추정 곡선의 끝과 실제 관측값의 끝을 분리하면 존재하지 않는 값을 읽는 오류를 줄입니다.

그룹별 폭 정규화가 표본 수 해석을 바꾼다

여러 바이올린의 최대 폭을 같게 맞추면 각 그룹의 모양 비교는 쉽지만 n=30과 n=300이 같은 크기로 보인다. 면적을 같게 하거나 최대 폭을 같게 하는 정규화, 표본 수에 비례해 폭을 바꾸는 설정은 서로 다른 질문에 답한다. seaborn 0.13의 density_norm과 common_norm 설정을 확인한다.

표본 수를 폭으로 표현하지 않는다면 각 그룹 위에 n을 직접 쓴다. 표본 수 비례 폭을 쓰더라도 범례와 최대 폭 기준을 적는다. 두 그룹의 세로축 단위와 대역폭 규칙을 공통으로 두지 않으면 한쪽이 매끈하고 다른 쪽이 울퉁불퉁해져 실제 분포 차이처럼 보일 수 있다.

생각그림 4 · 정규화 선택과 읽을 수 있는 질문
width각 곡선 최대 폭 같음
area그룹별 면적 같음
count표본 수에 폭 연동
공통 n 라벨표본 수 직접 공개
공통 대역폭 규칙모양 비교 조건
폭 정규화 방식을 모르면 넓은 바이올린을 표본이 많은 집단으로 잘못 읽을 수 있습니다.

작은 표본에서는 매끈함이 근거량을 과장한다

관측이 6개뿐이어도 커널을 합치면 부드러운 바이올린이 나온다. 곡선의 매끈함은 표본이 충분하다는 뜻이 아니다. 작은 n에서는 각 점을 모두 표시하고, 분위수와 밀도 추정이 한 관측 변화에 얼마나 민감한지 확인한다. 표본 수가 지나치게 작으면 점도표나 스트립 플롯만 쓰는 편이 정직하다.

반대로 수천 개 점을 모두 겹치면 읽기 어렵다. 바이올린과 얇은 상자, 무작위가 아닌 대표성 있는 표본 점 또는 2차원 빈도 요약을 조합한다. 점을 일부만 보이면 추출 규칙과 전체 n을 적는다. 장식적인 대칭 모양이 원자료 행 수와 품질을 대신하지 않는다.

생각그림 5 · 표본 수에 따른 보완 표현
표본 상황권장 표시피할 것
n이 매우 작음모든 점+중앙값바이올린만
중간 n바이올린+상자+점n 숨김
매우 큰 n밀도+요약+추출 규칙임의 점 일부
그룹 n 다름n 라벨+정규화 공개폭을 수로 단정
밀도 곡선의 부드러움과 근거량은 별개이므로 실제 점과 표본 수를 함께 봅니다.

서로 다른 세 사례는 값의 경계와 반복 구조가 다르다

응답 시간은 0 이상의 긴 오른쪽 꼬리를 가질 수 있다. 프롬프트별 평가 점수는 0–100 경계와 이산 단계가 있을 수 있다. 토큰별 내부 활성은 양·음 값을 모두 갖고 같은 문장 안에서 상관된 관측이 생긴다. 같은 바이올린이라도 커널 선택, 독립성 가정, 해석 범위가 달라진다.

평가 프롬프트마다 여러 시드를 실행했다면 모든 시드 값을 독립 프롬프트처럼 합치지 않는다. 프롬프트별 요약을 먼저 만들거나 계층 구조를 보존한 도표를 쓴다. 모델 내부 활성 분포와 사용자 그룹별 성능 분포를 한 축에 놓아 인과 관계를 추론하지 않는다.

생각그림 6 · 바이올린 그림을 쓰기 전 자료 구조 확인
자료값 경계반복 구조
응답 시간0 이상요청·서버 조건
평가 점수0–100 또는 이산프롬프트×시드
내부 활성양·음 가능토큰×층×특징
문서 길이0 이상 정수문서·중복
자료의 경계와 반복 단위가 밀도 추정과 표본 수 계산에 직접 영향을 줍니다.

LLM에는 밀도 설정과 실제 점을 분리해 요구한다

LLM에게 원자료, 그룹, 관측ID, 단위, 자연 경계, 반복 구조를 준다. 대역폭 후보와 정규화 방법, 관측 범위 밖 확장 설정을 표로 먼저 제안하게 하고 같은 설정을 모든 비교 그룹에 적용한다. 각 그림 아래에 n, 중앙값, IQR, 최소·최대와 실제 점을 제공하게 한다.

모델이 매끈한 SVG 경로를 임의로 만들어 “실제 KDE”라고 부르지 않도록 계산 코드와 사용한 라이브러리 버전을 요구한다. 값이 없으면 도표 사양과 빈 코드만 쓰게 한다. 봉우리 수는 대역폭 민감도와 표본 수를 확인한 뒤 제한적으로 설명하고 사용자 유형 같은 원인은 별도 자료가 있을 때만 연결한다.

생각그림 7 · 원자료에서 바이올린까지의 검산 순서
자료 경계·반복 확인
대역폭 후보 계산
공통 정규화 적용
점·요약과 대조
민감도·한계 기록
밀도 경로를 재계산할 수 있고 실제 점과 대조할 수 있어야 설명을 신뢰할 수 있습니다.

잘못된 그림은 넓이를 관측 수로 바꿔 읽는다

수정 전 그림은 그룹마다 최대 폭을 같게 정규화했지만 “모델 B가 넓으므로 요청이 더 많다”고 설명했다. n과 대역폭이 없고 곡선이 음의 응답 시간까지 뻗었다. 표본 7개인 그룹도 매끈한 두 봉우리로 표시해 확정된 사용자 집단처럼 이름을 붙였다.

수정 후에는 n을 직접 쓰고 폭 정규화를 캡션에 적었다. 공통 대역폭과 관측 범위 절단을 적용하고 실제 점·상자그림을 안쪽에 보였다. 표본이 작은 그룹은 바이올린을 제거해 점도표로 바꾸었다. 두 봉우리는 “설정에 따라 보이는 후보 구조”라고 표현하고 추가 수집 과제를 붙였다.

생각그림 8 · 밀도 추정과 관측을 분리한 수정 전후
수정 전폭=표본 수로 오독
수정 전대역폭·n·경계 누락
수정 후정규화·대역폭·n 공개
수정 후작은 n은 점도표
추정 곡선의 설정과 실제 관측을 나눠 보이면 바이올린의 모양이 가진 불확실성이 드러납니다.

실습에서는 대역폭을 바꾸고 남는 특징을 찾는다

교육용 값 24개에 좁은 대역폭을 쓰면 작은 굴곡이 세 봉우리처럼 보이고, 기준 대역폭은 두 완만한 무리를, 넓은 대역폭은 하나의 봉우리를 만든다. 실습 결과는 실제 모델 측정이 아니다. “정답 봉우리 수”를 고르는 대신 여러 설정에서 유지되는 긴 꼬리와 중심 범위를 기록한다.

실제 업무에서는 대역폭을 결과를 본 뒤 임의로 고르면 선택 편향이 생긴다. 기본 규칙과 민감도 범위를 미리 정하고 모두 저장한다. 다른 그룹 비교에서는 같은 기준을 적용하고, 봉우리 해석을 발표해야 한다면 원자료 점·히스토그램·메타데이터 분석이 같은 이야기를 하는지 확인한다.

생각그림 9 · 대역폭 민감도 실습
대역폭 배수보이는 봉우리(교육용)읽기
0.5×3개표본 잡음 가능
1.0×2개후보 구조
1.8×1개세부 구조가 합쳐짐
공통 결론긴 오른쪽 꼬리설정에 비교적 안정
봉우리 수보다 설정 변화에도 유지되는 특징과 실제 점의 위치를 우선합니다.

공개 전에는 설정·점·화면을 각각 검사한다

같은 원자료와 코드로 밀도 경로를 다시 계산하고 대역폭, 커널, 정규화, 평가 범위, 절단 설정을 기록한다. 그룹별 n과 실제 점 수가 맞고 중앙값·IQR이 상자 요소와 일치하는지 본다. 자연 경계 밖 곡선과 작은 표본의 과한 매끈함을 검토한다.

모바일에서는 좁은 바이올린, 중앙값 표식, 축 값과 그룹 라벨이 겹치지 않는지 확인한다. 색 없이도 그룹을 구분하고 화면낭독기용 요약표에 n·중앙값·IQR·대역폭·정규화를 넣는다. 상세 SVG는 키보드로 가로 이동할 수 있게 하고 도표 설명이 곡선의 설정 한계를 포함하도록 한다.

생각그림 10 · 바이올린 그림 공개 전 검사표
검사통과 기준미통과 행동
밀도 설정대역폭·정규화·절단 공개사양 보완
실제 관측점 수·n·요약 일치재계산
경계불가능 영역 없음절단·보정
해석봉우리 원인 단정 없음문장 완화
접근성축·표·키보드 읽힘배치 보완
바이올린 그림은 밀도 추정의 산출물이므로 설정과 실제 관측을 함께 검수해야 합니다.

복사해서 쓸 수 있는 LLM 요청문

아래 요청문은 교육용 예시다. 원문을 함께 제공하고, 모델이 빈칸을 추측하지 않도록 금지 조건을 넣었다. 결과를 받으면 원문 문장과 노드·선의 대응을 사람이 다시 확인한다.

다음 그룹별 측정값으로 바이올린 그림을 설계해 줘.
1. 관측ID·그룹·값·단위·자연 경계·반복 구조와 그룹별 n을 확인한다.
2. 사용할 커널, 대역폭 규칙과 조정 배수, 평가 범위를 적는다.
3. 그룹 간 공통 대역폭 규칙과 density normalization 방식을 쓴다.
4. 관측 범위 밖 꼬리 확장과 자연 경계 처리 방법을 밝힌다.
5. 실제 점, 중앙값과 IQR을 함께 표시하고 작은 표본은 점도표를 우선한다.
6. 대역폭 0.5×·1×·1.8× 민감도 결과를 비교한다.
7. 봉우리 수를 숨은 집단의 증거로 단정하지 않는다.
8. 실제 값이 없으면 밀도 경로를 꾸며내지 말고 빈 사양과 코드만 준다.

[그룹별 원자료] …
생각그림 10 · 요청문에서 결과와 검토까지
원문 붙이기
도표 목적 명시
추정 금지
문장별 대조
요청문은 도표를 자동으로 진실로 만들지 않습니다. 원문과 결과를 왕복해 확인하는 절차가 핵심입니다.

직접 실습하고 결과를 읽기

이 실습은 브라우저 안에 준비한 교육용 자료만 사용한다. 외부 LLM을 호출하거나 실제 기관 자료를 조회하지 않는다. 입력을 바꾸어 결과가 어떻게 달라지는지 보고, 설명과 맞지 않는 결과가 나오면 어떤 정보가 빠졌는지 적어 본다.

같은 24개 교육용 값에서 곡선 굴곡을 비교하세요.

자료와 출처

아래 자료는 이번 글의 정의와 표기법을 확인하는 데 사용했다. 생각그림과 사례 문장은 원자료를 복제하지 않고 이 글의 교육 목적에 맞게 새로 구성했다.