2023년 6월 업데이트
안녕하세요. SQLER의 코난 김대우입니다.
이번 강좌에서는, Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성을 진행토록 하겠습니다.
SQLER에서 진행되는 전체 Python / 머신러닝 강좌 목록
코드를 실행하기 위해서는, vscode에서 새로운 파일을 만들고 실행하시면 됩니다.
예를 들어, 1_notebook.ipynb를 생성하고 vscode에서 실행하면, Jupyter notebook이 실행됩니다.(vscode에서 실행도 가능하며, 웹브라우저에서도 실행 가능합니다.)
상세한 환경 구성이 필요하시다면, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 문서를 참조해 WSL, vscode, conda, jupyter notebook 설정을 모두 먼저 완료하시길 권장해 드립니다.
TL;DR
머신러닝 강좌는 Jupyter Notebook으로 진행되며 브라우저나 개발 도구에서 선택해 사용할 수 있습니다. 윈도의 명령프롬프트(Anaconda 커맨드 창)이나 WSL(리눅스) bash shell에서 Jupyter Notebook을 설치할 수 있습니다.
Python 머신러닝 강좌 - 1. 주피터 노트북(Jupyter Notebook) 구성
SQLER의 Python 머신러닝 강좌를 시작하기 전에
SQLER의 Python 머신러닝 강좌에 방문해 주셔서 감사드립니다.
이 강좌는 개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 목차 문서의 내용대로, Python 초급/중급 강좌에 별개로 진행되는 머신러닝 강좌입니다. 기본적인 Python 강좌는 위의 목차 링크를 참고하시길 바랍니다.
Python 머신러닝 강좌에서 진행할 일반적인 내용
이 강좌에서는 머신러닝에서 사용되는 일반적인 Python 라이브러리와 도구를 이용해 데이터 처리부터 머신러닝 처리까지의 과정을 다룹니다. 머신러닝에 대해 처음 접하는 개발자를 위한 콘텐츠로 준비했으며, 처음 접하는 머신러닝을 이해하고, 실재 hands-on 하는 것을 목표로 진행됩니다. SQLER의 여러 머신러닝 강좌도 참고하시면 도움 되실 거에요.
Jupyter notebook(lab) 구성
Jupyter notebook이나 Jupyter lab이나 비슷합니다. 브라우저나 개발도구에서 어떤 것으로 지정하는지의 문제이지, 구조 등도 모두 비슷합니다. Lab의 경우 조금 더 CSV 파일 등을 열어 보는 기능이나 파일/디렉토리 구조 트리뷰(tree view)를 지원하며, extension 기능을 지원합니다.
Jupyter notebook을 설치하는 방법
이전 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 강좌에서 소개해 드린 것처럼,
이렇게 윈도의 anaconda 커맨드 창이나 WSL(리눅스) bash shell에서 install을 하시면 됩니다.
꼭 위의 Python 개발 환경 구성 문서를 참조해, conda 환경을 구성하고 conda activate 하신 후 설치/실행하시길 권장해 드립니다. 여러 Python 프로젝트를 병행하면서 개발하면, 이 독립적인 python 개발 환경을 제공하는 conda의 고마움을 아실 겁니다.
# 머신러닝 개발 강좌를 위한 conda 환경 생성 conda create -n sqler_ml_lec python=3.11 # sqler_ml_lec conda 환경 활성화 conda activate sqler_ml_lec # Jupyter notebook 설치 - conda 환경을 사용 추천 conda install jupyter # conda 환경이 아닐 경우 pip install jupyter
설치가 완료되면 윈도 명령창이나 WSL(리눅스) bash에서 이렇게 실행하면 됩니다.
# notebook 실행 jupyter notebook
실행하면, 이렇게 아래쪽에 토큰 정보와 함께 로컬에서 실행 가능한 포트 경로가 보입니다.
토큰은 자동 생된 된 랜덤 값이고, 실행시마다 변경됩니다.
브라우저에서 복사해 실행하면 이렇게 노트북이 잘 보입니다.(포트 번호는 위의 링크와 다를 수 있습니다.)
주의사항 = 노트북 실행 시 500 Internal Server Error 발생
2023년 6월 기준 Jupyter notebook 실행 후 특정 버전(3.10) 이상의 Python 환경에서 노트북을 열면 "500 Internal Server Error"가 발생하는 이슈가 있습니다. 원인은 notebook에서 dependency로 사용되는 nbconvert가 Python 3.10 이상 환경을 지원하지 않기 때문입니다. 해결방법은 아래와 같이 nbconvert를 특정 버전으로 지정하면 됩니다.
SQLER 분들은 저와 같이 conda 환경을 이용하실 테니, "conda 환경일 경우" 방법을 사용하시면 됩니다.
Jupyter Notebook 500 : Internal Server Error
# conda 환경일 경우 conda install nbconvert==5.4.1 # conda 환경이 아닐 경우 pip install --upgrade --user nbconvert
(옵션) Jupyter lab 설치 및 실행
옵션이므로 반드시 설치할 필요 없습니다. 강좌는 모두 Jupyter notebook으로 진행됩니다.
lab 설치 및 실행
# jupyterlab 설치 - conda 환경 추천 conda install jupyterlab # conda 환경이 아닐 경우 pip install jupyterlab # jupyter lab 실행 jupyter lab
실행하면 Jupyter lab이 론칭됩니다.
그러면, 이렇게 jupyter lab을 실행 가능합니다(포트번호는 위와 다를 수 있습니다.)
(옵션) 팀의 서버 또는 클라우드 VM 등에서 Jupyter를 공유하고 싶을 경우에 몇 가지 실행 팁
추가적으로 팀원이나 클라우드 VM에서 실행해 Jupyter를 공유하고 싶을 경우에 몇 가지 실행하는 팁을 소개해 드리면,
# 0.0.0.0으로 외부 접근 가능하도록 구성 # 포트를 변경해 Jupyter notebook(lab)을 실행 jupyter notebook --ip=0.0.0.0 --port=8080 # 토큰키를 추가로 설정 jupyter notebook --ip=0.0.0.0 --port=8080 --NotebookApp.token='토큰'
이런 형태로 구성하면, 지정한 토큰을 이용해 인증이 가능합니다.
위의 토큰키를 이용할 경우, 팀원이나 외부에서 접근 시 이런 링크로 접근하면 됩니다.
http://원격or클라우드서버:8080/tree?token=토큰
팀원들과 원격 서버를 이용할 경우, 반드시 접근 제한을 위해 IP range 정책 등의 추가 접근 제한 정책을 구성하세요.
(옵션) vscode에서 Jupyter notebook을 생성 및 실행하는 방법
소개해 드린, 개발자 커뮤니티 SQLER.com - Python 초급 강좌 목차 - 1. Python 개발 환경 구성 - 환경구성 강좌를 따라오셨다면, 이미 vscode를 잘 사용하고 계실 겁니다. 브라우저를 이용해 실행하는 방법과 다르게, vscode에서는 실행이 좀 더 간편합니다. 이렇게 ipynb 확장자 파일을 생성하거나, 기존 ipynb 노트북 파일을 선택하면, 이렇게 잘 보입니다.(저는 vscode dark 테마라 화면이 저와 다를 수 있습니다.) 브라우저의 vscode와 거의 같은 기능을 수행하지만, git SCM과의 연동 등 다양한 vscode의 개발 편의 기능을 통합해 이용 가능합니다.
만약 vscode에서 notebook 실행에 문제가 있다면, 왼쪽 아래 Python environment를 확인하세요.
클릭하시고, jupyter가 구성된 conda environment를 선택하시면 바로 notebook을 이용 가능합니다.
Jupyter notebook 실행 화면
노트북의 실행 화면은 간단합니다.
- 1개의 셀 = 실행 단위로, 푸른색 코드셀 부분에 코드를 넣고 위의 실행 버튼을 누르면 코드가 실행됩니다.
- 셀을 추가하려면, insert 메뉴에서 추가하거나 단축키(esc 누른 후 a나 b키를 눌러서 위나 아래에 추가)로 추가 가능합니다.
- 코드의 실행은 순차적이 필요 없이 뒤쪽 셀을 실행하다가, 앞쪽 셀을 수정 후 실행하고 다시 맨 뒤의 셀을 이어서 실행하는 식의 커널 단위 작업이 가능합니다.
- 붉은색 셀 부분은 "마크다운(markdown)" 셀로, 일반 셀을 마크다운 셀로 변환하고 설명이나 주의사항 등을 추가 가능합니다.
- 보라색 셀 부분은 코드셀을 실행 후 출력된 결과입니다.
- 코드셀에서 변수나 개체명을 타이핑하면, print문과 같은 결과가 출력됩니다.
☑️ 챗GPT 활용: python jupyter notebook의 역사
SQLER의 머신러닝 강좌는 jupyter notebook으로 진행
SQLER에서 진행하게 될 강좌는 이제 Jupyter notebook으로 진행됩니다. 제가 만났고 같이 프로젝트를 진행한 Data Scientist 분이나 많은 머신러닝을 공부하고 개발하는 분들도 notebook을 자주 이용합니다.
특히, notebook은 팀원들과 빠르게 구현된 코드를 실행해 결과를 리뷰하거나(특히 pandas), 작은 python 코드들을 테스트하기에도 좋은 개발 환경입니다.
SQLER의 강좌를 통해 이후 머신러닝을 개발할 때 많은 도움 되시길 바랍니다.
감사합니다.
파이썬 강좌 책 구매
강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다.
책구매 링크: 챗GPT와 함께하는 파이썬 & 머신러닝 코딩 마스터
참고자료
개발자 커뮤니티 SQLER.com - Python 무료 강좌 - 기초, 중급, 머신러닝