JHJ
[내일배움캠프 QAQC 부트캠프] 머신러닝 심화 2일차(31일차, 260624) 본문
1. 오늘 학습 키워드:
머신러닝 심화
2. 오늘 학습 한 내용을 나만의 언어로 정리하기:
코드카타
알고리즘
| 76 - JadenCase 문자열 만들기 def solution(s): A = s.split() B = [] for i in A: B.append(i.capitalize()) return " ".join(B) |
SQL
| 61 - 서울에 위치한 식당 목록 출력하기 SELECT A.REST_ID , A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, A.ADDRESS, ROUND(AVG(B.REVIEW_SCORE),2) AS SCORE FROM REST_INFO AS A INNER JOIN REST_REVIEW AS B ON A.REST_ID = B.REST_ID WHERE A.ADDRESS LIKE '서울%' GROUP BY A.REST_ID ORDER BY AVG(B.REVIEW_SCORE) DESC, A.FAVORITES DESC |
| 62 - 자동차 대여 기록에서 장기/단기 대여 구분하기 SELECT HISTORY_ID, CAR_ID, START_DATE, END_DATE, IF(DATEDIFF(END_DATE,START_DATE)>=29, '장기 대여', '단기 대여') AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE LIKE '2022-09%' ORDER BY HISTORY_ID DESC |
| 63 - 자동차 평균 대여 기간 구하기 SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1),1) AS AVERAGE_DURATION FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID HAVING AVG(DATEDIFF(END_DATE,START_DATE)) >= 6 ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC |
| 64 - 헤비 유저가 소유한 장소2021 Dev-Matching: 웹 백엔드 개발자(상반기) SELECT ID, NAME, HOST_ID FROM PLACES WHERE HOST_ID IN ( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID)>=2 ) ORDER BY ID |
| 65 - 우유와 요거트가 담긴 장바구니Summer/Winter Coding(2019) SELECT CART_ID FROM CART_PRODUCTS WHERE NAME IN ('Milk', 'Yogurt') GROUP BY CART_ID HAVING COUNT(DISTINCT NAME) = 2 ORDER BY CART_ID |
머신러닝/라이브러리 심화
| 1-8 데이터 분리 - 이론 예측/분류에서 모델의 복잡도에 따라 과적합, 과소적합이 나올 수 있음. 과적합: 데이터를 너무 과도하게 학습 기존 데이터 외에 새 데이터를 제대로 예측 혹은 분류하지 못하는 현상 원인: 모델의 복잡도, 데이터 양 ,학습 반복량, 데이터 불균형 해결법: 테스트 데이터의 분리(Train Data/Test Data) 분리에서 동일한 데이터셋을 생성하기 위해 난수를 고정시킬 필요가 있음 sklearn.model_selection.train_test_split 1-9 데이터 분리 - 실습 데이터가 불균형이 심화면 층화추출 실시 수치형의 스케일링 등의 전처리 또한 train과 test는 격리할 필요 1-10 1-11 1-12 전체 실습 잊지 말고 강의 보면서 직접 해보기 1-13 교차 검증: Train Data를 K개의 하위 집합으로 나누어 모델을 학습, 최적화 특징: 데이터가 부족할 경우 유용 skelarn.model_selection.KFold 하이퍼 파라미터: 모델을 구성하는 입력 값 중 사람이 임의적으로 바꿀 수 있는 입력 값 GridSearchV: 최고의 하이퍼 파라미터, 정확도 자동 계산 데이터 분석 프로세스 정리 7:3 으로 train/test 데이터셋 분리 각 데이터셋 전처리 train 에서 학습과 검증데이터 7대3으로 분리 후, 학습/검증/모델 생성 test 에서 학습 후 모델생성, 예측, 평가 |
| 2-1 의사결정나무 이론 의사결정규칙을 나무 구조화 전체 자료를 몇 개의 소집단으로 분류, 예측 수행하는 분석 방법 루트 노드: 최초의 분할조건 리프 노드: 중간 혹은 최종 노드 분류기준: 0인 경우 좌측 노드로, 1인 경우 우측 노드로 분류 등 불순도: 대표적으로 지니 계수(0과 1사이) 0이 완벽한 순도(모든 샘플이 하나의 클래스) 1은 완전한 불순도(노드의 샘플의 균등하게 분포) 클래스: 가장 많은 샘플을 차지하는 것 장점: 쉽고 해석하기 용이, 분류 외 회귀에도 적용 가능, 이상치 견고, 스케일링 불필요 단점: 나무의 과도한 성장은 과대적합의 오류 발생, 훈련 데이터에 민감(불안정성) sklearn.tree.DecisionTreeClassifier sklearn.tree.DecisionTreeRegressor 2-2 랜덤 포레스트 이론 의사결정 나무는 과적합과 불안정성 대한 문제 --> 나무를 여러개 만들기 배깅 방법론: Bootstrapping(복원 추출, 타집단 생성) + Aggregating(예측,분류 결과를 합치는 것) 앙상블: 여러 개의 모델을 만들어 결과를 합치는 것 장점: 배깅 과정을 통해 과적합 회피, 이상치 견고(스케일링 불필요), 변수 중요도(피쳐 임포턴트) 추출로 중요 특징 파악 가능 단점: 리소스 비용, 앙상블 적용에 따른 해석 난해 sklearn.ensemble.RandomForestClassifer sklearn.ensemble.RandomForestRegressor 2-3 KNN KNN(최근접 이웃) 알고리즘: 주변의 데이터 바탕의 예측 방법 주변 데이터 K개를 선정 후에 거리 기준으로 가장 많은 것으로 예측하는 것 파라미터: 머신러닝 모델이 학습 과정에서 추정하는 내부 변수, 자동 결정값 하이퍼 파라미터: 데이터 과학자가 모델 훈련에 사용하는 외부 변수 하이퍼 파라미터를 바꾸며 좋은 평가 지표가 나올 때까지 실험, 원리를 밝혀내는 것이 데이터 사이언스의 기반 두 점의 거리: 피타고라스 정리로 구한 값(유클리드 거리) 그 외에 맨해틀 거리 등 다양한 거리 계산 방법 거리 기반 알리고리즘은 단위의 영향이 큼(피처에 대한 표준화 필수) 장점: 이해하기 쉽고 직관적, 회귀 모집단의 가정, 형태 고려할 필요X 회귀, 분류 모두 가능 단점: 많은 계산량, 피처 표준화 필수 2-4 부스팅 부스팅 알고리즘: 여러 개의 약한 학습기를 순차적으로 학습하면서 잘못 예측한 데이터에 가중치를 부여하여 오류를 개선 Gradient Boosting Model, XGBoost, LightGBM가 있음 Gradient Boosting Model 특징: 가중치 업데이트를 경사하강법 방법을 통해 진행 sklearn.ensemble.GradientBoostingClassifier sklearn.ensemble.GradientBoostingRegressor XGBoost 특징: 트리기반 앙상블 기법으로, 가장 각광받으며 Kaggle의 상위 알고리즘 xgboost.XGBRegressor xgboost.XGBRegressor LightGBM 특징: XGBoost와 함께 가장 각광받는 알고리즘 XGBoost보다 학습시간이 짧고 메모리 사용량이 작음 작은 데이터(10,000건 이하)의 경우 과적합 발생 lightgbm.LGBMClassifier lightgbm.LGBMRegressor 2-5 로지스틱부터 LGBM까지 정확도 비교 정확도가 높아야 좋음 |
라이브 세션
| 머신러닝 심화 1회차 머신러닝 프로젝트 팁 Waterfall 학습(이론 중심)보단 Agile(문제 해결) 학습 방식 권장: 일단 그래프 하나 그려봐라 '우선 실행 - 사후 분석'의 방식으로 일단 해보기 팀 공유드라이브/환경 구축하기 협업: '모두가 동일한 경로에서 동일한 파일을 보는 것' 결과물 중심의 대시보드 구축: 프로젝트가 어디까지 왔나 확인 가능 진척율 관리 - 노션 기능 적극 활용 ex. 마일스톤 설정으로 진척률 가시화(타임라인 뷰, 보드 뷰) 실무적인 면에서 결과물 중심의 기록: 객관적 소통, 데이터 기반 피드백, 포트폴리오 자산화 등에서 우수 학습: 모델이 '정답'을 찾아가는 과정 손실 함수: 현재 모델이 얼마나 틀렸나(예측한 값과 정답 사이의 차) 경사 하강법: 손실 함수의 값을 최소화하기 위해 모델의 파라미터(가중치)를 조금씩 업데이트하는 알고리즘 피처 엔지니어링: 모델이 잘 학습할 수 있도록 데이터를 가공하는 것 (스케일링, 생성 등) 하이퍼파라미터: 모델이 학습을 시작하기 전에 '사용자(사람)'가 직접 설정해 주는 설정값 그리드 서치: 사람이 직접 설정해야 하는 값들을 격자(Grid) 형태의 후보군으로 미리 정해두고, 하나씩 대입하며 최상의 결과를 찾는 방식 시계열 데이터 등은 테스트 등에서 주의를 해야 함 과적합: 복잡한 모델을 사용했을 때 등 과소적합: 학습 데이터가 부족하거나, 데이터의 다양성이 떨어질 때 과적합 방지를 위해서 L1, L2 규제 등 교차 검증: 데이터 여러 번 쪼개어 번갈아 가며 학습과 검증 K-Fold 교차 검증 등 드롭아웃: 딥러닝에서 학습할 때 일부 '뉴런(신경망)'을 무작위로 쉬게 하는 것 머신러닝을 배우는 이유 사람이 놓치는 복잡한 패턴의 발견, '사후 처리'에서 '사전 예방'으로의 전환, 비정형 데이터의 활용 (시각적 검사의 자동화) 등 문제 정의, 목표 설정 데이터 수집, 전처리(정제, 변환 등) EDA 모델 유형 선택 및 학습: 일단 '베이스라인 모델' 생성 모델 평가 방법 하이퍼 파라미터 튜닝 모델 배포 및 유지 보수 |
3. 학습하며 겪었던 문제점& 에러 + 회고

