JHJ
[내일배움캠프 QAQC 부트캠프]통계/머신러닝 찍먹(26일차, 260617) 본문
1. 오늘 학습 키워드:
기초통계, 머신러닝

2. 오늘 학습 한 내용을 나만의 언어로 정리하기:
통계학 기초
| 데이터 분석에서 '통계' - 데이터 기반 '의사결정'와 연결 통계는 데이터를 ~ 이해, 해석, 요약, 패턴 -> 추론과 결론 도출: 즉, 데이터 기반의 의사결정 |
| 기술통계: 데이터 요약/설명 평균, 중앙값, 분산, 표준편차 등 평균과 중앙값, 이상치의 영향 차이 有 분산: 데이터의 흩어짐 정도 표준편차: 분산의 제곱근,원데이터와 동일한 '단위' 추론통계: 표본을 통한 모집단 추정, 가설 검정 신뢰구간, 가설검정 등 데이터 일부를 통해 전체 추정 신뢰구간: 모집단의 평균이 특정 범위 내에 있을 것이라는 확률, 기본 95% 가설검정: 귀무가설(H0)과 대립가설(H1),P-value를 통해 기각여부 결정 |
| 위치추정: 데이터의 중심(위치)이 어딘지 평균, 중앙값이 대표적 코드 mean = np.mean(data) median = np.median(data) 변이추정: 데이터들이 서로 얼마나 다른지 분산, 표준편차, 범위 코드 variance = np.var(data) std_dev = np.std(data) data_range = np.max(data) - np.min(data) 히스토그램: 연속형 데이터의 분포를 막대로 표현 박스플롯: (25%, 중앙값, 75%)로 박스 구성, 최대값과 최소값으로 선 연장 코드 plt.hist(data, bins=5) plt.boxplot(data) 파이차트: 이진데이터(참/거짓)이 차지하는 비율 표현 우수 막대 그래프: 범주형 데이터의 분포를 막대로 표현 코드 data.plot(kind='bar') 산점도 코드 plt.scatter(A,B) 상관관계: 데이터 중 두 변수 간의 관계를 측정 -1이나 1에 가까워지면 강력한 상관관계 코드 correlation = np.corrcoef(A, B)[0, 1] 인과관계: 한 변수가 다른 변수에 미치는 영향 상관관계와는 다르게 원인, 결과가 분명해야 함 다변량 분석: 여러 변수 간의 관계를 분석 sns.pairplot(df) : 두 변수 간 관계를 시각화, 모든 경우의 수 df.corr(): 두 변수 간 상관관계계수 계산, 모든 경우의 수 sns.heatmap(df.corr()): 상관관계 히트맵화 |
머신러닝/라이브러리 기초
| AI⊃머신러닝⊃딥러닝 AI: 인간의 지능을 요구하는 업무를 수행하기 위한 시스템 머신러닝: 관측된 패턴을 기반으로 의사 결정을 하기 위한 알고리즘 데이터 수집과 처리 기술의 발전 - 대용량 데이터의 패턴을 인식 및 예측, 분류의 방법론 딥러닝: 인공신경망을 이용한 머신러닝 데이터 사이언스: 통계학/컴퓨터공학 기반 융합학문(AI 포괄) 데이터 분석: 데이터 집계, 통계 분석, 머신러닝 등을 포함한 행위 데이터를 기반으로 한 의사결정 희망 - 머신러닝의 발전 통계: 모집단과 표본, 추론 등 데이터 처리 기술의 발전, 저장매체 가격의 하락 등 이에 따라 머신러닝: 전체 데이터에서 패턴 파악하기 위한 방법 -> 발전 |
| 지도학습: 문제와 답을 알려주고 학습 --> 예측/분류 비지도학습: 답을 알려주지 않고 학습 --> 연관/군집 강화학습: 보상으로 행위를 강화하는 학습 --> 보상 다양한 분야에서 머신러닝 적용 첨언 데이터 분석에서 머신러닝이 필수는 아님 But 취직 시 머신러닝을 활용한 업무와 연관은 있음 + 이 강의만 듣는다고 머신러닝 데이터 사이언티스트가 될 수는 없음 |
| 머신러닝 실습 소프트웨어: VS code ,Colab, ANACONDA 가 대표적 Jupyter Notebook: Data Science를 위한 환경, 코드작성, 시각화, Markdown을 이용한 문서 작성 프로그래밍이 늘 좋은 것은 아님(ex. 라이브러리 호환성 등) 파일은 ipynb 형식으로 저장하는게 좋음 - colab으로 보든 비슷하기 떄문 좌측 메뉴바 Explorer: 탐색기, 작업공간 Search: 파일 찾기 Source Control: Git이라고 불리우는 코드 버전관리 툴(거의 쓸 일X) Run and Debug: 스크립트 실행, 디버깅 Extension: 확장프로그램 상단에도 File, Edit, Selection, View, Go, Run, Terminal ,Help 기능 有 VS CODE CELL 종류 Code cell: Python syntax 기반 Markdown cell: Markdown syntax 기반 단축키: CTL + Enter: 현재 셀 실행 Shift + Enter: 현재 셀 실행 후 다음 셀로 커서 옮기기 pip: Python 프로그래밍 언어를 위한 표준 패키지 관리자 터미널: pip install {라이브러리명} jupyter cell: 앞에 !를 붙여 터미널 대신 가능 !pip install pandas !pip uninstall pandas -y -y는 삭제에 대해 yes라는 의미 |
라이브 세션
| 통계 1회차 데이터는 답이 하나가 있는게 아님 - 소거 등으로 깎아내는 과정 통계 - 패턴을 객관적 수치화 -> 핵심 판단 데이터(vs감): 수치에 기반한 정확한 진단과 근거를 도출 제조업 예: 압연 공정의 제품 두께 편차 샘플 예측: 인장 강도 시험, 비교, 가설검정, 분산 분석(아노바) 데이터 종류 크게 수치형/범주형 작게 연속형, 이산형, 명목형, 순서형으로 분류 도수분포표 도수, 상대도수, 누적도수, 최대/최소값, 계급, 구간의 수, 구간의 폭 등 히스토그램화 관련 코드 s = pd.Series(data) plt.hist(s, bins=10, edgecolor='black') 대표값 평균의 함정: 마이클 조던(이상치)과 평균연봉(평균) 대표값 종류: 평균, 중앙값(이상치 존재시), 최빈값(데이터가 범주형이면) (산술)평균: mean, 총합을 평균으로 나눈 값(이상치의 영향 O) mean_value = np.mean(data) 중앙값: median, 오름차순, 데이터의 50%에 해당하는 값(이상치의 영향X) median_value = np.median(data) 최빈값: mode, 가장 자주 등장하는 값, 2개 이상 존재 가능 mode_value = stats.mode(data, keepdims=False) 메서드 함수로는 df["test"].mean() df["test"].median() df["test"].mode() 산포도 편차: 평균과의 차, 개별값과 평균 간의 거리 분산: 편차 제곱 평균, 데이터의 전체적 퍼짐 정도 표준편차: 분산 제곱근, 실제 변동성 해석 변동계수: 표준편차/평균, 다른 단위의 데이터 비교 산포도 코드 deviations = data - mean_value variance = np.mean(deviations ** 2) std_dev = np.sqrt(variance) cv = std_dev / mean_value 사분위수: 4등분했을 때 각각 25%, 50%, 75% 해당값 사분위 범위(IQR): Q3-Q1, 주로 이상치 탐지에 활용 사분위 코드 Q1 = np.percentile(data, 25) # 제1분위수 (Q1) Q2 = np.percentile(data, 50) # 제2분위수 (Q2, 중앙값) Q3 = np.percentile(data, 75) # 제3분위수 (Q3) IQR = Q3 - Q1 왜도: 분포의 좌우 비대칭성, 평균을 중심으로 좌우로 치우친 정도 - 양수(+): 우측 꼬리 길음, right skew - 0: 대칭적 (정규분포와 유사) - 음수(-): 좌측 꼬리 길음, left skew 첨도: 분포의 뾰족한 정도, 데이터의 분포가 정규분포보다 더 뾰족한지 기본 값은 3이며, 엑셀이나 파이썬에서는 편의를 위해 0을 기준 - 초과 첨도 양수(+): 정규분포보다 뾰족함 ( 첨도 > 3) - 초과 첨도 0: 정규분포와 유사 ( 첨도 =3 ) - 초과 첨도 음수(-): 정규분포보다 평평함 ( 첨도 < 3) 코드 skewness = skew(data) kurt = kurtosis(data) 정규분포: 평균을 중심으로 좌우 대칭 곡선은 각 확률값을 나타내며, 모두 더하면 1 평균 0, 분산 1을 가지는 경우, 표준정규분포 koreanize maplotlib 라이브러리 --> 별도로 폰트 설정할 필요X 사용예시 ----------------------------------- #!pip install koreanize-matplotlib import numpy as np import koreanize_matplotlib import matplotlib.pyplot as plt import seaborn as sns # KDE 그래프 그리기 (histplot 활용) plt.figure(figsize=(10, 6)) sns.kdeplot(data, color='red', linewidth=2, label="KDE (Estimated PDF)") plt.title("KDE (Kernel Density Estimation)", fontsize=14) plt.xlabel("값", fontsize=12) plt.ylabel("밀도", fontsize=12) plt.legend() plt.grid() plt.show() ----------------------------------- |
| 머신러닝 머신러닝: 기계가 학습하고 스스로 패턴을 찾아내 적절한 작업을 수행하도록 학습하는 알고리즘 AI: 인간처럼 학습/추론 할 수 있도록 만들어진 프로그램 머신러닝: 데이터를 활용해 학습할 수 있는 알고리즘 딥러닝: 인공 신경망을 이용해 거대 데이터셋 학습 제조업: 품질 자동 분석, 공정 이상 탐지/예측, 결함률 감소/생산성 향상 등 머신러닝 학습의 종류 지도 학습: 회귀/분류, 문제와 정답 알려주고 비지도 학습: 군집/차원 축소,답을 가르쳐주지 않고 강화 학습: 보상을 최대화하는 방향으로 지도 학습: 분류 입력 데이터: 레이블(정답)이 포함된 데이터 필요 츨력 데이터:입력 데이터를 특정 범주를 분류한 결과 알고리즘: 로지스틱 회귀, 의사결정 특징 등 분류의 주요 유형 이진 분류: 데이터를 2개의 카테고리로 분류(ex. 정상/비정상) 다중 분류: 데이터를 3개 이상으로 분류(ex. 성적 등) 로지스틱 회귀(이진), 의사결정 트리(트리 형식), 서포트 벡터 머신(경계선) 회귀: 데이터 기반 연속적인 숫자 값 예측 선형회귀: 데이터가 직선 형태 분포라 가정 다중회귀: 데이터를 비선형 모델링할 떄 사용 ex. 곡선 릿지 회귀/라쏘 회귀: 규제(패널티)를 추가한 선형 회귀, 과적합 현상 방지 서포트 벡터 회귀, 결정 트리 회귀/랜덤 포레스트 회귀, 딥러닝 기반 회귀 등 비지도학습: 정의: 레이블(답) 없는 데이터 분석 -> 패턴 찾기, 목적: 내부의 숨겨진 구조/특징 -> 알지못한 새로운 인사이트 특징: 유사성과 차이 측정 등 클러스터링(군집 분석): 데이터를 유사한 그룹으로 묶기 K-Means, DBSCAN, 계층적 클러스터링 등의 알고리즘 차원축소: 데이터를 간결화하고 중요한 특징 남기기 PCA , t-SNE, UMAP 등의 알고리즘 강화학습: 보상을 통해 행위 강화를 하는 학습 Scikit-learn(사이킷런) 라이브러리 파이썬을 대표하는 머신러닝 분석 라이브러리 지도 학습, 비지도 학습, 전처리, 모델 평가, 데이터 분할 등이 가능 무겁기에 from ~ import ~ 으로 일부만 호출하는 것을 추천 머신러닝 모델링 문제 정의: 가설/모델 설정 데이터 전처리: 데이터 수집, 데이터 클리닝, 피쳐 엔지니어링, 데이터 분할 등 모델링: 모델 선택, 학습, 테스트/예측, 평가 |
코드카타
알고리즘
| 72 - 달리기 경주 def solution(players, callings): #딕셔너리 제작 player_indices = {player: i for i, player in enumerate(players)} # 1. callings 을 쭉 돌면서 안에 존재하는 값을 찾기 for i in callings: A = player_indices[i] B = A - 1 B_name = players[B] # 2. 값의 인덱스와 앞 값의 인덱스를 변경 #players 내에서 변경 players[A], players[B] = players[B], players[A] #딕셔너리 내에서 변경 player_indices[i] = B player_indices[B_name] = A return players |
SQL
| 36 - 보호소에서 중성화한 동물 SELECT A.ANIMAL_ID , A.ANIMAL_TYPE, A.NAME FROM ANIMAL_INS AS A INNER JOIN ANIMAL_OUTS AS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE A.SEX_UPON_INTAKE LIKE 'Intact%' AND (B.SEX_UPON_OUTCOME LIKE 'Spayed%' OR B.SEX_UPON_OUTCOME LIKE 'Neutered%') ORDER BY A.ANIMAL_ID |
| 37 - 조건에 맞는 도서와 저자 리스트 출력하기 SELECT A.BOOK_ID, B.AUTHOR_NAME, A.PUBLISHED_DATE FROM BOOK AS A INNER JOIN AUTHOR AS B ON A.AUTHOR_ID = B.AUTHOR_ID WHERE CATEGORY = '경제' ORDER BY A.PUBLISHED_DATE |
| 38 - 조건별로 분류하여 주문상태 출력하기 SELECT ORDER_ID, PRODUCT_ID, OUT_DATE, CASE WHEN OUT_DATE IS NULL THEN '출고미정' WHEN OUT_DATE <= '2022-05-01' THEN '출고완료' ELSE '출고대기' END AS '출고여부' FROM FOOD_ORDER ORDER BY ORDER_ID |
| 39 - 성분으로 구분한 아이스크림 총 주문량 SELECT B.INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF AS A INNER JOIN ICECREAM_INFO AS B ON A.FLAVOR = B.FLAVOR GROUP BY B.INGREDIENT_TYPE ORDER BY A.TOTAL_ORDER |
| 40 - 루시와 엘라 찾기 SELECT ANIMAL_ID,NAME,SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID |
3. 학습하며 겪었던 문제점& 에러 + 회고

