001
오늘의 코드카타
37. 행렬의 덧셈
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
| arr1 | arr2 | return |
| [[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
| [[1],[2]] | [[3],[4]] | [[4],[6]] |
def solution(arr1, arr2):
return [[x + y for x, y in zip(z, w)] for z, w in zip(arr1, arr2)]
# 예전에 코드카타 풀면서 배웠던 zip 함수 오랜만에 다시 씀
☆ 작동 원리
1. 바깥쪽 zip: z에 arr1의 [1, 2] / w에 arr2의 [3, 4] / ...(반복)
2. 안쪽 zip: x에 [1, 2]의 1 / y에 [3, 4]의 3 → x + y / ...(반복)
3. 대괄호 2개([[ ]]): 안쪽 대괄호가 [4, 6]을 만들고, 바깥쪽 대괄호가 그걸 감싸쥼 → [[4, 6], [7, 9]]
002
오늘 학습한 내용
데이터 분석 심화 주차 D+2
[ 머신 러닝 기초 ]
어제 라이브 세션 들었던 거 다시 정리
1. 머신러닝?
- 정의: 컴퓨터가 데이터를 학습해서 스스로 패턴과 의미를 찾아내도록 하는 연구 분야
- 제조업에서의 역할: 품질 데이터 자동 분석, 공정 이상 탐지 및 예측, 결함률 감소 → 생산성 향상
2. 머신러닝 학습의 종류
1) 지도학습
정답(Label)이 있는 데이터를 사용해 학습하는 방법
입력 데이터(X)와 정답 데이터(Y)를 함께 학습
(1) 분류(Classification)
정해진 카테고리 중 하나를 예측하는 문제
- 이진 분류 : 정상/비정상처럼 두 가지 결과
- 다중 분류 : A/B/C 등 여러 결과
- 대표 모델



- 로지스틱 회귀 : 선형 결합을 이용해 사건 발생 확률을 0 ~ 1 사이로 예측
- 의사결정트리 ⭐(Like 스무고개) : 데이터를 여러 조건으로 반복 분할해 예측 or 의사결정 과정을 트리 구조로 표현
- SVM(서포트 벡터 머신) : 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다.
(2) 회귀(Regression)
연속적인 숫자 값을 예측하는 문제
- 대표 모델



- 선형 회귀 : y = ax + b
- 다항 회귀 : 독립변수 x와 종속변수 y 간의 관계가 x의 다항식
- 릿지 회귀 / 라쏘 회귀 (자세히 몰라도 됨)
- 랜덤 포레스트 회귀 : 훈련 과정에서 구성한 다수의 결정 트리로부터 부류(분류) 또는 평균 예측치(회귀 분석)를 출력함으로써 동작
- SVR
2) 비지도학습
정답(Label)이 없는 데이터를 활용하여 데이터 속 패턴이나 구조를 찾는 방법
데이터 간의 유사성과 차이를 파악
(1) 클러스터링 (군집 분석)
비슷한 특성을 가진 데이터끼리 그룹으로 묶는 방법

(2) 차원 축소(Dimensionality Reduction)
많은 변수 중 중요한 정보만 남기고 데이터를 압축하는 방법
(ex. 공정 센서 데이터가 수천 개 존재할 때, 핵심 정보만 추출하여 분석 효율 ↑)
3. Scikit-learn
: 파이썬 머신러닝 라이브러리
pip install scikit-learn
- 주요 기능
- 분류 및 회귀 모델
- 클러스터링 및 차원 축소
- 데이터 전처리
- 모델 평가
- 데이터 분할
4. 머신러닝 모델링 과정
1) 문제 정의
:지도학습? 비지도학습? 분류/회귀?
2) 데이터 전처리
결측치 처리 / 이상치 제거 / 데이터 타입 확인 / 정규화 / 피처 엔지니어링 (변수 선택 및 새로운 변수 생성 과정)
3) 데이터 분할
학습 데이터와 평가 데이터 분리
Train : 80% / Test : 20% 비율을 많이 사용
4) 모델 학습 및 평가
모델을 선택한 뒤 학습 데이터를 이용해 학습하고, 테스트 데이터로 성능을 확인
5) 하이퍼파라미터 튜닝
모델 성능 향상을 위해 사용자가 직접 설정하는 값을 조정하는 과정
같은 모델이라도 하이퍼파라미터 설정에 따라 성능이 크게 달라질 수 있다!
[ 기초 통계 ]
* 데이터 탐색 전 확인할 것 3가지
df.head()
df.describe()
df.info()
1. 확률변수 & 확률분포
1) 확률변수
: 어떤 시행의 결과를 숫자로 표현한 변수
(1) 이산형 확률변수 : 셀 수 있는 값을 가지는 변수
(2) 연속형 확률변수 : 실수 범위 내 무한한 값을 가지는 변수
import numpy as np
# 이산형: 하루 불량 개수
discrete = np.random.choice([0,1,2,3,4,5], size=100, p=[0.1,0.2,0.3,0.2,0.1,0.1])
# 연속형: 제품 길이 (정규분포 가정)
continuous = np.random.normal(loc=100, scale=5, size=100)
2) 확률분포
: 확률변수가 어떤 값을 가질 확률을 나타낸 규칙, 모든 확률의 합 = 1
2. PMF & PDF
1) PMF (확률질량함수)
이산형 데이터의 확률, "특정 값이 나올 확률"
2) PDF (확률밀도함수)
연속형 데이터의 확률, "구간의 확률" / PDF 그래프의 면적 = 확률

