ㅁ사이킷 런(scikit-learn): Python을 기반으로 한 머신러닝 라이브러리로 데이터 전처리, 지도 학습, 비지도 학습, 모델 평가 등 다양한 머신러닝 작업에 필요한 도구를 제공
[사이킷 런의 주요 특징들]
- 다양한 머신러닝 알고리즘 지원
- 지도 학습: 회귀, 분류(Linear Regression, Logistic Regression, Decision Tree, SVM 등)
- 비지도 학습: 클러스터링, 차원 축소(KMeans, PCA, t-SNE 등)
- 모델 선택 및 하이퍼파라미터 튜닝: GridSearchCV, RandomizedSearchCV
- 강력한 데이터 전처리 도구
- 결측값 처리, 데이터 표준화(StandardScaler), 데이터 정규화(MinMaxScaler)
- 범주형 데이터 인코딩 (OneHotEncoder, LabelEncoder)
- 특성 선택 및 생성 도구 제공
- 간단한 API 설계
- 일관된 API를 통해 학습(fit), 예측(predict), 평가(score) 과정을 통일된 방식으로 처리 가능
- 풍부한 문서와 커뮤니티
- 공식 문서와 예제가 풍부하며, 다양한 오픈소스 커뮤니티에서 질문과 답변이 활발히 이루어진다
(설치 명령어) 다른 파이썬 라이브러리들과 똑같다
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는 대문자 X로 y는 소문자 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은 머신러닝 프로젝트를 시작하기에 적합한 도구로, 학습 곡선이 완만하여 초보자도 쉽게 사용할 수 있다. 데이터 전처리, 모델 학습, 평가를 모두 지원하므로 통합적인 머신러닝 워크플로우를 제공한다. 다양한 프로젝트에 적용해 보고 그 편리함과 유용함을 직접 느껴보자!
(활용 프로젝트)
'인공지능 > 머신러닝' 카테고리의 다른 글
[머신러닝] Gradient Boosting Regressor Model(학습 데이터 수가 적을 때 유용) (0) | 2024.11.22 |
---|