포스트

[Python 100일 챌린지] Day 91 - 머신러닝이란?

[Python 100일 챌린지] Day 91 - 머신러닝이란?

드디어 Phase 10! AI의 세계로! 100일 챌린지의 마지막 관문입니다. 머신러닝이 뭔지, 어떻게 작동하는지 쉽게 알아봅시다. “AI가 어떻게 학습하는가?” 궁금하셨죠? 오늘부터 직접 만들어봅니다!

(20분 완독 ⭐⭐)

🎯 오늘의 학습 목표

📚 사전 지식

  • Day 66: Pandas DataFrame 기초
  • Day 67: 데이터 읽기
  • 기본적인 수학 개념 (평균, 그래프)

🎯 학습 목표 1: 머신러닝이 무엇인지 이해하기

한 줄 요약

머신러닝 = 컴퓨터가 데이터로부터 스스로 배우는 기술

전통적 프로그래밍 vs 머신러닝

전통적 프로그래밍

1
2
3
4
5
6
7
8
9
10
# 전통적 방식: 규칙을 사람이 직접 작성
def is_spam(email):
    spam_words = ['광고', '무료', '대박']
    for word in spam_words:
        if word in email:
            return True
    return False

print(is_spam("무료 이벤트!"))  # True
print(is_spam("안녕하세요"))    # False

문제점:

  • 모든 규칙을 사람이 직접 작성해야 함
  • 새로운 패턴이 나타나면 코드를 수정해야 함
  • 복잡한 문제는 규칙을 만들기 어려움

머신러닝 방식

1
2
3
4
5
# 머신러닝 방식: 데이터로부터 학습
# (의사 코드 - 개념 이해용)
model = MachineLearning()
model.learn(training_data)  # 과거 데이터로 학습
prediction = model.predict(new_email)  # 새로운 데이터 예측

장점:

  • 데이터만 주면 알아서 패턴을 찾음
  • 새로운 데이터에도 잘 대응
  • 복잡한 문제도 해결 가능

실생활 예시

분야 전통적 방식 머신러닝 방식
스팸 필터 금지 단어 리스트 과거 스팸 메일로부터 학습
날씨 예측 간단한 공식 수십 년 날씨 데이터로 학습
얼굴 인식 불가능에 가까움 수백만 얼굴 사진으로 학습
번역 단어별 치환 수억 개 번역 쌍으로 학습

🎯 학습 목표 2: 지도 학습과 비지도 학습 구분하기

지도 학습 (Supervised Learning)

선생님이 가르쳐주는 것처럼 학습

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 지도 학습 예시
training_data = [
    # (특징, 정답)
    ([평수:85, 방3, 강남], 가격:10),
    ([평수:60, 방2, 강북], 가격:5),
    ([평수:100, 방4, 강남], 가격:15),
]

# 컴퓨터가 학습: "평수가 크고 강남이면 비싸구나!"
model.learn(training_data)

# 예측
new_house = [평수:75, 방3, 강남]
predicted_price = model.predict(new_house)  # 약 9억?

특징:

  • 정답(레이블)이 있는 데이터로 학습
  • “이것이 정답이야”라고 알려주며 학습
  • 예: 집값 예측, 스팸 분류, 손글씨 인식

비지도 학습 (Unsupervised Learning)

스스로 패턴을 찾는 학습

1
2
3
4
5
6
7
8
9
10
11
# 비지도 학습 예시
customers = [
    [나이:25, 구매금액:10만원],
    [나이:26, 구매금액:15만원],
    [나이:55, 구매금액:100만원],
    [나이:60, 구매금액:120만원],
]

# 컴퓨터가 스스로 그룹을 찾음
groups = model.find_groups(customers)
# 결과: 그룹1(젊은층, 소액), 그룹2(중년층, 고액)

특징:

  • 정답 없이 학습
  • 데이터 속 숨겨진 패턴을 찾음
  • 예: 고객 세분화, 추천 시스템

비교표

구분 지도 학습 비지도 학습
데이터 정답 포함 정답 없음
목표 예측하기 패턴 찾기
예시 집값 예측, 이미지 분류 고객 그룹화, 이상 탐지
난이도 상대적으로 쉬움 상대적으로 어려움

🎯 학습 목표 3: 회귀와 분류의 차이 알기

회귀 (Regression)

숫자를 예측하는 문제

1
2
3
4
5
# 회귀 예시: 집값 예측
features = [평수, 방개수, 위치]
target = 가격  # 연속적인 숫자 (3억, 5.5억, 10억...)

# 결과: 8.7억원 (구체적인 숫자)

특징:

  • 결과가 연속적인 숫자
  • “얼마나?”를 답하는 문제
  • 예: 집값, 주가, 온도, 매출액

분류 (Classification)

범주를 예측하는 문제