- 길이가 정확히 10.0000mm일 확률 (X)
- 길이가 9.8mm ~ 10.2mm 사이일 확률 (O)
3) KDE (커널 밀도 추정)
: 데이터만 가지고 PDF를 추정하는 방법
sns.kdeplot()
3. 대표적인 확률분포
1) 이항분포
: 성공 or 실패처럼 결과가 두 개뿐인 상황에서 사용 (베르누이 시행)
2) 포아송분포
: 특정 시간 또는 공간에서 발생하는 사건의 횟수
4. 정규분포 ★
: 품질관리에서 가장 많이 사용하는 분포
- 실제 제조업 품질 데이터도 정규분포를 따른다고 가정하는 경우가 많다!
- SPC 관리도 / Z-점수 해석 / 3시그마 개념
1) 68-95-99.7 법칙
- in 정규분포
- ±1σ → 약 68%
- ±2σ → 약 95%
- ±3σ → 약 99.7%
대부분의 데이터는 평균 근처에 몰려 있고 극단적인 값은 매우 적다.
2) 식스시그마
- ±6σ 범위 안에 거의 모든 데이터 포함
- 불량률 약 3.4ppm 수준
- 100만 개를 생산했을 때 불량품이 3~4개 정도만 발생하는 수준의 매우 우수한 공정을 의미!
5. Cp와 Cpk
1) Cp (공정능력지수)
공정이 허용 범위 안에서 얼마나 안정적으로 생산되는지 평가 (관리상한선 - 관리하한선 / 6시그마)
- Cp > 1.33 : 양호
- Cp < 1 : 개선 필요
Cp는 공정의 퍼짐(산포)만 평가
2) Cpk (공정성능지수)
Cp에 공정 중심 위치까지 고려한 지표
- Cpk > 1.33 : 안정적인 공정
- Cp는 높은데 Cpk가 낮음 → 정밀 but 중심 어긋
- Cp : 얼마나 정밀?
- Cpk : 얼마나 정밀하고 중심도 잘 맞는지?

실무에서는 Cpk를 더 중요하게 보는 경우가 많다고 한다!
6. 표준화 & 정규화
머신러닝에서 자주 등장하는 개념!
데이터마다 단위와 범위가 다르면 모델이 특정 변수만 중요하게 판단할 수 있기 때문에, 스케일을 맞춰줘야 한다.
1) 정규화
: 데이터를 0~1 범위로 압축

(x - min) / (max - min)
- 특징
- 값 범위 통일
- 이상치에 민감
2) 표준화
: 평균 0, 표준편차 1로 변환
(x - mean) / std
→ Z-score
- 특징
- 이상치 영향이 상대적으로 적음
- 데이터 분포 정보 유지
- 사용 예시: 선형회귀, 로지스틱 회귀, 머신러닝 모델 전반...
3) 정규화 vs 표준화
| 정규화 | 표준화 |
| 범위를 맞춤 (0~1) | 평균 기준으로 변환 |
| 0~1로 압축 | 평균 0, 표준편차 1 |
| 이상치에 민감 | 이상치에 (비교적) 강함 |
| MinMaxScaler | StandardScaler |
7. 이상치 탐지
이상치는 분석 결과를 왜곡할 수 있기 때문에 반드시 확인해야 한다.
1) Z-score 방식
: 평균에서 몇 표준편차 떨어져 있는지 계산
- 일반적으로 |Z| > 3 이면 이상치로 판단
8. 분포 시각화
- 히스토그램(데이터 분포 확인), 박스플롯(중앙값 / 사분위수 / 이상치 확인), 바이올린플롯(분포 형태 + 밀도 확인)



'Today I Learned' 카테고리의 다른 글
| [내일배움캠프 QA/QC 6기] TIL #029 (0) | 2026.06.22 |
|---|---|
| [내일배움캠프 QA/QC 6기] TIL #028 (0) | 2026.06.19 |
| [내일배움캠프 QA/QC 6기] TIL #026 데이터 분석 심화 주차 start (0) | 2026.06.17 |
| [내일배움캠프 QA/QC 6기] TIL #025 커리어 데이 (0) | 2026.06.16 |
| [내일배움캠프 QA/QC 6기] TIL #024 기초 프로젝트 끝!! (1) | 2026.06.15 |