기술과 산업/AI
AI 모델 만들기 시리즈 6화 – Scikit-learn으로 첫 번째 분류 모델 만들기
B컷개발자
2025. 5. 7. 00:59
728x90
이전 회차까지 우리는 AI 모델 개발의 전체 구조와 핵심 전처리 과정을 학습했습니다.
이제는 이 지식을 실제 코드와 함께 첫 AI 모델 구현으로 연결할 차례입니다.
이번 회차에서는 **Scikit-learn의 로지스틱 회귀(Logistic Regression)**를 활용하여
간단한 이진 분류 문제를 해결해보겠습니다.
실습 목적
- Scikit-learn 기반의 분류 모델 구현 흐름 익히기
- 전처리된 데이터를 학습에 연결하는 방법 학습
- 분류 모델의 평가 지표 확인
사용 데이터셋: 타이타닉 생존자 예측
Kaggle의 유명한 타이타닉 생존자 데이터셋을 사용합니다.
각 승객의 정보(나이, 성별, 선실 등)를 통해 생존 여부를 예측하는 이진 분류 문제입니다.
변수명설명
Pclass | 선실 등급 (1~3) |
Sex | 성별 |
Age | 나이 |
SibSp | 형제/배우자 수 |
Parch | 부모/자녀 수 |
Fare | 요금 |
Embarked | 탑승 항구 |
Survived | 생존 여부 (0=사망, 1=생존, 타겟) |
코드 실습 – 단계별 구현
1. 데이터 불러오기
import pandas as pd
# 타이타닉 데이터 로딩
df = pd.read_csv('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')
df = df[['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked', 'Survived']]
2. 전처리
# 결측치 처리
df['Age'].fillna(df['Age'].median(), inplace=True)
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
# 범주형 변수 인코딩
df = pd.get_dummies(df, columns=['Sex', 'Embarked'], drop_first=True)
# 입력값과 정답 분리
X = df.drop('Survived', axis=1)
y = df['Survived']
3. 데이터 분할
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, stratify=y
)
4. 모델 학습
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
5. 예측 및 평가
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
y_pred = model.predict(X_test)
print("정확도:", accuracy_score(y_test, y_pred))
print("혼동 행렬:\n", confusion_matrix(y_test, y_pred))
print("분류 리포트:\n", classification_report(y_test, y_pred))
결과 해석
- 정확도(Accuracy): 전체 테스트 샘플 중 맞춘 비율
- 혼동 행렬(Confusion Matrix): 정답과 예측의 상세 대응
- Precision / Recall / F1-score: 정밀도, 재현율, 조화 평균 지표
이렇게 간단한 모델이라도, 올바른 데이터 흐름과 전처리를 거치면 실제 예측이 가능한 모델로 작동하게 됩니다.
정리: 첫 AI 모델 구현의 의미
항목내용
알고리즘 | 로지스틱 회귀 (이진 분류용 선형 모델) |
입력 데이터 | 전처리된 승객 정보 |
타겟 변수 | 생존 여부 (0 또는 1) |
핵심 흐름 | 전처리 → 분할 → 학습 → 예측 → 평가 |
이번 실습은 단순한 ‘로지스틱 회귀’를 넘어서
AI 모델을 학습시키는 실질적인 전체 흐름을 경험하는 데 의의가 있습니다.
728x90