TIL(Today I Learned)
1️⃣통계학 기초 Chapter.1
데이터 분석에 있어 통계가 중요한 이유
- 데이터 분석에서 통계는 데이터를 이해, 해석하는데 중요한 역할을 한다.
- 데이터를 요약하고 패턴을 발견할 수 있다.
- 추론을 통한 결론 도출화를 돕는다.
📍즉, 데이터 기반의 의사결정을 내릴 수 있다.
기술통계와 추론통계
기술통계: 데이터를 요약하고 설명하는 통계
- 주로 평균, 중앙값, 분산, 표준편차 등을 사용
- 평균
- 데이터의 대표값을 나타내는 값
- 모든 데이터를 더한 후 데이터의 개수로 나누어 계산
- 일반적인 경향을 파악하는데 유용
- 중앙값
- 데이터셋을 크기 순으로 정렬했을 때 중앙에 위치한 값
- 이상치(예외적인 값)에 영양을 덜 받기에 중심 경향을 나타냄
- 분산
- 데이터 값들이 평균으로부터 얼마나 떨어져있는지 나타내는 척도, 데이터의 흩어짐 정도
- 분산이 크면 데이터가 넓게 퍼져있고, 작으면 데이터가 평균에 가깝게 위치
- 각 데이터 값에서 평균을 뺀 값을 제곱한 뒤 모두 더하고 데이터의 개수로 나눈다.
- 표준편차
- 데이터 값들이 평균에서 얼마나 떨어져있는지 나타내는 통계적 척도
- 분산의 제곱근을 취하여 계산
- 데이터의 변동성을 측정하며, 값이 클수록 평균으로부터 떨어져있음을 의미
- 분산과 표준편차의 관계
- 동일하게 데이터의 변동성을 나타내는 두 가지 주요 척도
- 표준편차는 분산의 제곱근
- 데이터를 특정 대표값으로 요약 ➡️ 데이터에 대한 특징을 간단하고 쉽게 알 수 있음
📍데이터 중 예외(이상치)의 존재 가능성을 인지해야 함
추론통계: 표본데이터를 통한 모집단의 특정성을 추정하고 가설을 검정하는 통계
- 주로 신뢰구간, 가설검정 등을 사용
- 신뢰구간
- 모집단의 평균이 특정 범위 내에 있을 것이라는 확률
- 일반적으로 95% 신뢰구간이 사용되며 이는 모집단 평균이 95% 확률로 이 구간 내에 있음을 의미
- 가설검정
- 귀무가설: 검증하고자 하는 가설이 틀렸음을 나타내는 기본 가설
- 대립가설: 반대 가설로 주장하는 바를 나타냄(변화나 효과가 있다.)
- p-value: 유의 확률또는 p-값은 귀무가설이 맞다고 가정할 때 얻은 결과보다 극단적인 결과가 실제로 관측될 확률
- 데이터의 일부를 통해 전체를 추정
다양한 데이터 분석 방법
1️⃣위치추정
데이터의 중심을 확인하는 방법
- 평균, 중앙값이 대표적
2️⃣변이추정
데이터들이 서로 얼마나 다른지 확인하는 방법
- 분산, 표준편차, 범위(range) 등을 활용
- 📍범위란? 데이터셋에서 가장 큰 값과 가장 작은 값의 차이를 나타내는 분포의 측도
- 👉 데이터가 어느정도 변동성을 가지는지 파악
3️⃣데이터 분포 탐색
데이터의 값들이 어떻게 이루어져있는지 확인
- 히스토그램과 박스플롯이 대표적
4️⃣이진 데이터와 범주 데이터
데이터들이 서로 얼마나 다른지 확인
- 최빈값(개수가 제일 많은 값)을 주로 사용
- 파이차트와 막대그래프는 이진데이터와 범주데이터의 분포를 표현하는 대표적 방법
5️⃣상관관계
데이터들끼리 서로 관련이 있는지 확인
- 상관계수는 두 변수의 관계를 측정하는 방법
- -1이나 1에 가까워지면 강력한 상관관계
- -0.5나 0.5는 중간정도의 상관관계
- 0에 가까울수록 상관관계가 없다.
6️⃣인과관계와 상관관계의 차이
인과관계는 상관관계와 다르게 원인, 결과가 분명해야 한다.
- 상관관계는 두 변수 간의 관계를 나타낸다.
- 인과관계는 한 변수가 다른 변수에 미치는 영향을 나타낸다.
7️⃣두 개 이상의 변수 탐색
여러 데이터들끼리 서로 관련이 있는지 확인
- 다변량 분석: 여러 변수간의 관계를 분석하는 방법
2️⃣머신러닝 기초
머신러닝이란?
📍머신러닝(Machine Learning, ML)은 기술 통계 등을 통하여 집계된 정보로 의사결정을 했던 과거와 달리 데이터 수집과 처리 기술의 발전으로 대용량 데이터의 패턴을 인식하고 이를 바탕으로 예측, 분류하는 방법론을 말한다.
머신러닝의 종류

