Processor

사이킷런(sklearn)의 주요 모듈

작성자 임베디드코리아 작성일25-12-16 01:02 조회3회 댓글0건
▶ 사이킷런(Scikit-learn)은 다양한 머신러닝 모델과 데이터 처리 기능을 제공하는 파이썬 라이브러리입니다.
▶ 사이킷런의 주요 모듈은 데이터 전처리, 모델링, 성능 평가 등을 위해 사용됩니다.
▶ 각 모듈은 여러 기능을 포함하고 있으며, 머신러닝 프로젝트의 거의 모든 단계에서 활용할 수 있습니다.

1. sklearn.datasets: 데이터셋 로드
  이 모듈은 사이킷런에서 제공하는 여러 유명한 데이터셋을 로드하거나, 가상 데이터를 생성할 수 있습니다.

< 주요 기능 >
* load_iris(), load_boston(), load_digits(), load_wine(): 사이킷런에 내장된 데이터셋을 로드.
* make_classification(), make_regression(): 가상의 분류/회귀용 데이터 생성.

from sklearn.datasets import load_iris
data = load_iris()
print(data.keys())


2. sklearn.model_selection: 모델 평가 및 선택
  이 모듈은 데이터를 훈련셋과 테스트셋으로 분할하고, 교차 검증, 하이퍼파라미터 튜닝을 위한 도구를 제공합니다.

<주요 기능>
* train_test_split(): 데이터를 훈련셋과 테스트셋으로 분리.
* KFold(), StratifiedKFold(): 교차 검증용 폴드 생성.
* GridSearchCV(), RandomizedSearchCV(): 하이퍼파라미터 최적화를 위한 그리드 검색 및 랜덤 검색.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)


3. sklearn.preprocessing: 데이터 전처리
  데이터를 머신러닝 모델에 적합하게 변환하는 도구를 제공합니다. 스케일링, 정규화, 인코딩 등의 기능이 포함되어 있습니다.

<주요 기능>
* StandardScaler(): 데이터를 평균 0, 표준편차 1로 스케일링.
* MinMaxScaler(): 데이터를 최소값 0, 최대값 1로 스케일링.
* LabelEncoder(), OneHotEncoder(): 범주형 데이터를 정수 또는 원-핫 인코딩.
* PolynomialFeatures(): 다항식 특징 생성.

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_train)

4. sklearn.decomposition: 차원 축소
  고차원 데이터를 더 작은 차원으로 줄이는 방법을 제공합니다. 주로 PCA(주성분 분석) 같은 기법을 포함합니다.

<주요 기능>
* PCA(): 주성분 분석을 사용하여 데이터 차원을 축소.
* TruncatedSVD(): 희소 행렬을 위한 SVD(Singular Value Decomposition) 기반 차원 축소.

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_train)

5. sklearn.metrics: 모델 성능 평가
  분류, 회귀 모델의 성능을 평가하는 다양한 지표를 제공합니다. 분류의 정확도, 정밀도, 재현율, 회귀의 MSE, R^2 등
  다양한 메트릭을 포함합니다.

<주요 기능>
* accuracy_score(), precision_score(), recall_score(): 분류 문제의 성능 평가.
* mean_squared_error(), r2_score(): 회귀 문제의 성능 평가.
* confusion_matrix(): 혼동 행렬 계산.

from sklearn.metrics import accuracy_score
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))

6. sklearn.linear_model: 선형 모델
  이 모듈은 선형 회귀, 로지스틱 회귀 등 선형 모델 기반 알고리즘을 제공합니다.

<주요 기능>
* LinearRegression(): 선형 회귀 모델.
* LogisticRegression(): 로지스틱 회귀 모델.
* Ridge(), Lasso(): 정규화된 회귀 모델(릿지, 라쏘 회귀).

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)

7. sklearn.svm: 서포트 벡터 머신
  서포트 벡터 머신(SVM)을 이용한 분류, 회귀 알고리즘을 제공합니다.

<주요 기능>
* SVC(): 서포트 벡터 분류기.
* SVR(): 서포트 벡터 회귀.

from sklearn.svm import SVC
model = SVC(kernel='linear')
model.fit(X_train, y_train)

8. sklearn.ensemble: 앙상블 모델
  여러 모델을 결합하여 성능을 향상시키는 앙상블 학습 기법을 제공합니다.
  랜덤 포레스트, 배깅, 부스팅 알고리즘 등이 포함됩니다.

<주요 기능>
* RandomForestClassifier(), RandomForestRegressor(): 랜덤 포레스트 분류 및 회귀.
* GradientBoostingClassifier(), GradientBoostingRegressor(): 그레디언트 부스팅 분류 및 회귀.

from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

9. sklearn.cluster: 클러스터링
  비지도 학습의 일환으로 데이터에서 그룹을 찾는 클러스터링 알고리즘을 제공합니다.

<주요 기능>
* KMeans(): k-평균 클러스터링.
* DBSCAN(): 밀도 기반 클러스터링.

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(X_train)

10. sklearn.tree: 의사결정 트리
    의사결정 트리 기반의 알고리즘을 제공합니다. 분류와 회귀 모두에서 사용할 수 있습니다.

<주요 기능>
* DecisionTreeClassifier(): 분류용 의사결정 트리.
* DecisionTreeRegressor(): 회귀용 의사결정 트리.

from sklearn.tree import DecisionTreeClassifier 
model = DecisionTreeClassifier() 
model.fit(X_train, y_train) 

☞ 사이킷런은 머신러닝 프로젝트에 필요한 대부분의 기능을 제공하는 강력한 라이브러리입니다.
☞ 주요 모듈로는 데이터 전처리, 모델 선택, 평가, 다양한 모델 및 알고리즘(선형 모델, 앙상블, SVM 등)이 있으며,
    이를 적절히 활용하면 효과적인 머신러닝 모델을 구축할 수 있습니다.