3-1 문제점& 에러: X
3-2 회고:
1. 머리에 넣는게 많아서인지 요즘 잠이 부쩍 늘어났네요.
2. 머신러닝의 여러 모델을 공부하며 QAQC가 이런 것까지 해야 한다고?! 여러 생각이 드네요.
4. 내일 학습할 것은 무엇인지(기본적인 AI 진단퀴즈, 코드카타, TIL 제외)
- 목요일(25일): 머신러닝 심화 강의 마무리 , 라이브세션 머신러닝(2,3) 재수강, 개인공부

AI 시대를 돌파할 취업 솔루션 | 내일배움캠프
직무별 AI 활용 역량부터 인턴십까지. AI 시대를 돌파할 취업 솔루션, 스파르타클럽 내일배움캠프
nbcamp.spartaclub.kr
'[내일배움캠프 QAQC 부트캠프] > TIL' 카테고리의 다른 글
| [내일배움캠프 QAQC 부트캠프] 한 주의 마지막은 개인공부(33일차, 260626) (0) | 2026.06.26 |
|---|---|
| [내일배움캠프 QAQC 부트캠프] 머신러닝 심화 마무리(32일차, 260625) (0) | 2026.06.25 |
| [내일배움캠프 QAQC 부트캠프]머신러닝 기초 다지기(30일차, 260623) (0) | 2026.06.23 |
| [내일배움캠프 QAQC 부트캠프]기초통계 뽀개기(29일차, 260622) (0) | 2026.06.22 |
| [내일배움캠프 QAQC 부트캠프]기초통계&머신러닝(3)(28일차, 260619) (0) | 2026.06.19 |
