본문 바로가기
카테고리 없음

[AI] 챕터09 - 실습과 프로젝트

by 햄리뮤 2025. 7. 24.
반응형

공부할 챕터

챕터 주제 간단 설명
1 머신러닝이란 무엇인가 머신러닝의 정의, 동작 원리, AI와의 관계
2 머신러닝의 분류 지도학습, 비지도학습, 강화학습의 차이
3 데이터와 전처리 데이터가 왜 중요한가, 어떻게 다듬는가
4 특징(Feature)과 레이블(Label) 입력과 출력의 개념, 특징 추출
5 학습과 예측 모델 훈련(training), 예측(predict)의 의미
6 성능 평가 정확도, 정밀도, 재현율, F1 Score 등
7 대표 알고리즘 이해 회귀, 분류, 군집 등 알고리즘 소개
8 과적합과 일반화 학습을 너무 많이/적게 했을 때 문제
9 실습과 프로젝트 간단한 실전 예제, 모델 만들기

이제 간단한 실습을 하면서 익혀보자!

 

목표: 데이터를 문류하는 머신러닝 모델을 만들어보자!
- 꽃잎의 길이/너비 등으로 품종을 예측
사용 기술: pandas, scikit-learn
분류 모델: RandomForestClassifier

1. 데이터 불러오기

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.Series(iris.target)

X는 입력 데이터, y는 정답

2. 데이터 분할

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

80%는 학습용 20% 평가용

3. 모델학습

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)

4. 예측 및 평가

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)

print("정확도:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred, target_names=iris.target_names))

출력 예시

정확도: 1.0
              precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        10
  versicolor       1.00      1.00      1.00         9
   virginica       1.00      1.00      1.00        11

    accuracy                           1.00        30
   macro avg       1.00      1.00      1.00        30
weighted avg       1.00      1.00      1.00        30

5. 하이퍼파라미터 튜닝

from sklearn.model_selection import GridSearchCV

params = {
    'n_estimators': [50, 100, 200],
    'max_depth': [2, 4, 6]
}

grid = GridSearchCV(RandomForestClassifier(), param_grid=params, cv=5)
grid.fit(X_train, y_train)

print("최적의 파라미터:", grid.best_params_)

결과: 최적의 파라미터: {'max_depth': 2, 'n_estimators': 200}

6. 예측 결과 시각화

import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)

plt.scatter(X_reduced[:, 0], X_reduced[:, 1], c=y, cmap='viridis')
plt.title("Iris Dataset (PCA 2D)")
plt.xlabel("PC1")
plt.ylabel("PC2")
plt.colorbar()
plt.show()


자이제 기초는 끝났다 실무중심으로 돌아가서 심화 + 프로젝트를 해보자.

 

 

 

 

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의 들은 내용이 정리가 되었습니다.

그림들은 그림밑에 출처표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

댓글