1
2
3
4
5
# 분류 예시: 스팸 판별
features = [발신자, 단어, 링크개수]
target = 스팸여부  # 카테고리 (스팸 or 정상)

# 결과: 스팸 (명확한 범주)

특징:

  • 결과가 카테고리
  • “어느 그룹?”을 답하는 문제
  • 예: 스팸/정상, 합격/불합격, 고양이/강아지

비교 다이어그램

graph TD
    A[머신러닝 문제] --> B{결과가 숫자?}
    B -->|Yes| C[회귀<br/>예: 집값 8.7억]
    B -->|No| D[분류<br/>예: 스팸/정상]

    C --> E[선형 회귀<br/>다항 회귀<br/>등]
    D --> F[로지스틱 회귀<br/>의사결정나무<br/>등]

실전 문제 구분하기

문제 유형 이유
내일 주가는? 회귀 구체적 숫자 예측
이 이메일은 스팸? 분류 스팸/정상 구분
학생 성적 예측 회귀 점수(숫자) 예측
합격 여부 예측 분류 합격/불합격 구분
내년 매출은? 회귀 매출액(숫자) 예측
고양이 vs 강아지 분류 동물 종류 구분

💻 간단한 개념 확인

예제: 머신러닝 개념 퀴즈

1
2
3
4
5
6
7
8
9
10
11
12
13
# 다음 문제들이 회귀인지 분류인지 맞춰보세요!

problems = {
    "아파트 가격 예측": "회귀",  # 숫자 예측
    "스팸 메일 판별": "분류",    # 스팸/정상 구분
    "내일 기온 예측": "회귀",    # 온도(숫자) 예측
    "과일 종류 구분": "분류",    # 사과/바나나/오렌지
    "주식 가격 예측": "회귀",    # 주가(숫자) 예측
    "암 진단": "분류",           # 양성/음성 구분
}

for problem, answer in problems.items():
    print(f"{problem}: {answer}")

출력:

1
2
3
4
5
6
아파트 가격 예측: 회귀
스팸 메일 판별: 분류
내일 기온 예측: 회귀
과일 종류 구분: 분류
주식 가격 예측: 회귀
암 진단: 분류

🎓 머신러닝의 작동 원리

3단계 프로세스

graph LR
    A[1. 데이터 수집] --> B[2. 모델 학습]
    B --> C[3. 예측]

    A1[과거 데이터<br/>집 정보 + 가격] --> A
    B1[패턴 찾기<br/>평수↑ = 가격↑] --> B
    C1[새 집 가격<br/>예측하기] --> C

실제 예시: 집값 예측

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. 데이터 수집
training_data = """
평수  방개수  강남여부  가격(억)
60    2      0        5
85    3      1        10
100   4      1        15
70    3      0        6
"""

# 2. 모델 학습 (다음 시간에 자세히!)
# model.fit(features, prices)
# 컴퓨터: "평수가 10 늘면 가격이 1.2억 오르네!"

# 3. 예측
new_house = [평수:75, :3, 강남:1]
predicted_price = model.predict(new_house)
# 예측: 약 9억

📊 머신러닝 알고리즘 지도

Phase 10에서 배울 내용들을 미리 보세요!

graph TD
    A[머신러닝] --> B[지도 학습]
    A --> C[비지도 학습]

    B --> D[회귀]
    B --> E[분류]

    D --> F[선형 회귀<br/>Day 94]
    E --> G[로지스틱 회귀<br/>Day 95]

    C --> H[군집화<br/>고급 주제]
    C --> I[차원 축소<br/>고급 주제]

    style F fill:#90EE90
    style G fill:#90EE90

🌟 왜 지금 머신러닝을 배워야 할까?

1. AI 시대의 필수 기술

  • ChatGPT, MidJourney 등 모두 머신러닝 기반
  • 자동화, 추천, 예측 등 모든 곳에 활용
  • 비전공자도 충분히 배울 수 있음!

2. 취업 시장의 수요

1
2
3
데이터 분석가: 평균 연봉 5000만원+
머신러닝 엔지니어: 평균 연봉 7000만원+
AI 연구원: 평균 연봉 1억원+

3. 실무 자동화

1
2
3
4
5
# 머신러닝으로 자동화 가능한 업무들
- 고객 이탈 예측  미리 대응
- 매출 예측  재고 관리
- 이상 거래 탐지  사기 방지
- 문서 분류  업무 효율화

💡 실무 활용 사례

1. Netflix 추천 시스템

1
2
3
4
5
# Netflix는 어떻게 추천할까?
user_history = ["액션 영화 10편", "로맨스 2편"]
similar_users = find_similar_users(user_history)
recommended = get_what_they_watched(similar_users)
# "이 사용자도 액션 좋아할 거야!"

2. 은행 대출 심사

