본캠프/TIL ♨

[47일차] 머신러닝 라이브세션 군집 | 머신러닝 인강 5강 | SQL 스터디 | 주기적 복습 |

yssummer 2025. 4. 17. 21:23

250415

🌠오늘 느낀 점

👉 약간긴장됨. 내일부터 프로젝트 기간이기 때문. 내일부터 큐알체크도 한다. 프로젝트 발제 듣고 데이터도 골라야한다. 데이터 고를 눈을 기르기 위해 내일 발제 전까지 완강해보기로 팀원들과 약속(?)을 했다. 다들 그렇게 하고 있음. 좋은 전략같다. 나도 오늘밤이랑 낼아침에 후다닥 들어야지. 빠르게 들으면 3시간 안에 가능! 얼른끝내버리자.

 

🎯 오늘 우선순위 3개

머신러닝 라이브세션 오늘이랑 어제 들은 3개 다 복습 ✔️

> 머신러닝 인강 5,6강 듣기✔️

> 파이썬 기초 과제 내기 1개 이상 ✖️ 음.... 머신러닝 완강이 더 우선이었던 것이다.

 

 

⌛시간활용 기록

07:00 - 08:00 미니등산, 씻기  
08:00 - 09:00 커피or말차 + 착석 + 출첵 + TIL 켜기  
09:00 - 10:00 ☠️💎 3,7,30일 전 주기적 복습 🪢 ☠️  (파이썬, 통계, 머신러닝 순환) 🙋🏼‍♀️오전 스크럼  
10:00 - 11:00 🤖 머신러닝 라이브세션 [군집] 듣기  
11:00 - 12:30 🧠 라이브세션 내용 정리 + 노션 정리 핵심 정리
12:30 - 14:00 🤖 어제 머신러닝 라이브세션 복습 (이상탐지/회귀) + lunch  
14:00 - 15:00 ✍️ 어제 쓴 TIL 수정 + 오늘 내용 초안 작성 QCC 대비
15:00 - 16:00 📝SQL 문풀 스터디   (코드카타 제출하기)  
16:00 - 17:00 📰 아티클 스터디 참여 (내용 요약 or 토론) 주제: 
주17:00 - 18:00 🤖 머신러닝 학습 (인강 or 실습 진행) 개념 연결 + 실습 적용
18:00 - 19:00 👟헬스장 + 간식 호르몬 균형 회복 타임
19:00 - 20:30 🧠  머신러닝 복습 (모델링, 전처리 등 자유 선택) 심화 블록
20:30 - 21:00 🙋🏼‍♀️ 오후 스크럼 + ✍️ TIL 최종 제출 정리와 리플렉션
21:00 - 22:00 🤖 머신러닝 인강 들으며 이완 비가역 기억 잠입
22:00 - 23:00 잘준비 따뜻한 이완 루틴

 

 





 

🧠공부메모

 

📚 1.  머신러닝 라이브세션 군집 특강 🤖

 

🔵비지도학습: 군집화(Clustering)

📌 핵심

  • 비지도학습의 대표 기법 ‘군집화’는 정답이 없다.
  • EDA와 전처리가 핵심이다. (특히 스케일링, 이상치 제거, 차원축소)
  • K값 선정은 실험과 해석의 반복 과정이다.
  • 단순히 잘 나뉘었는가? 보다 비즈니스적으로 해석 가능한지가 더 중요하다.
  • 한 번의 클러스터링에 집착하지 않고 여러 번 실험하고, 의미를 찾는 것이 분석가의 역량이다.
  •  
  • 🧠 포인트 정리
    • EDA가 핵심이다 → EDA가 잘 되면 좋은 클러스터링이 나온다.
    • 정답 없음 = 분석가의 해석력 → 군집화 결과를 읽고 의미를 부여하는 능력이 가장 중요
    • 모델이 다가 아니다 → 결과를 어떻게 설명하고 사용할 것인가가 핵심
    • 시각화 툴도 적극 활용: Radar Chart, Box Plot 등

느낀 점

처음엔 군집화가 'EDA를 잘 한 데이터를 갖고 머신러닝 코드 입력을 하면 컴퓨터가 알아서 좌라락 돌아가고 나는 나중에 그걸 보고 해석하는 것?'인 줄 알았는데 생각보다 분석가 중간중간 많이 개입해야 하는 주도적인 과정임을 알게 되었다. 특히, 내가 직접 클러스터링 기준을 세운다는 점에서 데이터 분석가로서 해석력이 매우 중요하다는 얘기가 와닿았다. 답 없는 문제를 내가 해석하는 능력이 있어야 한다니. 공부와 경험을 많이 쌓아야겠다고 생각했다.

 


