BALL

Business Analytics for ALL

데이터 분석 공부

사이킷런에 대해 소개합니다!

SMWU_BALL 2023. 5. 20. 09:10

 

안녕하세요, BALL입니다!

 

 

 

이번 포스팅은 데이터 분석에서 빼놓을 수 없는,

머신러닝의 대표적인 패키지 사이킷런에 대해 간략히 소개해드리고자 합니다🙂

 


 

 

 

사이킷런은 매우 많은 머신러닝 알고리즘을 제공할 뿐만 아니라,

쉽고 직관적인 API 프레임워크, 편리하고 다양한 모듈 등을 지원합니다.

 

 

파이썬 기반의 머신러닝 패키지에서 사이킷런만큼

다양한 머신러닝 기능을 제공하는 패키지는 단연코 없는데요 !

 

이와 더불어 사이킷런의 직관적인 API가 머신러닝 애플리케이션을 쉽게 구현시켜주므로,

사이킷런의 기본적인 개념부터 활용 방법까지 익히는 것이 중요합니다.

 

최근에는 텐서플로, 케라스 등 딥러닝 전문 라이브러리의 강세로 인해 대중적인 관심이 줄어들고 있지만,

여전히 많은 데이터 분석가가 의존하는 대표적인 파이썬 ML 라이브러리입니다.


 

 

 

 

사이킷런으로 구현하는 머신러닝 프로세스를 간략히 알려드리겠습니다.

 

먼저 분석하고자 하는 데이터를 가공하여 변환하는 전처리 작업을 수행합니다.

(모델이 이해하기 쉽도록 데이터를 가공하는 과정이라고 생각하면 됩니다!)

 

 

그 다음에는,

데이터를 모델에 학습시킬 학습 데이터예측에 필요한 테스트 데이터분리합니다.

 

 

데이터 세트 분리 작업을 거친 후에는

학습 데이터를 기반으로 머신러닝 알고리즘을 적용해 모델을 학습시킵니다.

이때 데이터 특성마다 적용할 수 있는 모델은 매우 다르고,

그 종류도 다양하니 공부가 더 필요한 부분입니다 :)

 

 

마지막으로 학습된 모델을 기반으로 테스트 데이터에 대한 예측을 수행하고,

이렇게 예측된 결괏값을 실제 결과값과 비교해 머신러닝 모델에 대한 평가

즉, 성능을 도출합니다.

 

 

 

 

 

 

 

사이킷런에서는 위의 머신러닝 수행 프로세스에 필요한 모듈을 제공합니다.

그 종류로는 다음과 같습니다!

 


 

 

 

 

 

구현 과정에서 특히 주목해야 할 전처리 작업과 데이터 세트 분리 과정에 대해 알아보겠습니다.

 

 

 

데이터의 전처리 작업

오류 데이터의 보정이나 Null값 처리 등의 다양한 데이터 클렌징 작업,

레이블 인코딩이나 원-핫 인코딩과 같은 인코딩 작업,

그리고 데이터 스케일링과 정규화 작업 등으로

ML 알고리즘이 잘 수행될 수 있게 데이터를 사전 처리하는 과정입니다.

 

 

데이터 내에 빈 값이 많거나,

모델이 학습할 수 없는 데이터의 자료형이거나,

지나치게 특정값으로 치우친 경우에 해당 전처리 작업이 필수이겠죠?

 

 

 

 

이후 머신러닝 모델은 학습 데이터 세트로 학습한 뒤

반드시 별도의 데이터 세트로 평가되어야 합니다.

테스트 데이터의 부족이나

고정된 테스트 세트에 대한 반복적인 모델의 학습과 평가

해당 테스트 데이터 세트에만 치우친

빈약한 머신러닝 모델을 만들 가능성이 높습니다.

 

 

 

 

이를 해결하기 위해,

학습 데이터 세트를 학습 데이터와 검증 데이터로 구성된

여러 개의 폴드 세트로 분리해 교차 검증을 수행할 수 있는데요.

 

사이킷런은 이러한 교차 검증을 지원하기 위해

KFold, StratifiedKFold, cross_val_score() 등의 다양한 클래스와 함수를 제공합니다.

또한 머신러닝 모델의 최적화 하이퍼 파라미터를

교차 검증을 통해 추출하기 위해 GridSearchCV를 제공합니다.

 

KFold 교차검증을 이해하기 위한 그림입니다 :)


 

 

 

 

 

사이킷런에 대한 기본적인 개념과 활용에 대해 이해하셨다면,

실제 데이터를 이용해 사이킷런을 수행해보는 것을 추천드립니다.

 

 

 

머신러닝에 입문을 위한 대표 기초 예제로 ‘타이타닉 생존자’ 데이터가 있습니다.

데이터 분석 오픈 포털인 캐글에서 타이타닉 생존자 데이터를 다운받으신 후,

타이타닉 탑승자 데이터를 기반으로 생존자 예측을 사이킷런을 수행해보시는 것을 추천드립니다.

이에 대한 저마다의 다양한 분석 코드 역시 캐글에 공유되어 있습니다😊

🔻

 

Titanic - Machine Learning from Disaster | Kaggle

 

www.kaggle.com


 

 

 

 

 

지금까지 사이킷런에 대해 알아보았습니다😀

 

 

 

사이킷런은 다양한 개발 환경에서

오랜 기간동안 라이브러리의 안전성과 유용성이 검증된 패키지이며,

파이썬 기반에서 머신러닝을 배우기를 원한다면

반드시 경험해야 할 패키지라고 생각합니다.

 

데이터 분석에 대해 이제 막 흥미가 생기신 분들이라면,

파이썬에서 직접 사이킷런을 통해 모델을 구현해보세요!

 

 

 


다음에 더 유익한 내용으로 찾아뵙겠습니다 !

 

 

*본 포스팅은 [파이썬 머신러닝 완벽 가이드] 저서를 기반으로 기획하였습니다