Python/Python 심화

Python Scikit-learn을 활용한 머신러닝 기초

임베디드 친구 2025. 7. 30. 20:14
728x90
반응형

Python Scikit-learn을 활용한 머신러닝 기초

안녕하세요! 오늘은 Python 고급 주제 중 하나로, 머신러닝의 기초를 다룰 것입니다. 특히, Python의 강력한 라이브러리 중 하나인 Scikit-learn을 활용하여 머신러닝의 기본적인 프로세스를 이해하고 간단한 예제를 통해 학습해 보겠습니다.

Scikit-learn이란?

Scikit-learn은 Python에서 가장 널리 사용되는 머신러닝 라이브러리 중 하나로, 다양한 머신러닝 알고리즘과 도구를 제공합니다. 주요 특징은 다음과 같습니다:

  • 다양한 알고리즘: 분류, 회귀, 클러스터링, 차원 축소 등 다양한 머신러닝 알고리즘 지원
  • 편리한 API: 일관된 API 설계로 학습 곡선이 낮음
  • 풍부한 문서: 공식 문서와 예제 코드가 잘 정리되어 있음
  • 다른 라이브러리와 통합 용이: NumPy, Pandas, Matplotlib 등과 쉽게 통합 가능

머신러닝의 기본 프로세스

Scikit-learn을 사용한 머신러닝은 일반적으로 다음의 단계를 따릅니다:

  1. 데이터 준비: 데이터셋 로드 및 전처리
  2. 모델 선택: 적절한 알고리즘 선택
  3. 데이터 분할: 학습용(train)과 테스트용(test) 데이터로 분할
  4. 모델 학습: 학습 데이터를 사용해 모델 훈련
  5. 모델 평가: 테스트 데이터를 사용해 모델 성능 평가
  6. 예측: 새로운 데이터에 대한 예측 수행

이제 실제 코드를 통해 이를 단계별로 살펴보겠습니다.

실습: Iris 데이터셋으로 분류 모델 만들기

1. 데이터 준비

Scikit-learn은 여러 내장 데이터셋을 제공합니다. 이번 실습에서는 유명한 Iris 데이터셋을 사용하겠습니다.

from sklearn.datasets import load_iris
import pandas as pd

# 데이터 로드
iris = load_iris()
X = pd.DataFrame(iris.data, columns=iris.feature_names)
y = pd.Series(iris.target, name='target')

# 데이터 확인
print(X.head())
print(y.head())

2. 데이터 분할

모델 학습과 평가를 위해 데이터를 학습용과 테스트용으로 나눕니다.

from sklearn.model_selection import train_test_split

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

print(f"학습 데이터 크기: {X_train.shape}")
print(f"테스트 데이터 크기: {X_test.shape}")

3. 모델 선택 및 학습

이번에는 간단한 의사결정트리(Decision Tree) 분류 모델을 사용하겠습니다.

from sklearn.tree import DecisionTreeClassifier

# 모델 생성
model = DecisionTreeClassifier(random_state=42)

# 모델 학습
model.fit(X_train, y_train)

4. 모델 평가

모델의 성능을 테스트 데이터로 평가해 보겠습니다.

from sklearn.metrics import accuracy_score

# 예측
y_pred = model.predict(X_test)

# 정확도 평가
accuracy = accuracy_score(y_test, y_pred)
print(f"모델 정확도: {accuracy:.2f}")

5. 예측

새로운 데이터를 사용하여 꽃 종류를 예측해 봅시다.

import numpy as np

# 새로운 데이터 예측
new_data = np.array([[5.1, 3.5, 1.4, 0.2]])
new_prediction = model.predict(new_data)

print(f"새로운 데이터의 예측 결과: {iris.target_names[new_prediction][0]}")

다양한 알고리즘 사용해 보기

Scikit-learn은 Decision Tree 외에도 다양한 알고리즘을 지원합니다. 다음은 몇 가지 예시입니다:

  • Logistic Regression:

    from sklearn.linear_model import LogisticRegression
    model = LogisticRegression(random_state=42)
    model.fit(X_train, y_train)
  • Random Forest:

    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier(random_state=42)
    model.fit(X_train, y_train)
  • Support Vector Machine:

    from sklearn.svm import SVC
    model = SVC(random_state=42)
    model.fit(X_train, y_train)

결론

이 글에서는 Scikit-learn을 활용하여 머신러닝의 기본 프로세스를 간단히 학습해 보았습니다. Scikit-learn은 초보자에게 적합한 강력한 라이브러리로, 다양한 알고리즘과 편리한 API를 통해 머신러닝을 쉽게 이해할 수 있도록 돕습니다.

앞으로도 다양한 예제와 심화 주제를 다룰 예정이니 계속해서 관심 가져 주세요!

728x90
반응형