Python Scikit-learn을 활용한 머신러닝 기초
안녕하세요! 오늘은 Python 고급 주제 중 하나로, 머신러닝의 기초를 다룰 것입니다. 특히, Python의 강력한 라이브러리 중 하나인 Scikit-learn을 활용하여 머신러닝의 기본적인 프로세스를 이해하고 간단한 예제를 통해 학습해 보겠습니다.
Scikit-learn이란?
Scikit-learn은 Python에서 가장 널리 사용되는 머신러닝 라이브러리 중 하나로, 다양한 머신러닝 알고리즘과 도구를 제공합니다. 주요 특징은 다음과 같습니다:
- 다양한 알고리즘: 분류, 회귀, 클러스터링, 차원 축소 등 다양한 머신러닝 알고리즘 지원
- 편리한 API: 일관된 API 설계로 학습 곡선이 낮음
- 풍부한 문서: 공식 문서와 예제 코드가 잘 정리되어 있음
- 다른 라이브러리와 통합 용이: NumPy, Pandas, Matplotlib 등과 쉽게 통합 가능
머신러닝의 기본 프로세스
Scikit-learn을 사용한 머신러닝은 일반적으로 다음의 단계를 따릅니다:
- 데이터 준비: 데이터셋 로드 및 전처리
- 모델 선택: 적절한 알고리즘 선택
- 데이터 분할: 학습용(train)과 테스트용(test) 데이터로 분할
- 모델 학습: 학습 데이터를 사용해 모델 훈련
- 모델 평가: 테스트 데이터를 사용해 모델 성능 평가
- 예측: 새로운 데이터에 대한 예측 수행
이제 실제 코드를 통해 이를 단계별로 살펴보겠습니다.
실습: 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를 통해 머신러닝을 쉽게 이해할 수 있도록 돕습니다.
앞으로도 다양한 예제와 심화 주제를 다룰 예정이니 계속해서 관심 가져 주세요!
'Python > Python 심화' 카테고리의 다른 글
Python Flask를 이용한 간단한 웹 서버 구현 (0) | 2025.08.01 |
---|---|
Python statsmodels를 이용한 통계 분석 (0) | 2025.07.31 |
Python Matplotlib와 Seaborn을 활용한 데이터 시각화 (0) | 2025.07.29 |
Python NumPy를 이용한 수치 계산 (0) | 2025.07.28 |
Pandas를 이용한 데이터 처리 및 분석 (0) | 2025.07.27 |