본문 바로가기
모두의 연구소_아이펠학교 대전 1기_2021/스터디 자료

SCIKIT-LEARN을 활용한 머신러닝 분류

by 꾸덕 2021. 1. 9.
728x90

사이킷런이란?

* 머신러닝 분석할때 유용한 도구가 있는 라이브러리

* 파이썬 머신러닝 라이브러리 중 가장 많이 사용된다.

* 활용할 수 있는 데이터셋(예시)를 제공한다.

 

1. 사이킷런 또는 mataplotlib 패키지 설치하기 

2. 데이터셋 확인, 특징 알기.

 

3. 데이터 준비하기 

3-1) 데이터셋 가져오기

3-2)데이터셋의 정보 확인하기- 데이터의 크기, 데이터 샘플확인

- 머신러닝 모델이 출력해야하는 값(y)= label, target 

-feaure에 대한 설명 = iris.feature_names 

 

4. 문제에 적용하기 = 머신러닝 학습 환경구성

    4-1) 판다스 설치: 파이썬에서 표 데이터를 다루는 도구 

            - 해결하고자 하는 문제도 2차원 데이터이므로 판다스 활용!

           -데이터셋을 판다스에서 활용하기 쉽도록 DataFrame 으로 변환 

           -feature 과 label을 추가해준다.

           -문제지 = 머신러닝이 학습할 데이터(x) : feature 

           -정답지 = 머신러닝이 예측할 데이터(y) : abel,target 

      4-2) 데이터 나누기

           학습을 하기 위해서 연습문제(train)와 검증문제(test)가 필요하다.

           학습을 할  training dataset과 잘 학습했는지 성능을 평가할 test dataset 으로 데이터를 나눠야한다. 

           사이킷런에서 제공하는 train_test_split 함수로 데이터셋을 나눌 수 있다. 

            데이터셋을 나눈 후 잘 나뉘었는지 확인한다. 

from sklear.model_selection import train_test_split

X_trian,X_test,y_train,y_test = train_test_split(사용할 데이터셋이름_data, #문제지(x)
                         iris_label,#정답값(y) #학습용데이터와 데스트용 데이터 생성
                         test_size=0.3       #전체 데이터 중 테스트데이터를 사용할 비율)
                         random_state=6      #데이터를 분리할때 몇번 섞을건지 
X_train.shape, y_train.shape
X_test.shape, y_test.shape

 

5. 머신러닝 모델 학습시키기

머신러닝은 지도학습과 비지도학습으로 나뉘며 어떤 문제를 해결하는지에 따라 학습방식이 달라진다. 

지금은 지도학습으로 문제를 해결하겠다.

지도학습은 분류와 회귀라는 두가지 풀이 방식이 있다.

분류(classification)은 입력받은 데이터를 여러 종류 중 하나로 분류하는 문제다.

회귀(regression)은 입력받은 데이터에 따라 특정한 수치를 맞추는 문제다. 

 

= 나는 여러가지 데이터의 품종을 분류해야 하기에 분류문제를 사용한다. 

 

6. 분류모델 사용하기.

분류모델도 종류가 다양하다. 

각 분류모델에 대한 설명은 이후에 자세히 다루겠다.

- Decision tree

- RandomForest

-SVM(support vector machine)

-SGD

-Logistic Regression

 

7. 모델 평가하기 

- 분류모델을 통해 학습이 완료되었으면 test 데이터로 검증해야한다.

y_pred = decision_tree.predict(X_test)
y_pred

#실제 정답과 맞는지 확인하기 
y_test 

- scikit-learn 에서 성능평가 패키지를 이용하면 예측결과를 더 편리하게 확인할 수 있다.

- sklearn.metrics 패키지 안에 여러가지 평가 척도가 있다.

- Accuracy(정확도), Recall(재현율), Precision(정밀도), F1 등 

- 이 척도는 오차행렬과 관련된 개념이다. 

- 오차행렬은 다음 포스트에서 자세히 다루겠다. 

728x90