반응형

 

안녕하세요~ 으니입니다!

 

 

"현업에서 많이 사용하고 있는 Python 모듈 마스터하기!"

 

두 번째, Scikit-Learn 에 대해 알아보도록 하겠습니다~

 

 

첫 번째 편은 "현업에서 많이 사용하는 Python 모듈 | Pandas" 입니다.

 

 

 

먼저, Scikit - learn은 Python의 "머신러닝 라이브러리"

 

아래와 같은 기능을 기본으로 하고 있습니다.

 

1. 지도학습, 비지도학습 모듈

 

2. 모델 선택 및 평가 모듈

 

3. 데이터 변환 및 데이터 불러오기 위한 모듈

 

4. 계산 성능 향상을 위한 모듈

 

 

또한 대부분의 모듈들이 통일된 인터페이스를 가지고 있어 간단하게 여러 기법을 적용할 수 있고,

 

쉽고 빠르게 원하는 결과를 얻을 수 있습니다!

 

 

 

1. 설치

 

pip install scikit-learn

 

# anaconda를 사용한다면,

conda install scikit-learn

 

 

# install 확인

 

import sklearn

sklearn.__version__

 

 

 

2. cheat-sheet

 

너무 유명한 scikit-learn의 알고리즘 cheat-sheet!

 

아래의 그림을 참고하면 좀 더 쉽게 적합한 모델을 선택할 수 있다네요~

 

출처: scikit-learn.org

 

 

 

3. 지도학습, 비지도학습 예시

 

사이킷런 라이브러리에 기본적으로 내장돼 있는 데이터 중 하나인 붓꽃 데이터를 이용한 예시를 통해 알아보도록 하겠습니다.

 

 

from sklearn.datasets import load_iris

from sklearn.model_selection import train_test_split

 

iris_dataset = load_iris()

target = iris_dataset['target'] # label

 

# train/test 데이터 분리

train_input, test_input, train_label, test_label = train_test_split(iris_dataset['data'], target, test_size = 0.25, # test data의 비율 random_state=42) # random seed 값

 

# 지도학습 모델 중 k-nn모델

 

from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors = 1)

 

knn.fit(train_input, train_label) # 분류기 모델에 학습 데이터와 label 데이터 적용

 

predict_label = knn.predict(test_input) # 분류기 모델의 결과 예측

 

import numpy as np

print('test accuracy {:.2f}'.format(np.mean(test_label == predict_label))) # 정확도 출력 1

 

from sklearn.metrics import accuracy_score

print('test accuracy {:.2f}'.format(accuracy_score(test_label, predict_label))) # 정확도 출력 2

 

 

# 비지도학습 모델 중 k-means 모델

 

from sklearn.cluster import KMeans k_means = KMeans(n_clusters=3)

 

k_means.fit(train_input)

 

predict_cluster = k_means.predict(test_input) print(predict_cluster)

 

# 단, 군집의 순서와 label의 값은 다를 수 있음, 예를 들어 0번째 군집에 라벨1인 데이터들이 주로 분포할 수 있음

print("0 cluster:", train_label[k_means.labels_ == 0]) print("1 cluster:", train_label[k_means.labels_ == 1]) print("2 cluster:", train_label[k_means.labels_ == 2])

 

코드 참고: 텐서플로와 머신러닝으로 시작하는 자연어처리

 

 

 

추가) 딥러닝 모델을 만든다하더라도 데이터 분리나 특징 추출 등 사이킷런의 전처리 모듈은 유용하게 사용할 수 있습니다.

 


 

오늘은 여기까지!

 

scikit-learn에 대해 간단히 알아보았습니다.

 

다음은 tensorflow와 keras에 대해 알아보도록 하겠습니다~

반응형

+ Recent posts