파이썬 AI/ML 프로젝트 예제
파이썬 AI 인공지능 프로젝트 예제 3가지 (입문자용 완벽 가이드)
문법만 외우는 파이썬은 그만! 실제로 돌아가는 AI 예제로 인공지능 감각을 키워보세요 🤖
• 입문자용 AI 예제 3가지(붓꽃 분류 · 손글씨 인식 · 영화 리뷰 감정 분석)
• 실습 환경 세팅부터 디버깅 팁까지 한 번에 정리
• “AI가 뭔지 감만 잡고 싶다”는 비전공자 · 직장인 · 고등학생/대학생
• 나중에 블로그나 발표용 PPT 자료까지 만들고 싶은 분
이 글은 시리즈의 어디쯤일까? — 이 글은 “파이썬 기초 → 자료 & 예제 → 학습영상 → 기초 질문 → 데이터 분석 입문”을 지나온 뒤, ‘AI 세계에 첫 발을 들이는 단계’에 해당합니다.
즉, 아직 수학 이론을 깊게 알지 못해도 괜찮고, 파이썬 코드가 완벽하지 않아도 괜찮아요. “아, 인공지능이 이렇게 돌아가는구나”라는 감을 잡는 게 목표예요.
• 리스트, 딕셔너리, for문, if문이 낯설지 않다
• Jupyter Notebook 이나 VS Code에서 파이썬 파일 실행 가능하다
• matplotlib으로 간단한 그래프를 한 번쯤 그려봤다
실습 환경 먼저 정리해볼까요? — 아래 중 편한 환경 하나만 골라도 충분합니다. 나중에 블로그용 화면 캡처를 생각하면, Colab이나 Jupyter가 특히 편해요 ✨
| 환경 | 특징 | 추천 용도 |
|---|---|---|
| 구글 Colab | 설치 없이 브라우저에서 바로 실행, GPU 옵션 제공 | 노트북 PC가 가벼울 때, 어디서나 실습 |
| Anaconda + Jupyter | 데이터 분석 · 그래프 실습에 최적화 | 집이나 사무실 PC에서 꾸준히 공부 |
| VS Code | 코드 관리 & 확장이 편리, 프로젝트형 개발에 좋음 | 나중에 자동화 · 웹 서버까지 욕심날 때 |
파이썬은 별도의 복잡한 환경 설정 없이도 바로 실습할 수 있습니다. 기본적으로 Python을 설치하면 함께 제공되는 IDLE(아이들) 프로그램에서 새 파일을 열고 코드를 입력한 뒤 F5 키로 실행하면 데이터가 정상적으로 불러와집니다. 구글 Colab이나 Jupyter Notebook을 사용하는 경우에도 같은 코드를 그대로 실행할 수 있습니다.
AI, 머신러닝, 딥러닝… 대체 뭐가 다른 거지?
한 줄로 정리하면 이렇게 볼 수 있어요.
| 이름 | 핵심 느낌 | 예시 |
|---|---|---|
| AI | 사람처럼 ‘생각’하고 판단하는 컴퓨터 | 챗봇, 자율주행, 음성 비서 |
| 머신러닝 | 데이터를 보면서 스스로 규칙을 배우는 기술 | 스팸 메일 분류, 대출 심사 점수 |
| 딥러닝 | 뇌처럼 층이 많은 네트워크로 복잡한 패턴 학습 | 이미지 인식, 음성 인식, 챗GPT 계열 모델 |
오늘 다룰 세 가지 예제는 “머신러닝 기초 + 딥러닝 맛보기” 정도의 수준이라고 보시면 돼요. 완벽 이해보다, 흐름 이해가 목표입니다.
파이썬 IDLE에서 데이터 불러오기, 이렇게 하면 됩니다
이 글에서는 파이썬 IDLE(아이들)을 기준으로, Iris·MNIST·IMDB 데이터를 불러오는 기본 흐름을 정리합니다. 집에서 파이썬을 설치해 두었다는 전제이며, 단계는 다음과 같습니다.
- IDLE 실행
- 새 파일 열기
- 코드 붙여넣기
- F5(또는 Run ▶ Run Module)로 실행
- 필요하면 라이브러리 설치(pip install)
• 코드 여러 줄을 한 번에 실행할 때는 반드시 새 파일에 작성 후 F5로 실행
• 실행 결과는 항상 아래쪽 Python Shell 창에 출력된다
1️⃣ IDLE에서 새 파일 열고 실행하는 기본 흐름
- Windows 검색창에
IDLE을 입력해 Python 3.x (IDLE) 실행 - 상단 메뉴에서 File ▶ New File 선택 → 새 편집창 열기
- 편집창에 예제 코드를 붙여넣기 또는 직접 입력
- F5 키 또는 Run ▶ Run Module 선택
- 자동으로 파일 저장 창이 뜨면, 원하는 폴더에
iris_test.py같은 이름으로 저장 - 저장 후 하단 Python Shell 창에 실행 결과 확인
실습을 할 때는 항상 “새 파일에 코드 작성 → F5로 실행 → Shell에서 결과 확인”이라는 패턴을 기억해 두면 편하다.
2️⃣ Iris(붓꽃) 데이터 불러오기 – 가장 먼저 해보기 좋은 예제
Iris 데이터는 scikit-learn 라이브러리에 내장되어 있어서, 별도의 CSV 파일 없이 바로 불러올 수 있다. IDLE 새 파일에 아래 코드를 넣고 F5로 실행한다.
from sklearn.datasets import load_iris
iris = load_iris()
# 데이터 구조 확인
print("데이터 크기:", iris.data.shape)
print("레이블 크기:", iris.target.shape)
print("특징 이름:", iris.feature_names)
print("품종 이름:", iris.target_names)
정상적으로 실행되면 다음과 비슷한 결과가 출력된다.
데이터 크기: (150, 4)
레이블 크기: (150,)
특징 이름: ['sepal length (cm)', 'sepal width (cm)',
'petal length (cm)', 'petal width (cm)']
품종 이름: ['setosa' 'versicolor' 'virginica']
•
ModuleNotFoundError: No module named 'sklearn' 이라는 메시지가 나오면, 명령 프롬프트에서pip install scikit-learn 을 한 번 실행한 뒤 다시 시도하면 된다.
3️⃣ MNIST 손글씨 숫자 데이터 – TensorFlow 설치 후 사용
MNIST는 손글씨 숫자(0~9)가 28×28 픽셀 이미지로 저장된 데이터이다. 이 데이터는 TensorFlow에 포함되어 있어서, 먼저 TensorFlow 설치가 필요하다.
① TensorFlow 설치 (한 번만 수행)
Windows 기준으로, 명령 프롬프트를 열고 다음 명령을 실행한다.
pip install tensorflow
② IDLE에서 데이터 불러오기
from tensorflow.keras.datasets import mnist
(X_train, y_train), (X_test, y_test) = mnist.load_data()
print("훈련 데이터:", X_train.shape)
print("테스트 데이터:", X_test.shape)
정상이라면 대략 다음과 같이 출력된다.
훈련 데이터: (60000, 28, 28)
테스트 데이터: (10000, 28, 28)
딥러닝 모델에 넣기 전에는 보통 아래처럼 정규화를 추가로 해준다.
X_train = X_train / 255.0
X_test = X_test / 255.0
4️⃣ IMDB 영화 리뷰 데이터 – 텍스트 감정 분석용
IMDB 데이터는 영화 리뷰 텍스트와 감정 레이블(0: 부정, 1: 긍정)로 구성되어 있다. 이 역시 TensorFlow에 포함되어 있으므로, MNIST를 위해 TensorFlow를 설치했다면 추가 설치 없이 사용할 수 있다.
from tensorflow.keras.datasets import imdb
(X_train, y_train), (X_test, y_test) = imdb.load_data(num_words=10000)
print("훈련 리뷰 개수:", len(X_train))
print("테스트 리뷰 개수:", len(X_test))
print("첫 번째 리뷰 길이:", len(X_train[0]))
IMDB 데이터는 리뷰가 이미 숫자 인덱스 시퀀스로 변환되어 저장되어 있다. 실제 문장 형태로 보고 싶다면, 단어 사전을 이용해 아래처럼 복원할 수 있다.
word_index = imdb.get_word_index()
reverse_index = {v: k for k, v in word_index.items()}
decoded_review = " ".join(
reverse_index.get(i - 3, "?") for i in X_train[0]
)
print(decoded_review)
5️⃣ 정리 – 어떤 데이터가 어떻게 불러와지는가
| 데이터셋 | 용도 | 불러오는 방법 | 설치 필요 |
|---|---|---|---|
| Iris | 머신러닝 기초 분류 | from sklearn.datasets import load_iris |
scikit-learn |
| MNIST | 손글씨 숫자 인식 | from tensorflow.keras.datasets import mnist |
TensorFlow |
| IMDB | 영화 리뷰 감정 분석 | from tensorflow.keras.datasets import imdb |
TensorFlow |
• IDLE에서는 “새 파일에 코드 작성 → F5 실행 → Shell에서 결과 확인” 패턴으로 진행
• Iris는 비교적 가볍고 설치도 단순해서 가장 먼저 시도하기 좋다
• MNIST·IMDB는 TensorFlow 설치가 필요하므로, 설치 권한이 있는 PC에서 진행하는 것이 좋다
프로젝트 1️⃣ 붓꽃(Iris) 분류 — 머신러닝 입문 대표 예제
꽃받침/꽃잎의 길이와 너비 네 가지 숫자만 보고, 붓꽃 품종(Setosa, Versicolor, Virginica)을 맞히는 예제예요 🌸
학습 흐름
- Iris 데이터셋 불러오기
- 각 특성(길이·너비)의 분포를 그래프로 확인
- 학습용 / 테스트용 데이터로 나누기
- 머신러닝 모델 선택 (예: 로지스틱 회귀, KNN 등)
- 모델 학습시키기 (fit)
- 새로운 데이터에 대한 품종 예측
코드 스케치 예시 (Colab이나 Jupyter에서 연습용)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
iris = load_iris()
X = iris.data # 꽃잎/꽃받침 길이·너비
y = iris.target # 품종 레이블
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
print("테스트 정확도:", model.score(X_test, y_test))
프로젝트 2️⃣ 손글씨 숫자 인식 — 딥러닝 첫 맛보기
0~9까지 손글씨 이미지(28×28 픽셀)를 보고 어떤 숫자인지 맞히는 예제예요 ✍️ “AI가 그림을 본다”는 느낌을 줄 수 있어서, 발표용·수업용 예제로도 정말 인기 많습니다.
흐름 요약
- MNIST 데이터셋 불러오기
- 픽셀 값을 0~1 사이로 정규화
- 신경망 구조 설계 (입력층 → 은닉층 → 출력층)
- 모델 학습 (fit)
- 테스트 데이터 정확도 확인
- 임의의 이미지를 넣고 AI가 뭐라고 예측하는지 확인
Keras를 활용한 예시 스케치
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical
# 1) 데이터 불러오기
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# 2) 정규화
X_train = X_train / 255.0
X_test = X_test / 255.0
# 3) 라벨 원-핫 인코딩
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
# 4) 모델 설계
model = Sequential([
Flatten(input_shape=(28, 28)),
Dense(128, activation="relu"),
Dense(10, activation="softmax")
])
model.compile(optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"])
# 5) 학습
model.fit(X_train, y_train, epochs=5, batch_size=128,
validation_split=0.1)
# 6) 평가
loss, acc = model.evaluate(X_test, y_test)
print("테스트 정확도:", acc)
• 처음에는 epoch를 너무 많이 주지 말고 3~5 정도로 짧게 돌려보세요.
• 정확도가 잘 안 나와도 괜찮아요. “층을 하나 더 넣으면 어떨까?” 같은 실험이 진짜 공부입니다.
프로젝트 3️⃣ 영화 리뷰 감정 분석 — 텍스트를 이해하는 AI
“최고의 영화! 두 번 보고 싶어요” 같은 리뷰를 보고, 긍정인지 부정인지 맞히는 프로젝트예요 🎬 사람의 언어를 다루는 분야라, 실제 서비스와 가장 가까운 느낌을 줄 수 있습니다.
기본 아이디어
- 리뷰 텍스트와 평점(레이블)이 들어 있는 데이터셋 준비
- 텍스트 전처리: 소문자 변환, 불용어 제거, 토큰화 등
- 각 문장을 숫자 시퀀스로 변환(Tokenizer 사용)
- 간단한 딥러닝 모델(LSTM/GRU or Dense) 설계
- 학습 후, 새 리뷰에 대해 긍·부정 예측
토큰화 + 패딩 구조 예시
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
sentences = [
"이 영화 정말 최고였어요",
"시간이 아까운 영화였습니다"
]
# 1) 단어 사전 만들기
tokenizer = Tokenizer(num_words=10000)
tokenizer.fit_on_texts(sentences)
# 2) 문장을 숫자 시퀀스로 변환
seqs = tokenizer.texts_to_sequences(sentences)
# 3) 길이를 맞추기 위한 패딩
padded = pad_sequences(seqs, maxlen=10)
print(padded)
이렇게 숫자로 바꾼 문장을 딥러닝 모델에 넣어주면, AI가 “이 문장이 긍정에 가깝다/부정에 가깝다”를 확률로 알려줍니다. 나중에는 블로그 댓글, 상품 리뷰, 자신의 일기 등으로 확장해볼 수도 있어요 😊
초보자들이 자주 막히는 구간 4가지
- 1) 라이브러리 설치 에러 — scikit-learn, tensorflow 설치 시 버전 충돌이 나는 경우가 있어요. Colab을 쓰면 이 부분이 대부분 해결됩니다.
- 2) 데이터 모양 오류 — “shapes not aligned” 같은 에러는 입력 차원이 안 맞아서 나는 경우가 많아요.
print(X.shape)한 번 찍어보는 습관을 들이면 금방 해결됩니다. - 3) 정확도가 50% 근처에서 안 올라갈 때 — 데이터가 너무 적거나, 모델이 너무 단순할 수 있어요. 층을 하나 추가하거나 epoch를 살짝 늘려보세요.
- 4) 이론 공부에만 매달림 — 이 글의 3가지 예제를 한 바퀴 돌리고, 그 다음에 이론서를 보는 게 훨씬 잘 들어옵니다.
“완벽한 코드”보다 “돌아가는 코드”를 많이 만들어 보는 게 AI 입문자에게는 훨씬 큰 자산이에요. 블로그에 기록까지 남기면, 그게 곧 포트폴리오가 됩니다 ✨
여기서 한 발 더: 나만의 AI 프로젝트로 확장하기
위의 3가지 예제를 한 번씩 돌려보았다면, 이제는 “내 일상 + AI”를 연결해 볼 차례예요.
- 블로그 댓글 긍정/부정 비율 분석하기
- 오늘 쓴 일기의 감정 점수 매기기(행복/불안/우울 등)
- 나만의 손글씨로 숫자 인식 모델 다시 학습시키기
- 책 리뷰를 모아서 “재구매 의사 있음/없음” 분류해 보기
이런 것들을 조금씩 기록해 두면, “AI 공부 기록 블로그”가 아니라, “인공지능 실험실” 같은 느낌의 메인 허브가 될 수 있어요 😊