본문 바로가기
인공지능/머신러닝

[머신러닝] scikit-learn 라이브러리(머신러닝의 기초와 근간)

by 클레어몬트 2025. 1. 2.

 

ㅁ사이킷 런(scikit-learn): Python을 기반으로 한 머신러닝 라이브러리로 데이터 전처리, 지도 학습, 비지도 학습, 모델 평가 등 다양한 머신러닝 작업에 필요한 도구를 제공

 

 

[사이킷 런의 주요 특징들]

  1. 다양한 머신러닝 알고리즘 지원
    • 지도 학습: 회귀, 분류(Linear Regression, Logistic Regression, Decision Tree, SVM 등)
    • 비지도 학습: 클러스터링, 차원 축소(KMeans, PCA, t-SNE 등)
    • 모델 선택 및 하이퍼파라미터 튜닝: GridSearchCV, RandomizedSearchCV
  2. 강력한 데이터 전처리 도구
    • 결측값 처리, 데이터 표준화(StandardScaler), 데이터 정규화(MinMaxScaler)
    • 범주형 데이터 인코딩 (OneHotEncoder, LabelEncoder)
    • 특성 선택 및 생성 도구 제공
  3. 간단한 API 설계
    • 일관된 API를 통해 학습(fit), 예측(predict), 평가(score) 과정을 통일된 방식으로 처리 가능
  4. 풍부한 문서와 커뮤니티
    • 공식 문서와 예제가 풍부하며, 다양한 오픈소스 커뮤니티에서 질문과 답변이 활발히 이루어진다

 

(설치 명령어) 다른 파이썬 라이브러리들과 똑같다

pip install scikit-learn

 

 

[기본 사용법]

1. 데이터셋 로드 및 분리
Scikit-learn은 여러 내장 데이터셋을 제공하며, 데이터를 학습/테스트 세트로 쉽게 분리 가능하다

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target

# 학습/테스트 세트 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

※ 기본적으로 x값이 행렬이고 y값이 단일값이므로, x는 대문자 Xy는 소문자 y로 쓰는 게 국룰이다

 

 

2. 모델 학습 및 예측
간단한 분류 문제를 Logistic Regression을 사용해 학습 및 예측하는 예제이다

from sklearn.linear_model import LogisticRegression

# 모델 초기화 및 학습
model = LogisticRegression()
model.fit(X_train, y_train)

# 예측
predictions = model.predict(X_test)
print(predictions)

 

 

3. 모델 평가
정확도, 정밀도, 재현율 등 다양한 지표를 사용해 모델 성능을 평가할 수 있다

from sklearn.metrics import accuracy_score

# 정확도 평가
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")

 

 

4. 하이퍼파라미터 튜닝
GridSearchCV를 사용해 모델의 최적 하이퍼파라미터를 탐색할 수 있다

from sklearn.model_selection import GridSearchCV

# 하이퍼파라미터 설정
param_grid = {'C': [0.1, 1, 10], 'solver': ['lbfgs', 'liblinear']}
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)

# 최적화 실행
grid_search.fit(X_train, y_train)
print(f"Best Params: {grid_search.best_params_}")

 

 

[사이킷 런 활용 분야]

1. 머신러닝 모델 개발

  • 지도 학습 모델: 주택 가격 예측, 고객 분류
  • 비지도 학습 모델: 소비자 그룹 세분화, 데이터 시각화

2. 데이터 전처리 및 파이프라인 구성

  • 전처리와 모델을 연결하여 데이터 처리 파이프라인 구축

3. 모델 평가 및 비교

  • 여러 모델의 성능을 비교하고 최적의 모델을 선택

 

[사이킷 런의 장단점]

  • 장점:
    • 간단하고 직관적인 API 설계
    • 다양한 알고리즘과 도구 제공
    • 데이터 전처리와 모델 학습을 통합적으로 처리
  • 한계:
    • 대규모 데이터 처리에는 적합하지 않음 (Spark, TensorFlow와 비교)
    • GPU 가속 미지원 (CPU 기반 연산)

 

Scikit-learn은 머신러닝 프로젝트를 시작하기에 적합한 도구로, 학습 곡선이 완만하여 초보자도 쉽게 사용할 수 있다. 데이터 전처리, 모델 학습, 평가를 모두 지원하므로 통합적인 머신러닝 워크플로우를 제공한다. 다양한 프로젝트에 적용해 보고 그 편리함과 유용함을 직접 느껴보자!

 

 

 

 

 

(활용 프로젝트)

https://github.com/drone-skynet/ML_model

 

GitHub - drone-skynet/ML_model: 머신러닝을 이용한 드론 배송 소요 시간 예측 모델

머신러닝을 이용한 드론 배송 소요 시간 예측 모델. Contribute to drone-skynet/ML_model development by creating an account on GitHub.

github.com