Python Machine Learning/Scikit-learn
-
사이킷런 ( Scikit-learn ) - 7Python Machine Learning/Scikit-learn 2020. 7. 22. 19:44
지금까지 해온 사이킷런에 대한 것을 복습하고자 타이타닉 탑승자 데이터를 기반으로 생존자 예측을 사이킷런으로 수행해 보겠습니다. 이것 또한 주피터노트북을 이용하여 수행하겠습니다. 그리고 아직 하진 않았지만 시각화 캐지인 맷플롯립과 시본을 이용해 간단한 차트와 그래프도 함께 시각화 해보겠습니다. 기본적으로 타이타닉 탑승자 데이터는 이와 같습니다. * Passengerid : 탑승자 데이터 일련번호 * survived : 생존 여부, 0 = 사망, 1 = 생존 * Pclass : 티켓의 선실 등급, 1 = 일등석, 2 = 이등석, 3 = 삼등석 * sex : 탑승자 성별 * name : 탑승자 이름 * Age : 탑승자 나이 * sibsp : 같이 탑승한 형제자매 또는 배우자 인원수 * parch : 같이 탑..
-
사이킷런 ( Scikit-learn ) - 6Python Machine Learning/Scikit-learn 2020. 7. 22. 18:17
데이터 전처리란? - ML 알고리즘은 데이터에 기반하고 있는데 어떤 데이터를 입력으로 가지느냐에 따라 결과도 크게 달라집니다. ( Garbage-In -> Garbage-Out ) 그렇기 때문에 데이터 전처리는 ML알고리즘만큼 중요합니다. - 데이터 전처리의 기본 사항으로는 다음과 같습니다. 사이킷런의 ML알고리즘은 문자열 값을 입력 값으로 허용하지 않기때문에 모든 문자열 값은 인코딩돼서 숫자형으로 변환해야 합니다. 문자열 피처는 텍스트형 피처를 의미하며 텍스트형 피처는 피처 벡터화등의 기법으로 벡터화하거나 불필요한 피처판단되면 삭제하는게 좋습니다. 결손값, 즉 NaN, Null값이 허용되지 않으며 이러한 Null값은 고정된 다른 값으로 변환해야 합니다. - 데이터 전처리가 하는 역할은 다음과 같습니다...
-
사이킷런 ( Scikit-learn ) - 5Python Machine Learning/Scikit-learn 2020. 7. 22. 16:58
cross_val_score( ) - 사이킷런에서는 교차 검증을 좀 더 편리하게 수행할 수 있게 해주는 API를 제공하는데 그 중 대표적인 것이 cross_val_score( )입니다. 앞서 설명한 KFold로 데이터를 학습하고 예측하는 코드를 보면 다음과 같은 과정을 거칩니다. 1. 폴드 세트를 설정하고 2. for루프에서 반복으로 학습 및 테스트 데이터의 인덱스를 추출한 뒤 3. 반복적으로 학습과 예측을 수행하고 예측 성능을 반환. 이러한 과정을 한꺼번에 수행해주는 API가 cross_val_score( ) 입니다. cross_val_score( ) API의 기본 선언 형태는 cross_val_score( estimaor, X, y= None, cv=None, n_jobs=1, verbose=0, f..
-
사이킷런 ( Scikit-learn ) - 4Python Machine Learning/Scikit-learn 2020. 7. 21. 19:25
사이킷런은 학습 데이터와 테스트 데이터 세트를 분리, 교차 검증 분할 및 평가, Estimator의 하이퍼 파라미터를 튜닝하기 위한 다양한 함수와 클래스를 제공합니다. train_test_split() : 전체 데이터를 학습 데이터와 테스트 데이터 세트로 분리. - 테스트 데이터 세트를 이용하지 않고 학습 데이터 세트로만 학습하고 예측하는 것은 모의고사를 이미 한 번 보고 답을 알고 있는 상태에서 모의고사 문제와 같은 본고사 문제가 푸는 것과 같아 정확도가 100%는 잘못된 결과가 나오기 때문에 예측을 수행하는 데이터 세트는 학습을 수행한 학습용 데이터세트가 아닌 테스트 데이터 세트여야 합니다. - 사이킷런에서는 train_test_split( )를 통해 원본 데이터 세트에서 학습 및 테스트 데이터 세트..
-
사이킷런 ( Scikit-learn ) - 3Python Machine Learning/Scikit-learn 2020. 7. 21. 16:56
- 앞서 붓꽃 데이터를 사용하여 붗꽃의 품종을 분류를 해보았는데 큰 설명없이 지나갔던 부분에 대해서 한번 더 짚고 넘어가보려고 합니다. - 사이킷런에서는 분류 알고리즘을 구현한 클래스를 classifier, 회귀 알고리즘을 구현한 클래스를 Regressor로 지칭하며,분류와 회귀를 합쳐서 Estimator 클래스라고 부릅니다. 또한 지도학습의 주요 두 축인 분류와 회귀의 다양한 알고리즘을 구현한 모든 사이킷런 클래스는 ML모델 학습을 위해서 fit( )을, 학습된 모델의 예측을 위해 predict( )메소드를 제공합니다. - 지도학습뿐만 아니라 비지도학습인 차원 축소, 클러스터링등을 구현한 클래스 역시 fit( )과 transform( )을 적용. - 비지도학습에서 fit( )은 입력 데이터의 형태에 맞..
-
사이킷런 ( Scikit-learn ) - 2Python Machine Learning/Scikit-learn 2020. 7. 21. 15:08
사이킷런에는 설명하기 좋은 내장 예제들이 있습니다. 그 중 저는 붓꽃 품종 예측하기라는 내장 예제들을 이용하겠습니다. 붓꽃 데이터 세트는 꽃잎의 길이와 너비, 꽃받침의 길이와 너비 속성( feature)를 기반으로 꽃의 품종을 예측하고 분류( Classification )하는 것입니다. ▲ 분류란? - 대표적인 지도학습방법의 하나로, 지도학습은 학습을 위한 다양한 피처와 분류 결정값인 레이블 데이터로 모델을 학습한 뒤, 별도의 테스트 데이터 세트에서 미지의 레이블을 예측하는 것입니다. 즉 지도학습은 명확한 정답이 주어진 데이터를 먼저 학습한 뒤 미지의 정답을 예측하는 방식입니다. - 학습을 위해 주어진 데이터 세트를 학습 데이터 세트, 머신러닝 모델의 예측 성능을 평가하기 위해 별도로 주어진 데이터 세트..
-
사이킷런 ( Scikit-learn ) - 1Python Machine Learning/Scikit-learn 2020. 7. 21. 13:58
사이킷런이란? - 파이썬 기반의 머신러닝은 사이킷런으로 개발하는 것을 의미할 정도로 오랜 기간 파이썬 세게에서 인정받았으며, 사이킷런은 파이썬 기반의 머신러닝을 위한 가장 쉽고 효율적인 개발 라이브러리를 제공합니다. - 최근에는 텐서플로, 케라스등 딥러닝 전문 라이브러리들이 생겨났지만 여전히 많은 데이터 분석가가 의존하는 대표적인 파이썬 ML라이브러리입니다. 파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉽고 가장 파이썬스러운 API 제공. 머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API를 제공. 오랜 기간 실전 환경에서 검증됐으며, 매우 많은 환경에서 사용되는 성숙한 라이브러리. 주로 넘파이( Numpy )기반으로 작성. 등의 특징을 가집니..