1
2
3
4
5
6
7
8
# 대출 승인 자동화
customer_info = {
    '소득': 5000만원,
    '신용점수': 800,
    '대출이력': '양호'
}
approval_probability = model.predict(customer_info)
# 승인 확률: 95%

3. 이미지 인식

1
2
3
4
# 사진 속 물체 인식
image = load_image("photo.jpg")
objects = model.detect(image)
# 결과: ["고양이", "소파", "화분"]

⚠️ 초보자를 위한 팁

Tip 1: 완벽하게 이해하려 하지 마세요

괜찮아요!

  • 수학 공식 몰라도 됩니다
  • 이론보다 실습이 중요해요
  • 코드 돌려보고 결과 확인하면 됩니다

Tip 2: 100% 정확도는 불가능

1
2
3
# 머신러닝 모델은 확률 게임
accuracy = 0.95  # 95% 정확도
# 100%는 거의 불가능! 95%면 매우 좋은 것!

Tip 3: 데이터가 가장 중요

1
2
좋은 알고리즘 + 나쁜 데이터 = 나쁜 결과 ❌
보통 알고리즘 + 좋은 데이터 = 좋은 결과 ✅

📝 오늘 배운 내용 정리

  1. 머신러닝: 컴퓨터가 데이터로부터 스스로 배우는 기술
  2. 지도 학습: 정답이 있는 데이터로 학습 (예: 집값 예측)
  3. 비지도 학습: 정답 없이 패턴 찾기 (예: 고객 그룹화)
  4. 회귀: 숫자 예측 (예: 집값, 주가)
  5. 분류: 범주 예측 (예: 스팸/정상)

🤔 자주 묻는 질문 (FAQ)

Q1: 수학을 잘 못하는데 머신러닝을 배울 수 있나요?

A: 네! 충분히 가능합니다. 이 챌린지에서는 복잡한 수학 없이 scikit-learn 라이브러리를 사용해서 머신러닝을 배웁니다. 중학교 수준의 수학(평균, 그래프)만 알아도 괜찮아요. 나중에 딥러닝을 공부할 때 수학이 더 필요하지만, 지금은 걱정하지 마세요!

Q2: 머신러닝과 인공지능, 딥러닝의 차이는 뭔가요?

A:

  • 인공지능 (AI): 가장 큰 개념. 컴퓨터가 사람처럼 생각하는 모든 기술
  • 머신러닝 (ML): AI의 한 분야. 데이터로 학습하는 방법
  • 딥러닝 (DL): 머신러닝의 한 분야. 뇌의 신경망을 모방

쉽게 말하면: AI > 머신러닝 > 딥러닝 순서로 포함 관계입니다!

Q3: Python만 배웠는데 머신러닝을 할 수 있나요?

A: 물론입니다! Python과 scikit-learn만 있으면 충분합니다. 오히려 Python은 머신러닝에 가장 많이 사용되는 언어예요. 여러분은 이미 90일 동안 Python을 배웠으니 준비 완료입니다!

Q4: 이 과정을 마치면 AI 엔지니어가 될 수 있나요?

A: Phase 10은 입문 과정입니다. AI 엔지니어가 되려면 추가로 딥러닝, 컴퓨터 비전, 자연어 처리 등을 더 배워야 해요. 하지만 이 10일이 튼튼한 기초가 됩니다. 집을 지을 때도 기초가 가장 중요하죠! 🏠

🧪 연습 문제

문제 1: 회귀 vs 분류 구분하기

다음 문제들이 회귀인지 분류인지 구분하세요:

  1. 내일 비올 확률 예측
  2. 고양이/강아지 구분
  3. 집값 예측
  4. 합격/불합격 판정
  5. 내년 매출액 예측
✅ 정답
  1. 회귀 - 확률(숫자)을 예측
  2. 분류 - 고양이/강아지 범주 구분
  3. 회귀 - 가격(숫자)을 예측
  4. 분류 - 합격/불합격 범주 구분
  5. 회귀 - 매출액(숫자)을 예측

문제 2: 지도 vs 비지도 학습

다음 중 지도 학습인 것은?

A) 정답 레이블이 있는 데이터로 학습 B) 정답 없이 스스로 패턴 찾기 C) 고객을 자동으로 그룹화

✅ 정답

A) 정답 레이블이 있는 데이터로 학습

지도 학습은 “이것이 정답이야”라고 알려주며 학습합니다.


📚 다음 학습

Day 92: scikit-learn 설치하기 ⭐⭐

내일은 Python 머신러닝의 대표 라이브러리인 scikit-learn을 설치하고 첫 모델을 만들어봅니다!


“머신러닝은 마법이 아니라 통계입니다. 하지만 충분히 발전한 통계는 마법과 구분할 수 없습니다!” 🚀

Day 91/100 Phase 10: AI/ML 입문 #100DaysOfPython
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.