카테고리 없음

[내일배움캠프] 머신러닝 심화,,,,, 뭐예요ㅕ 이거

blog63677 2026. 6. 23. 20:33

오늘은 통계학 강의와 머신러닝 심화 세션을 통해, 데이터를 해석할 때 어떤 기준으로 접근해야 하는지에 대한 기본 틀을 배웠다.
통계에서는 상황에 따라 어떤 분포를 써야 하는지를 익혔고, 머신러닝에서는 정답이 없는 데이터에서 구조를 찾는 비지도학습의 개념을 배웠다.
하루 내용을 쭉 돌아보면, 결국 핵심은 하나였다.
“데이터를 그냥 보는 게 아니라, 데이터의 형태와 목적에 맞는 도구를 골라서 해석해야 한다”는 점이다.

1. 통계학 강의 — 상황에 맞는 분포를 고르는 기준 정리

오늘 통계학에서는 여러 분포를 한 번에 배웠다.
처음에는 이름이 너무 많아서 헷갈렸는데, 하나씩 뜯어보니 결국 **“어떤 상황의 데이터를 설명하려는가”**에 따라 분포를 고르는 문제였다.

정리하면 이런 느낌이다.

  • 데이터 수가 충분히 많으면 정규분포에 근사해서 생각할 수 있다.
  • 표본 수가 작으면 정규분포 대신 스튜던트 t 분포를 사용한다.
  • 일부 큰 값이 전체에 강한 영향을 주는 구조라면 **롱테일 분포(파레토 분포)**를 떠올릴 수 있다.
  • 범주형 데이터의 독립성이나 적합도 검정에는 카이제곱분포를 사용한다.
  • 성공/실패처럼 결과가 둘 중 하나인 경우이항분포가 מתאים한다.
  • 특정 시간이나 공간 안에서 사건이 몇 번 발생하는지를 볼 때는 푸아송분포를 사용한다.

이걸 외우려고만 하면 잘 안 들어오는데, 오늘은 각 분포를 “쓰는 상황” 기준으로 묶으니까 훨씬 덜 복잡하게 느껴졌다.
예를 들어 동전 던지기는 결과가 앞면/뒷면 둘 중 하나니까 이항분포, 병원 1시간 방문 환자 수처럼 **‘일정 시간 동안 몇 번 일어났는가’**를 보는 건 푸아송분포라는 식이다.
이렇게 보면 분포는 그냥 수학 공식이 아니라, 현상을 설명하기 위한 틀이라는 게 조금 보였다.

 

2. 연습문제를 통해 다시 잡은 기본 개념

오늘 연습문제에서는 분포뿐 아니라 통계의 기초 개념도 같이 점검했다.
특히 다시 확인한 개념은 아래와 같다.

모집단과 표본

  • 모집단은 조사하고 싶은 전체 대상
  • 표본은 그 모집단에서 뽑은 일부 데이터

이건 이미 여러 번 들었지만, 실제로 통계 분석은 대부분 모집단 전체를 다 보는 게 아니라 표본으로 추정하는 방식이라는 점에서 계속 중요하게 느껴진다.

신뢰구간

표본 평균 하나만 보고 “모집단 평균이 딱 이 값이다”라고 말할 수는 없기 때문에,
이 정도 범위 안에 있을 가능성이 높다는 식으로 구간을 제시하는 개념이다.

예를 들어 95% 신뢰구간은, 같은 방식으로 표본을 반복해서 뽑았을 때 만들어지는 구간들 중 약 95%가 실제 모집단 평균을 포함한다는 의미로 이해해야 한다.
예전에는 “모평균이 95% 확률로 이 구간 안에 있다”라고 단순하게 받아들였는데, 사실은 표본추출과 추정 과정 전체를 포함한 개념이라는 점을 다시 확인했다.

정규분포와 표준편차

정규분포는 평균을 중심으로 좌우 대칭인 종 모양 분포이고,
표준편차는 데이터가 평균 주변에 얼마나 퍼져 있는지를 보여준다.

평균은 “중심이 어디냐”를 말해주고, 표준편차는 “얼마나 흩어져 있냐”를 말해준다는 점이 조금 더 명확해졌다.
숫자만 따로 외울 때보다, 그래프 모양과 함께 연결해서 보니까 이해가 더 잘 됐다.

 

3. 머신러닝 심화 세션 — 비지도학습은 “정답 없이 구조를 찾는 일”

오후에는 비지도학습을 배웠다.
지도학습은 정답(Y)이 있어서 입력(X)과 정답(Y)의 관계를 학습하는 방식이라면, 비지도학습은 정답 없이 데이터 자체의 구조를 파악하는 방식이다.

즉, 비지도학습은 “맞혔냐 틀렸냐”보다
이 데이터 안에 어떤 패턴이 숨어 있는지,
비슷한 것끼리 묶을 수 있는지,
차원을 줄여서 더 잘 볼 수 있는지를 탐색하는 데 가깝다.