🧩군집화란

정답 없는 문제를, 비슷한 패턴을 기준으로 묶는 것

 

📌 핵심 요약


군집화란? 라벨 없는 데이터에서 비슷한 애들끼리 묶는 것 (비지도학습)
클러스터링 프로세스 (1) 기간 설정 → (2) 컬럼 및 K 설정 → (3) 이상치 제거 → (4) 표준화 → (5) 차원축소(PCA) → (6) 군집(PCA plot로 시각화) → (7) 반복 조정 및 최적화
실무 포인트 - 이상치 제거PCA 차원축소는 거의 필수
- 해석 가능성 있는 컬럼을 남기는 것이 관건
- 클러스터별 ‘특성’ 해석이 중요 (예: 이 군집은 ‘리텐션 낮고 구매력 낮음’)
평가 기준 군집 간 분리가 잘 되어 있는가? → 시각화, Silhouette Score 등 사용
실습 주제 고객의 행동 데이터를 기반으로 고객 유형 군집화 수행 (K-means 사용, merge_df.csv 활용)

 

클러스터링 프로세스

1단계

기간설정

현업에서는 3-6개월 기간잡기를 권장.

목적? 과거 데이터로 클러스터링 해놓아서, 현재 라이브로 들어오는 고객의 로그를 보고 바로 분류가능해짐.

모델 초기에 생성해놓고 서비스 차차 변동될테니 주기적으로 업데이트 해줌.

 

2단계 : 이상치 결측치 처리하기

왜? 이 로직 기억했다가 다시 쓸거니까 한 번 할 때 제대로 해야한다. 그러니까 예쁜 데이터를 사용해서 모델도 예쁘게 나올 수 있도록 해야하는 것임.

근데 이상치 결측치 처리할 때 결제금액은 되도록 빼지 않도록 권고되고 있다.

결측치 채워넣는 것 없음. 클러스터링에서는 드랍함.

 


📚 실습 요약

  • 데이터 구조: 성별, 연령대, 최근 구매일, 총 구매금액, 방문 횟수, 구매율, RFM 점수, 상품군별 구매유형, 채널, 브랜드 충성도, 등 다수
  • 사전 작업:
    • Null 값 제거
    • 이상치 제거 (박스플롯, IQR 사용)
    • 표준화 (StandardScaler 사용)
    • PCA (2차원 시각화)
  • 군집화:
    • K-means 알고리즘 사용
    • K값은 사전에 결정 (도메인 지식 or Elbow Method)
  • 군집 해석:
    • 클러스터별 평균 비교, 범주형 변수 비율 확인
    • 해석 가능한 명칭 부여 (예: 가격 민감 군, 충성 고객 군)

 

 


📚 2. SQL 스터디

🔵 SQL 코드카타 30, 31번

📌오답노트

where options like %'통풍시트'% --> 이와 같이 퍼센티지 기호를 ''안에다가 써야한다. 바깥이 아님...

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/59044

 

 

 

  1. 30번 느낀 점: 헤매는 부분이, where 절에서 or로 여러 옵션 선택하는 구문 작성이었다.

문제:
CAR_RENTAL_COMPANY_CAR 테이블에서 '통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차가 자동차 종류 별로 몇 대인지 출력하는 SQL문을 작성해주세요.
이때 자동차 수에 대한 컬럼명은 CARS로 지정하고, 결과는 자동차 종류를 기준으로 오름차순 정렬해주세요.

 

  • like을 써야하나? 구문 표현이 잘못되었나? 아직 답 안보고 좀 더 생각해보았다.
  • 처음에 like 아래와 같이 썼다가 답 안나와서 in으로도 써봤는데 더 아닌 것 같아서
  • 결국 답을 봤더니
-- 코드를 입력하세요
SELECT car_type, count(1) cars
from CAR_RENTAL_COMPANY_CAR 
where options like %'통풍시트'%,
or options like %'열선시트'%,
or options like %'가죽시트'%
group by 1
order by 1

퍼센티지 기호를 안에다가 써야 되는구나????!!!

ㅋㅋㅋㅋㅋㅋㅋ

나머지는 그래도 맞춘 것 같다.

count 별이나 1이나 상관 없는 것 같고 ?

