안녕하세요~ 으니입니다!
"현업에서 많이 사용하고 있는 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에 대해 알아보도록 하겠습니다~
'PYTHON으로 딥러닝하기' 카테고리의 다른 글
Python으로 딥러닝하기|RNN(Recurrent Neural Networks) Part1. 이론 (0) | 2019.05.14 |
---|---|
Python으로 딥러닝하기|자연어 처리 1. 토크나이징 (1) | 2019.05.11 |
현업에서 많이 사용하는 Python 모듈 | Pandas (Series, DataFrame) (0) | 2019.02.27 |
파이썬으로 딥러닝하기| CNN(Convolution Neural Network) Part2. 구현하기(FULL CODE) (4) | 2018.09.27 |
파이썬으로 딥러닝하기| CNN(Convolution Neural Network) Part1.이론 (0) | 2018.09.21 |