실무 예시로는 고객 세분화, 이상치 탐지, 데이터 시각화 등이 있었는데, 듣다 보니 품질관리 쪽에서도 꽤 연결될 수 있겠다는 생각이 들었다.
예를 들어 불량 데이터를 그냥 하나로 묶는 게 아니라, 불량 유형별로 군집을 나눠보는 작업도 결국 비지도학습의 관점으로 볼 수 있기 때문이다.

 

4. 군집화 — 라벨 없는 데이터를 묶는 방법

오늘 비지도학습에서 가장 중심이 된 건 군집화(Clustering)였다.
군집화는 쉽게 말하면 비슷한 데이터끼리 묶는 작업이다.
정답 라벨이 없기 때문에, 알고리즘은 데이터 간 거리나 밀도를 기준으로 “이것들끼리는 비슷하다”고 판단해 그룹을 만든다.

군집화에서 중요한 기준은 두 가지였다.

  • 동질성: 같은 클러스터 안의 데이터들은 서로 가까워야 한다.
  • 분리성: 다른 클러스터끼리는 서로 멀어야 한다.

이 두 조건이 잘 만족될수록 군집이 잘 나뉘었다고 볼 수 있다.

오늘 배운 대표 알고리즘

1) K-Means

가장 기본적인 군집화 알고리즘이다.
클러스터 중심점을 정하고, 각 데이터를 가장 가까운 중심점에 할당한 뒤 중심점을 다시 업데이트하는 과정을 반복한다.

장점은 빠르고 직관적이라는 점이다.
하지만 단점도 분명했다.

  • K값(클러스터 수)을 미리 정해야 함
  • 초기 중심점에 따라 결과가 달라질 수 있음
  • 이상치에 취약함
  • 동그란 형태처럼 비교적 단순한 군집에 더 잘 맞음

2) Hierarchical Clustering

계층적으로 묶어 올라가면서 군집 구조를 만드는 방식이다.
결과를 덴드로그램으로 확인할 수 있어서, 데이터가 어떤 구조로 묶이는지 시각적으로 볼 수 있다는 점이 인상적이었다.

다만 데이터가 많아지면 계산량이 커져서 대용량 데이터에는 부담이 될 수 있다.

3) DBSCAN

밀도를 기준으로 군집을 찾는 방식이다.
K-Means처럼 클러스터 수를 미리 정하지 않아도 되고, 이상치를 노이즈로 분리해낼 수 있다는 점이 강점이다.

특히 데이터가 꼭 둥근 모양으로 뭉쳐 있지 않아도 군집을 잡을 수 있다는 점이 장점인데,
반대로 ε(엡실론)이나 minPts 같은 파라미터를 잘 잡는 게 어렵다는 한계도 있다.

 

5. 군집화 결과를 어떻게 평가할까?

비지도학습은 정답이 없기 때문에, 지도학습처럼 정확도를 바로 계산할 수 없다.
그래서 오늘은 군집화 결과를 평가할 때 주로 쓰는 기준도 같이 배웠다.

실루엣 스코어

각 데이터가 자기 클러스터 안에서는 얼마나 잘 어울리고,
다른 클러스터와는 얼마나 떨어져 있는지를 수치화한 지표다.

값이 높을수록 군집이 잘 나뉘었다고 해석할 수 있다.
결국 동질성과 분리성을 동시에 보는 지표라고 이해하면 될 것 같다.

엘보 방법

K-Means에서 클러스터 수 K를 몇 개로 정할지 고민할 때 사용하는 방법이다.
K를 늘려가면서 inertia(클러스터 내부 변동)를 그려보고, 감소 폭이 급격히 꺾이는 지점을 찾는 방식이다.

이름 그대로 그래프가 팔꿈치처럼 꺾이는 지점을 찾는 건데,
이 부분이 “너무 적지도 너무 많지도 않은 K”의 후보가 된다.

 

6. 차원축소 — 정보를 너무 잃지 않으면서 단순하게 만들기

군집화와 함께 배운 또 하나의 축은 차원축소였다.
데이터의 특성이 너무 많아지면 계산 비용이 커지고, 시각화도 어려워지고, 오히려 모델 성능이 떨어질 수 있다.
이걸 흔히 차원의 저주라고 부른다.

그래서 차원축소는 말 그대로 변수 수를 줄이되, 중요한 정보는 최대한 유지하는 것이 목적이다.

PCA

오늘 배운 대표적인 차원축소 기법 중 하나는 PCA(주성분 분석)였다.
핵심은 데이터의 분산이 가장 큰 방향을 새로운 축으로 잡아서, 정보가 많이 담긴 방향부터 남기는 것이다.

처음에는 “축을 새로 만든다”는 말이 추상적으로 느껴졌는데,
여러 변수들이 복잡하게 얽혀 있을 때 핵심 패턴을 잘 설명하는 새로운 요약 축을 만든다고 생각하니 조금 이해가 됐다.

예를 들어 센서 데이터처럼 변수 수가 많을 때, 원래 변수 전체를 다 쓰는 대신 몇 개의 주성분으로 압축해서 전체 구조를 볼 수 있는 식이다.

t-SNE

t-SNE는 PCA와 달리 비선형 차원축소 기법으로,
원래 가까운 데이터는 가깝게, 먼 데이터는 멀게 보이도록 2차원이나 3차원 공간에 배치하는 데 강점이 있다.