select CAR_TYPE, count(*) CARS
from CAR_RENTAL_COMPANY_CAR
where OPTIONS like '%가죽시트%'
or OPTIONS like '%열선시트%'
or OPTIONS like '%통풍시트%'
group by 1
order by 1;​



2. 31번 느낀 점: row number 맞게 사용하는 연습 잘 했다. 다행히 요건 맞췄다. 얼마 전에 rank 연습을 했기 때문에...
 
with a as (
    select i.animal_id, i.name, i.datetime, row_number() over(partition by i.animal_id order by i.datetime) rn
    from animal_ins i
    left join animal_outs o on i.animal_id = o.animal_id
    where o.datetime is null
    order by i.datetime
    )
    
select name, datetime
from a
group by 1,2
limit 3

 

 

끝끝~ 성공젹 ~!!!!

 

 

 


 

📚3.  머신러닝 인강 4강까지

낼 아침까지 완강해야지 낼 10시에 발제니까 그전에 2배속으로 눈안깜빡이고 집중하기 스킬로 끝내버린다

 




📚 4. 주기적 복습

따로시간내지못했지만 오늘 아티클도 그렇고 공부한 내용들이 다 복습에서 이쪽저쪽이다. 한달전복습은 아니지만...

 



🐱‍👤생활관리


날씨 : 흐림
컨디션 : 
고민: 

 

📚 5. 아티클 스터디

🎯주제: 사용자 데이터 분석과 시각화 방법 (정량적 데이터만 언급)

  • 요약👉 사용자 조사로 수집된 데이터는 형태가 다양해서 각 특성에 맞게 분석해야 한다.
    1. 📜 정량적 경험 데이터 분석 & 시각화 기법
      1. 통계 분석법
        1. 기술 통계 사용법
          1. 범주형 데이터라면 - 빈도와 백분율 구하기 가능
            1. 예시: 선호 디자인 타입, 과제 성공 여부
          2. 수치형 데이터라면 - 평균, 표준편차 등 구하기 가능
            1. 예시: 만족도, 수행시간
          3. 중심 경향 지표 사용법
            1. 극단값이 많은 데이터라면 평균보단 중앙값을 쓰던가, 이상치 처리를 하고 평균을 쓰자.
            2. 5점 척도처럼 데이터가 제한된 값을 가질 때는 최빈값 활용하자.
        2. 시각화 방법
          1. 범주형 데이터라면 - 파이차트와 누적 막대 그래프
          2. 수치형 데이터라면 - 막대그래프와 선 그래프
          3. 고급 분석하고 싶다면 - 방사형 그래프와 산점도
        3. 추론 통계 사용법
          1. 의미: 표본으로 모집단을 추론하는 과정
          2. 먼저 할 것: 대표성 검증하기
            1. 정규성 가정
            2. 통계적 유의성 파악 by p-value 0.05 이하인지 확인
          3. T 검정, 분산분석 for 통계적 유의미성 파악
            1. T 검정: 비교 대상 2개
              1. 예시: 스마트폰 터치 키보드 개선 효과 t 검증, p-value 확인해보니 0.004 나와서 통계적으로 유의미하게 개선되었다 판단함. 유의성 정도에 따라 *, **로 표시.
            2. 분산분석: 비교 대상 2개 초과
              1. 예시: 컨셉 3개의 수행시간 차이 통계적 의미 분석, 분산분석 p-value로 집간 간 유의성 검증된 후, 특히 어느 그룹에서 차이 났는지 파악 필요해서 사후 검증(Post-Hoc test)을 해야 함.
          4. 상관분석, 회귀분석 for 변수들 간 관계 파악
            1. 상관분석: 2개 이상 변수의 선형적 관계 파악
            2. p-value, 상관계수 r값(변수 간 상관관계 정도, 긍정 or 부정)이 도출됨.
        4. 현업에서 사용법
          1. 분석하기
          2. 해석하기
        5. 시각화 시 주의할 점
          1. 단순하면서도 내용 전달 확실히
          2. 정보 왜곡 주의 ( 수직 축 통일, 생략하지 않기 )
        6. 좋은 결론을 내는 법
          1. 객관성 더 확보를 위한 추가 분석 : 객관적 데이터보다 주관적 데이터는 추론 통계 결과가 크게 안나는 경우가 많이 있다. —> 이럴 경우 사용자 유형에 따라서도 데이터 분석 해볼 수 있다.
          2. 직관 반영: 결국 해석자의 의사결정이 필요하다. —> 데이터 밖의 맥락인 트렌드, 사업적 해석을 반영해 판단해야 한다.




끝.