Skip to main content

ML 개발 환경

머신러닝 개발을 시작하기 위한 기본 환경을 구성합니다. Python, Jupyter Notebook, 핵심 라이브러리를 설치하고 첫 번째 ML 코드를 실행합니다.

학습 목표

  • Python 가상환경을 생성하고 ML 라이브러리를 설치할 수 있습니다.
  • Jupyter Notebook의 기본 사용법을 익힙니다.
  • scikit-learn으로 간단한 ML 코드를 실행하여 환경을 검증합니다.

환경 설정

1
Python 가상환경 생성
2
프로젝트별로 독립된 환경을 유지하기 위해 가상환경을 사용합니다.
3
# uv 사용 (권장)
uv init ml-practice && cd ml-practice
uv venv --python 3.12
source .venv/bin/activate

# 또는 venv 사용
python -m venv .venv
source .venv/bin/activate  # macOS/Linux
# .venv\Scripts\activate   # Windows
4
핵심 라이브러리 설치
5
ML 개발에 필수적인 라이브러리를 설치합니다.
6
# uv 사용
uv pip install numpy pandas scikit-learn matplotlib seaborn jupyterlab

# 또는 pip 사용
pip install numpy pandas scikit-learn matplotlib seaborn jupyterlab
7
라이브러리용도버전 확인NumPy수치 계산, 배열 연산python -c "import numpy; print(numpy.__version__)"pandas데이터 조작, DataFramepython -c "import pandas; print(pandas.__version__)"scikit-learnML 알고리즘, 전처리, 평가python -c "import sklearn; print(sklearn.__version__)"Matplotlib기본 시각화python -c "import matplotlib; print(matplotlib.__version__)"seaborn통계 시각화python -c "import seaborn; print(seaborn.__version__)"JupyterLab인터랙티브 개발 환경jupyter lab --version
8
Jupyter Lab 실행
9
jupyter lab
10
브라우저가 자동으로 열리며, 새 노트북(Python 3 커널)을 생성하여 코드를 실행할 수 있습니다.
11
환경 검증
12
새 노트북에서 다음 코드를 실행하여 환경이 올바르게 설정되었는지 확인합니다.
13
import numpy as np
import pandas as pd
import sklearn
import matplotlib.pyplot as plt
import seaborn as sns

# 버전 확인
print(f"NumPy: {np.__version__}")
print(f"pandas: {pd.__version__}")
print(f"scikit-learn: {sklearn.__version__}")

# 간단한 ML 테스트: Iris 분류
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 데이터 로드
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
    iris.data, iris.target, test_size=0.2, random_state=42
)

# 모델 학습 및 평가
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

accuracy = accuracy_score(y_test, y_pred)
print(f"\nIris 분류 정확도: {accuracy:.2f}")
print("환경 설정이 정상적으로 완료되었습니다!")
14
추가 라이브러리 설치 (선택)
15
프로젝트 필요에 따라 추가 라이브러리를 설치합니다.
16
# 그래디언트 부스팅 (앙상블 학습)
uv pip install xgboost lightgbm catboost

# 불균형 데이터 처리
uv pip install imbalanced-learn

# 하이퍼파라미터 최적화
uv pip install optuna

# 실험 관리
uv pip install mlflow

# 모델 해석
uv pip install shap

Jupyter Notebook 핵심 단축키

단축키모드동작
Shift + Enter공통현재 셀 실행 + 다음 셀 이동
Ctrl + Enter공통현재 셀 실행 (이동 없음)
A명령위에 셀 추가
B명령아래에 셀 추가
DD명령셀 삭제
M명령마크다운 셀로 변환
Y명령코드 셀로 변환
Tab편집자동완성
Shift + Tab편집함수 도움말
Esc를 누르면 명령 모드로, Enter를 누르면 편집 모드로 전환됩니다.

scikit-learn API 패턴

scikit-learn의 모든 알고리즘은 동일한 API 패턴을 따릅니다. 하나의 알고리즘을 익히면 다른 알고리즘도 같은 방식으로 사용할 수 있습니다.
from sklearn.모듈 import 알고리즘클래스

# 1. 모델 생성 (하이퍼파라미터 설정)
model = 알고리즘클래스(param1=value1, param2=value2)

# 2. 학습
model.fit(X_train, y_train)

# 3. 예측
y_pred = model.predict(X_test)

# 4. 평가
score = model.score(X_test, y_test)
# 실제 예시: 3개 알고리즘을 동일한 패턴으로 사용
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC

algorithms = [
    ("로지스틱 회귀", LogisticRegression(max_iter=1000)),
    ("결정 트리", DecisionTreeClassifier(max_depth=5)),
    ("SVM", SVC(kernel="rbf")),
]

for name, model in algorithms:
    model.fit(X_train, y_train)            # 동일한 API
    score = model.score(X_test, y_test)    # 동일한 API
    print(f"{name}: {score:.4f}")
JupyterLab은 Jupyter Notebook의 차세대 인터페이스입니다. 탭 기능, 파일 브라우저, 터미널 통합 등 더 풍부한 개발 환경을 제공합니다. 새 프로젝트에서는 JupyterLab을 사용하는 것을 권장합니다.
VS Code의 Jupyter 확장을 설치하면 .ipynb 파일을 직접 편집하고 실행할 수 있습니다. 디버깅 기능이 강력하여 복잡한 프로젝트에서는 VS Code가 더 효율적일 수 있습니다.

체크리스트

  • Python 가상환경을 생성하고 활성화할 수 있다
  • 핵심 ML 라이브러리를 설치할 수 있다
  • Jupyter Lab을 실행하고 노트북을 생성할 수 있다
  • scikit-learn의 fit/predict/score 패턴을 이해한다

다음 문서