그래서 성능 좋은 예측 모델을 만들기 위한 전처리보다는,
시각적으로 군집이 어떻게 형성되는지 확인하는 용도에 더 가깝다고 이해했다.

 

7. 오늘 특히 중요하다고 느낀 포인트 — 스케일링

오늘 내용에서 계속 반복해서 나온 게 스케일링의 중요성이었다.
K-Means, PCA, t-SNE처럼 거리나 분산을 기반으로 움직이는 알고리즘은 변수의 단위 차이에 민감하다.

예를 들어 어떤 변수는 값이 0~1 사이이고, 어떤 변수는 0~10000 사이면
큰 스케일의 변수가 계산에 훨씬 더 큰 영향을 주게 된다.
그러면 데이터의 진짜 구조보다 “숫자 크기가 큰 변수”가 알고리즘을 끌고 가버릴 수 있다.

그래서 표준화나 정규화를 통해 스케일을 맞춰주는 전처리가 사실상 필수라는 점이 인상적이었다.
아직은 모델보다 개념을 배우는 단계지만, 전처리가 괜히 앞단에 있는 게 아니라는 걸 다시 느꼈다.

 

8. 어려웠던 점

오늘 가장 어렵게 느껴졌던 건 개념 하나하나는 이해되는데, 서로 어떻게 연결되는지까지 한 번에 잡는 것이었다.

통계 파트에서는 정규분포, t분포, 이항분포, 푸아송분포, 카이제곱분포처럼 이름이 한꺼번에 많이 나왔다.
각각 정의만 보면 이해가 되는 것 같다가도, 문제에서 상황이 조금만 바뀌면 “이건 어떤 분포를 써야 하지?”에서 멈칫하게 된다.
결국 아직은 분포 이름을 외우는 단계라기보다, 문제 상황을 보고 적절한 분포로 연결하는 감각이 덜 잡힌 상태인 것 같다.

머신러닝 파트에서는 군집화와 차원축소의 차이가 처음엔 약간 헷갈렸다.
둘 다 데이터 구조를 단순화하거나 정리하는 느낌이 있어서 비슷하게 보였는데,
군집화는 비슷한 것끼리 그룹을 나누는 것이고, 차원축소는 변수 수를 줄여서 구조를 더 잘 보이게 만드는 것이라는 차이를 분리해서 이해해야 했다.

또 하나는 평가 지표였다.
지도학습은 정답이 있으니 정확도 같은 걸 떠올리면 되는데, 비지도학습은 정답이 없으니까 실루엣 스코어나 엘보 방법처럼 “이 결과가 괜찮은가”를 우회적으로 판단하는 기준을 써야 한다는 점이 아직 완전히 익숙하진 않다.

 

 

오늘 배운 내용을 정리하면서 든 생각은, 통계와 머신러닝이 완전히 다른 얘기가 아니라는 점이다.
통계에서 분포를 배우는 것도 결국 데이터를 어떻게 해석할지 정하는 과정이고,
비지도학습에서 군집화나 차원축소를 배우는 것도 결국 데이터 안의 구조를 읽어내는 과정이다.

특히 품질관리 관점에서 생각해보면,
불량률이나 결함 발생 횟수를 볼 때는 푸아송분포 같은 통계 개념이 연결될 수 있고,
불량 유형을 세분화하거나 이상 패턴을 찾을 때는 군집화 같은 비지도학습이 연결될 수 있다.
아직은 각각이 따로따로 보이지만, 나중에는 이런 개념들이 실제 데이터 분석 과정 안에서 같이 쓰일 것 같다는 느낌이 들었다.

그리고 오늘은 “모델을 돌리는 법”보다도
왜 이 방법을 쓰는지, 어떤 상황에서 이 개념이 필요한지를 이해하는 게 더 중요하다는 걸 다시 느꼈다.
아직 모든 개념이 완전히 손에 익은 건 아니지만, 적어도 오늘은 분포와 비지도학습을 처음보다 훨씬 덜 낯설게 보게 된 하루였다.

 

 

내일 복습할 때는 아래 3가지를 다시 보면 좋을 것 같다.

  • 분포 선택 기준 다시 정리하기
    정규분포 / t분포 / 이항분포 / 푸아송분포 / 카이제곱분포를 “언제 쓰는지” 중심으로 표로 정리해보기
  • 군집화 알고리즘 차이 비교하기
    K-Means, Hierarchical, DBSCAN의 장단점과 사용 상황 비교해보기
  • 차원축소와 스케일링 연결해서 이해하기
    PCA 전에 왜 스케일링이 필요한지, t-SNE는 왜 시각화용으로 많이 쓰는지 다시 정리해보기

오늘은 개념 양이 꽤 많았지만,
그만큼 “데이터를 어떤 틀로 바라봐야 하는지”를 넓게 배운 하루였다.
이제는 그냥 용어를 외우는 데서 끝내지 말고, 문제를 보면 어떤 분포를 떠올려야 하는지 / 어떤 알고리즘이 맞을지 연결하는 연습을 계속 해야겠다.