3-1 문제점& 에러: X
3-2 회고: 비슷한 내용이 있다는 둘째치고 일단 양이 너무 많다.
4. 내일 학습할 것은 무엇인지(기본적인 AI 진단퀴즈, 코드카타, TIL 제외)
- 목요일(18일): 라이브 세션 참여, 강의수강(통계 2강, 머신러닝 - 선형회귀), 어학공부

'[내일배움캠프 QAQC 부트캠프] > TIL' 카테고리의 다른 글
| [내일배움캠프 QAQC 부트캠프]기초통계&머신러닝(3)(28일차, 260619) (0) | 2026.06.19 |
|---|---|
| [내일배움캠프 QAQC 부트캠프]기초통계&머신러닝(2)(27일차, 260618) (0) | 2026.06.18 |
| [내일배움캠프 QAQC 부트캠프]기초 프로젝트 - 커리어데이(25일차, 260616) (0) | 2026.06.16 |
| [내일배움캠프 QAQC 부트캠프]기초 프로젝트 - 타임머신 발명이 시급합니다!(24일차, 260615) (0) | 2026.06.15 |
| [내일배움캠프 QAQC 부트캠프]기초 프로젝트 - 파일명 끝에 1이 붙는 이유(23일차, 260612) (0) | 2026.06.12 |