본문 바로가기

머신러닝 공부

주피터 노트북 그리고 넘파이/판다스(jupyter, numpy, pandas)

SMALL

Jupyter Notebook

 

주피터 노트북은 대표적인 대화형 파이썬 툴입니다.

대화형 툴이란 것이 프로그래밍과 이에 대한 설명적인 요소를 결합했다는 의미입니다. 전체 프로그램에서 특정 코드 영역별로 개별 수행을 지원하여 영역별로 코드 이해가 명확하게 설명할 수 있는 장점이 있습니다.

셀이라고 불리는 주피터 노트북 요소 안에 실행할려는 코드를 집어 넣게 된다면 개별 셀별로 수행이 가능하게 됩니다.

전통적인 에디터 컴파일러들에서 디버깅할 때 브레이크 포인트를 정하는 것처럼 개별 코드별로 영역 수행이 됨에 따라서 코드 각각의 이해의 편리성이 돋보입니다.

 

이때 노트북(Notebook)은 중요 코드 단위로 설명을 적고 코드를 수행해 그 결과를 볼 수 있게 만들어서 직관적으로 어떤 코드가 어떤 역할을 하는지 매우 쉽게 이해할 수 있도록 지원합니다.

 

 

주피터 노트북을 실행을 시킨 후에 나오는 디폴트 화면에서 바로 kernel을 생성시키지 말고 새로운 폴더를 하나 만들고 그 안에서 실행을 시키겠습니다. [New]-[Folder]를 눌러 새로운 폴더를 하나 만들어 안에 들어가 kernel을 생성시킵니다.

커널 내부에서 실행단위는 셀로 우리가 코드를 입력할 수 있는 창이 됩니다.

여기서 어떤 걸 실행시킬건지 확인하는 것은 Code, Markdown, Raw NBConvert, Heading 이런 것들이 있는데 아마 Code 와 Markdown만 쓸 예정입니다.

일반적으로 Code는 실행, Markdown을 설명(Markup의 축약 스크립트 버전)

Markdown은 간단한 기호를 가지고 html수준까지는 아니지만 간단한 장식을 사용할 수 있습니다.

 

기본적으로 Code(python)을 셀 단위로 진행시키고자 한다면 원하는 코드를 입력후에 [Run] 버튼 혹은 Shift+Enter를 누르면 코드가 실행이되며 새로운 셀이 만들어집니다.

(참고로 Ctrl+Enter 을 누르면 코드 실행은 되지만, 새로운 샐은 만들어지지 않습니다.)

 

*가장 기본적인 markdown 사용법은 따로 인터넷으로 찾아봤습니다.

ex) ###(문장) : 헤더 텍스트 / **(문장)** : 강조 텍스트 ...

==> 코드를 쓰기 전에 Markdown으로 표시를 해주는 방법으로 사용합니다.

 

 

넘파이와 판다스의 중요성

 

파이썬 머신러닝을 하기 위해서 첫번째 넘어야 할 산이 머신러닝 패키지가 아니라 넘파이와 판다스입니다.

왜냐하면 머신러닝 애플리케이션에서는 매우 다양한 데이터의 추출/가공/변환이 코드에 상당한 영역을 차지하기 때문입니다. 그래서 데이터 처리 부분이 70~80%가량을 차지하며 나머지 20~30%가량의 코드가 머신러닝 알고리즘 코드 혹은 모델을 만드는 코드입니다.

 

특히, 넘파이의 기본 프레임워크는 이해를 하고 있어야 합니다. 왜냐하면 사이킷런이 넘파이 기반으로 작성된 패키지이기 때문에 함수에 받아드리는 기본 인자가 넘파이입니다. (반환도 마찬가지) 따라서 사이킷런과 더 친해지기 위해서는 넘파이는 필수불가적으로 넘어야할 산입니다.

 

그리고 사이킷런 경우에는 API구성이 간단하기 때문에 (특히 넘파이 API는 방대하다) documentation이 다양하게 되어있지는 못합니다. 판다스는 구글링을 하면 많이 나오긴 합니다. 그래서 넘파이, 판다스 애플리케이션을 배우는 것 때문에 머신러닝 배우는 시간의 소모가 조금 들어가긴 합니다.

그래도 API가 너무 많기 때문에 적당히만 하는 것을 추천합니다. 그래서 많은 시간을 들여서 학습을 한다면 본격적으로 머신러닝에 들어가기 전에 진이 빠져버리는 참사가 날 수 있어 얇은 지식으로만 하기를 권합니다.

 

그래서 넘파이, 판다스에서 중점적으로 알아야되는 부분만을 공부를 할 예정이기 때문에 나머지는 코드와 직접 부닥거리면서 모르는 API는 구글링해서 찾아보는 방식으로 공부를 진행할 예정입니다.

LIST

'머신러닝 공부' 카테고리의 다른 글

numpy(2)  (0) 2023.02.01
NumPy (넘파이)  (0) 2023.02.01
파이썬 머신러닝을 위한 SW 설치(2)-XGBoost, LightGBM  (0) 2023.01.31
파이썬 머신러닝을 위한 sw 설치  (0) 2023.01.31
머신러닝(Machine Learning)  (0) 2023.01.31