학습계획
- 숫자를 맞추는 방법: 회귀 분석의 원리
- 범주를 맞추는 방법: 분류 분석의 원리
- 머신러닝 전체 프로세스
- 더 많은 머신러닝 모델
- 딥러닝의 원리
3️⃣Python 알고리즘 주요 문제
문제1
- 문제 설명: 코딩테스트 연습 - 대충 만든 자판 | 프로그래머스 스쿨
- 제한 사항
- 1 ≤ keymap의 길이 ≤ 100
- 1 ≤ keymap의 원소의 길이 ≤ 100
- keymap[i]는 i + 1번 키를 눌렀을 때 순서대로 바뀌는 문자를 의미합니다.
- 예를 들어 keymap[0] = "ABACD" 인 경우 1번 키를 한 번 누르면 A, 두 번 누르면 B, 세 번 누르면 A 가 됩니다.
- keymap의 원소의 길이는 서로 다를 수 있습니다.
- keymap의 원소는 알파벳 대문자로만 이루어져 있습니다.
- 1 ≤ targets의 길이 ≤ 100
- 1 ≤ targets의 원소의 길이 ≤ 100
- targets의 원소는 알파벳 대문자로만 이루어져 있습니다.
- 1 ≤ keymap의 길이 ≤ 100
- 입출력 예

- 문제 접근
- 딕셔너리를 통해 key값에 대응되는 알파벳에 따른 인덱스 값을 저장한다.
- 조건문을 통해 최소값으로 대입한다.
- target을 순회하며 딕셔너리에 대응되는 값이 없을 때 -1을 반환한다.
- 예외일 시 키 값에 대응되는 밸류값을 total에 대입한다.
- 코드
def solution(keymap, targets):
key_dict = {}
for key in keymap:
for i, c in enumerate(key):
press = i+1
if c not in key_dict:
key_dict[c] = press
else:
key_dict[c] = min(key_dict[c],press)
answer = []
for target in targets:
total = 0
for c in target:
if c not in key_dict:
total = -1
break
total += key_dict[c]
answer.append(total)
return answer
- Pythonic
def solution(keymap, targets):
key_dict = {}
for key in keymap:
for i, c in enumerate(key):
key_dict[c] = min(key_dict.get(c, float('inf')), i + 1)
answer = []
for target in targets:
try:
answer.append(sum(key_dict[c] for c in target))
except KeyError:
answer.append(-1)
return answer
📍key_dict[c] = min(key_dict.get(c, float('inf')), i + 1)
- "c가 딕셔너리에 있으면 그 값 가져오고, 없으면 무한대"
💡 float('inf')를 쓰는 이유
- 처음 등장할 때 무조건 새 값이 들어가게 하려고
💡 느낀점
팀 프로젝트를 마치고 심화된 데이터 분석과 통계학 강의를 시작하며 프로젝트를 진행하며 공부한 내용과 교육과정에 포함된 내용이 있어서 이해하기 쉬웠다. 머신러닝의 기초의 경우 처음 접하는 내용이라 추후에 진도를 나가며 오전 알고리즘 풀이 이후에 복습시간을 가질 예정이다. 알고리즘 문제풀이의 레벨이 오를수록 문제의 지문에서 요구하는 바를 도출해내고 응용할 함수를 선택하는 것이 어려워졌다. 문제를 단계적으로 푸는 습관을 들이고 온전히 이해된 후에 정답을 적기 시작할 예정이다.
'데이터 분석 심화' 카테고리의 다른 글
| Chapter.4 데이터 분석 심화(6) (1) | 2026.04.20 |
|---|---|
| Chapter.4 데이터 분석 심화(5) (0) | 2026.04.17 |
| Chapter.4 데이터 분석 심화(4) (0) | 2026.04.16 |
| Chapter.4 데이터 분석 심화(3) (1) | 2026.04.15 |
| Chapter.4 데이터 분석 심화(2) (1) | 2026.04.14 |