반응형
3주차: AI를 향한 첫걸음
기본기를 다졌으니, 이제부터 진짜 AI의 세계로 한 걸음 내디딜 시간입니다. 3주차 목표는 다른 개발자들이 만들어 둔 강력한 'AI 도구(라이브러리)'를 내 파이썬 코드에 가져와 사용하는 방법을 배우는 것입니다.
1. 라이브러리(Library)와 pip
- 라이브러리/패키지: 특정 기능들을 미리 만들어 둔 코드 모음입니다. 우리는 이걸 가져와서 복잡한 기능을 쉽게 구현할 수 있습니다. AI 개발은 이런 라이브러리 없이는 거의 불가능합니다.
pip: 파이썬의 공식 패키지 관리자입니다. 필요한 라이브러리를 설치, 업그레이드, 삭제할 때 사용하는 명령어입니다.
pip 사용법 (명령 프롬프트 cmd에서 실행):
# 특정 라이브러리 설치하기
pip install 라이브러리이름
# 설치된 라이브러리 목록 보기
pip list
# 라이브러리 삭제하기
pip uninstall 라이브러리이름
2. 첫 AI 라이브러리: Scikit-Learn
- Scikit-Learn (사이킷런): 가장 대표적인 머신러닝 라이브러리 중 하나입니다. 분류, 회귀, 클러스터링 등 수많은 머신러닝 알고리즘과 학습용 데이터셋을 제공하여 AI/머신러닝 입문용으로 가장 좋습니다.
Scikit-learn 설치하기:
pip install scikit-learn
3. 내 생애 첫 머신러닝 코드: 붓꽃 품종 분류하기
Scikit-learn에 내장된 '붓꽃(Iris)' 데이터를 이용해, 꽃잎과 꽃받침의 크기를 보고 어떤 품종의 붓꽃인지 예측하는 간단한 AI 모델을 만들어 보겠습니다.
- 분류(Classification): AI의 대표적인 작업 중 하나로, 주어진 데이터를 정해진 카테고리(품종 A, B, C 등) 중 하나로 구분하는 문제입니다.
# 1. 필요한 라이브러리와 도구들을 가져옵니다.
from sklearn.datasets import load_iris # 붓꽃 데이터셋
from sklearn.tree import DecisionTreeClassifier # 결정 트리 분류기 모델
from sklearn.model_selection import train_test_split # 학습/테스트 데이터 분리 도구
from sklearn.metrics import accuracy_score # 정확도 측정 도구
# 2. 데이터 준비하기
iris_data = load_iris()
X = iris_data.data # 문제지 (꽃의 특징 데이터)
y = iris_data.target # 정답지 (꽃의 품종)
# 3. 학습용 데이터와 테스트용 데이터로 분리하기
# AI를 평가하려면, 공부한 문제(학습용)가 아닌 새로운 문제(테스트용)로 시험을 봐야 합니다.
# 80%는 학습에 쓰고, 20%는 나중에 모델을 평가하는 데 사용합니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 4. AI 모델(결정 트리) 생성 및 학습시키기
# DecisionTreeClassifier는 "만약 A가 B보다 크면 C 그룹이다" 와 같은 질문(규칙)들을
# 스스로 만들어나가는 똑똑한 모델입니다.
model = DecisionTreeClassifier()
# .fit() 메소드는 모델에게 문제지(X_train)와 정답지(y_train)를 주고 학습(fit)을 시키는 과정입니다.
model.fit(X_train, y_train)
print("AI 모델 학습 완료!")
# 5. 학습된 모델로 새로운 문제(테스트 데이터)를 풀어보게 하기
# .predict() 메소드는 학습이 끝난 모델에게 새로운 문제(X_test)를 주고 예측(predict)을 시키는 과정입니다.
y_pred = model.predict(X_test)
# 6. AI 모델의 성능 평가하기
# 모델의 예측(y_pred)과 실제 정답(y_test)이 얼마나 일치하는지 '정확도'를 계산합니다.
accuracy = accuracy_score(y_test, y_pred)
print(f"모델 예측 정확도: {accuracy * 100:.2f}%")
# 7. 진짜 새로운 데이터로 예측해보기
# 예를 들어, 꽃받침 길이 5.0, 폭 3.5, 꽃잎 길이 1.5, 폭 0.2 인 새로운 붓꽃이 있다면?
# 모델은 이 붓꽃이 어떤 품종일지 예측할 수 있습니다.
# 참고: 데이터는 항상 2D 배열 형태로 넣어주어야 합니다. [[...]]
new_flower = [[5.0, 3.5, 1.5, 0.2]]
prediction = model.predict(new_flower)
predicted_species = iris_data.target_names[prediction[0]]
print(f"새로운 붓꽃의 예측 품종은 '{predicted_species}' 입니다.")
위 코드를 iris_ai.py로 저장하고 실행해보세요. 모델이 꽤 높은 정확도로 붓꽃 품종을 맞추는 것을 볼 수 있습니다. 이것이 바로 머신러닝의 기본 원리입니다!
3주차 과제
- 와인 종류 예측하기:
- 붓꽃 데이터(
load_iris) 대신, 와인 데이터(load_wine)를 사용해보세요.from sklearn.datasets import load_winewine_data = load_wine()
- 붓꽃 예제 코드의
iris_data부분을wine_data로 바꾸면 거의 동일하게 작동합니다. - 와인 데이터는 어떤 특징(X)들을 가지고 있는지, 와인의 종류(y)는 몇 가지가 있는지
print()문으로 탐색해보세요. (print(wine_data['DESCR'])을 사용하면 데이터 설명을 볼 수 있습니다.) - 최종적으로 와인 종류를 예측하는 모델의 정확도는 몇 %가 나오는지 확인해보세요.
- 붓꽃 데이터(
반응형
'백엔드 > 파이썬' 카테고리의 다른 글
| [Python] 4주차: 미니 프로젝트 - AI 이미지 분류기 만들기 (1) | 2025.11.21 |
|---|---|
| [Python] 2주차: 프로그래밍의 기본기 다지기 (0) | 2025.11.21 |
| [Python] 1주차: 파이썬과의 첫 만남 (0) | 2025.11.21 |