728x90
Python을 사용하여 AI 모델을 개발하는 과정은 여러 단계로 구성됩니다. 아래는 기본적인 워크플로우와 주요 단계들을 요약한 것입니다.
1. 데이터 준비
AI 모델을 학습시키기 위해서는 데이터를 준비해야 합니다. 데이터는 CSV 파일, 이미지, 텍스트 등 다양한 형태로 존재할 수 있습니다.
import pandas as pd
# 데이터 불러오기
data = pd.read_csv('data.csv')
# 데이터 확인
print(data.head())
2. 데이터 전처리
데이터를 학습에 적합한 형태로 변환합니다. 결측값 처리, 정규화, 범주형 변수 인코딩 등이 포함됩니다.
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# 결측값 처리
data.fillna(method='ffill', inplace=True)
# 특성 및 레이블 분리
X = data.drop('target', axis=1)
y = data['target']
# 데이터 정규화
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 학습 및 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
3. 모델 선택 및 학습
사용할 모델을 선택하고 데이터를 사용해 학습시킵니다. 여기서는 간단한 예로 로지스틱 회귀 모델을 사용하겠습니다.
from sklearn.linear_model import LogisticRegression
# 모델 초기화 및 학습
model = LogisticRegression()
model.fit(X_train, y_train)
4. 모델 평가
학습된 모델의 성능을 평가합니다. 정확도, 정밀도, 재현율, F1 점수 등을 사용할 수 있습니다.
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 예측
y_pred = model.predict(X_test)
# 평가
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='binary')
recall = recall_score(y_test, y_pred, average='binary')
f1 = f1_score(y_test, y_pred, average='binary')
print(f'Accuracy: {accuracy}')
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1 Score: {f1}')
5. 모델 튜닝
하이퍼파라미터 튜닝을 통해 모델 성능을 최적화합니다. GridSearchCV, RandomizedSearchCV 등의 방법을 사용할 수 있습니다.
from sklearn.model_selection import GridSearchCV
# 하이퍼파라미터 그리드 설정
param_grid = {
'C': [0.1, 1, 10],
'solver': ['newton-cg', 'lbfgs', 'liblinear']
}
# GridSearchCV 초기화 및 학습
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5, scoring='accuracy')
grid_search.fit(X_train, y_train)
# 최적 하이퍼파라미터 출력
print(grid_search.best_params_)
6. 모델 저장 및 배포
학습된 모델을 저장하고 배포합니다. pickle, joblib 등을 사용하여 모델을 저장할 수 있습니다.
import joblib
# 모델 저장
joblib.dump(model, 'model.pkl')
# 모델 불러오기
loaded_model = joblib.load('model.pkl')
# 불러온 모델로 예측
loaded_model.predict(X_test)
이 예제는 아주 기본적인 머신러닝 워크플로우를 다루었으며, 실제로는 더 복잡한 전처리, 모델링, 튜닝 등이 필요할 수 있습니다. 필요에 따라 딥러닝 프레임워크(예: TensorFlow, PyTorch)를 사용하여 더 복잡한 모델을 만들 수 있습니다.
728x90
반응형
'Software > Python' 카테고리의 다른 글
Python 시작하기 - 수식편집기 (0) | 2024.08.22 |
---|---|
Python 시작하기 - 통계분석 (0) | 2024.07.31 |
Python시작하기 - QRcode (0) | 2024.07.30 |
파이선 소개(chatGPT작성) (1) | 2024.07.23 |
Flask 시작하기 - render_template 사용 (0) | 2024.07.16 |