상세 컨텐츠

본문 제목

[ Python ] 금융 데이터 분석을 위한 실습 환경 준비하기(2)

Study/Finance Data Analytics

by bing_su 2023. 8. 3. 11:53

본문

반응형
SMALL

저번 게시글에서는 아나콘다를 설치하고, 구글의 코랩을 사용하는 방법을 다뤘다. 이번 게시글에서는 아나콘다에는 포함되어 있지 않은, 실습을 위한 패키지 설치를 다루려고 한다. 아나콘다를 설치하지 않고 파이썬만 설치된 상태라면 Numpy, Pandas, matplotlib, seaborn, nltk 등의 패키지를 pip로 설치하고 오길 바란다. (구글링 하세요 ㅎ..) 이 게시글에서도 마찬가지로 윈도우 환경을 기준으로 설명한다.

 

같이 설치해 볼 패키지는 텐서플로우(Tensorflow), 케라스(Keras), 젠심(Gensim), 사이킷런(Scikit-learn), 주피터 노트북(Jupyter Notebook)이다.

[ 텐서플로우(Tensorflow) ]

텐서플로우는 구글이 2015년에 공개한 머신 러닝 오픈소스 라이브러리다. 해당 패키지를 이용하면 머신 러닝과 딥 러닝을 직관적이고 손쉽게 할 수 있다. 추후에 할 딥 러닝 실습을 위해서는 텐서플로우를 설치해야 한다.

 

아나콘다 프롬프트(Anaconda Prompt)를 다시 열어서 텐서플로우를 설치해야 한다. 그전에 저번 게시글에서 살펴본 파이썬 버전과 호환되는 텐서플로우 버전이 있는지부터 확인해야 한다.

호환되는 텐서플로우 확인: https://www.tensorflow.org/install/source_windows?hl=ko#gpu 

 

Windows의 소스에서 빌드  |  TensorFlow

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Windows의 소스에서 빌드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 소스에서 TensorFlow

www.tensorflow.org

파이썬과 호환되는 텐서플로우 버전 확인

가장 최근의 텐서플로우 버전은 2.10.0 버전이고, 호환되는 파이썬 버전은 최대 3.10까지다.

'python --version' 명령어를 통해 설치된 파이썬 버전 확인

'python --version'으로 확인했을 때 우리가 설치한 pyhton 버전은 3.8.17 버전이라 호환되는 텐서플로우 버전이 있기 때문에 파이썬 버전을 변경하지 않고 텐서플로우를 설치할 수 있다.

conda update --all
conda install python=x.xx.xx  # x.xx.xx에 본인이 원하는 파이썬 버전 입력

정말 최신 버전을 설치해서 호환되는 버전이 없는 사람들은 아나콘다에서 'conda search python' 명령어를 통해 사용 가능한 파이썬 버전을 확인한 후 위의 명령어를 통해 원하는 파이썬 버전으로 바꾸면 된다. (시간이 좀 많이 오래 걸립니다.) 혹은 아나콘다가 아닌 일반 파이썬을 설치하신 경우에는 호환되는 버전으로 파이썬 재설치하세요.

pip install tensorflow

호환되는 파이썬 버전을 설치한 경우에는 아나콘다 프롬프트(Anaconda Prompt)에서 위의 명령어를 입력하여 텐서플로우를 설치하면 된다.

ipython 쉘 실행

파이썬에서는 Python shell이라는 기본적인 대화형 인터프리터(interpreter)를 제공한다. 잠깐 설명하자면 인터프리터는 프로그래밍 언어의 소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 대화형 인터프리터에서는 입력에 대한 출력 값이 바로 나온다. 입출력이 번갈아 이어지는 것이 마치 대화하는 것 같다고 하여 '대화형' 인터프리터라고 부른다. ipython은 Python shell이라는 기본적인 툴에 몇 가지 기능을 덧붙인 툴이라고 할 수 있다.

※ 설치 중 에러가 발생할 때

패키지가 호환되지 않는 에러

패키지 설치 중

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
scipy 1.6.2 requires numpy<1.23.0,>=1.16.5, but you have numpy 1.24.3 which is incompatible.

위와 같은 에러가 뜰 수 있다. 이는 Python 프로그래밍 환경에서 pip 패키지 관리자가 종속성 충돌을 감지했다는 것을 의미한다. 해당 에러에서는 'numpy' 패키지의 버전이 'scipy' 패키지와 호환되지 않는 문제가 발생했다는 것을 알려준다. 요약하자면 아래와 같다.

  • 'scipy' 1.6.2 버전은 'numpy' 1.16.5 이상이면서 1.23.0 미만이어야 호환됨.
  • 현재 설치된 'numpy' 버전은 1.24.3이므로 충돌이 발생

해당 문제를 해결하기 위해서는 'numpy' 버전을 다운그레이드하거나 'scipy' 버전을 업그레이드하는 방법을 사용할 수 있다. 즉 'numpy'와 'scipy' 버전을 호환되는 버전으로 변경하는 것이다.

1) 'numpy' version을 downgrade하는 방법

pip install numpy==1.22.0

위의 명령어를 사용하여 numpy 버전을 낮춰 주면 된다.

2) 'scipy' version을 upgrade하는 방법

pip install --upgrade scipy

위의 명령어를 사용하여 scipy 버전을 최신 버전으로 업데이트 하면 된다.

다만, 'scipy' version을 upgrade하여 tensorflow를 import 하려 하면 또 'numpy'를 downgrade 해야 한다는 오류가 발생하니까 그냥 'numpy' 버전을 다운그레이드 하자. (어차피 안된다.)

 

이러한 ipython 쉘을 실행하여 아래의 명령어를 입력하면 텐서플로우가 정상 설치되었는지 확인할 수 있다.

# tensorflow 모듈을 불러와서 'tf'라는 이름으로 지정함
In [1]: import tensorflow as tf
# tf(tensorflow 모듈)의 버전을 확인하는 명령어
In [2]: tf.__version__
# 쉘을 나오는 명령어
In [3]: exit

다른 패키지들도 동일한 방식으로 정상적으로 설치가 되었는지 버전을 확인해 주면 된다. 참고로 말하자면 텐서플로우는 주로 'tf'라는 명칭으로 import 하는 것이 관례라고 한다.

[ 케라스(Keras) ]

케라스(Keras)는 딥 러닝 프레임워크인 텐서플로우에 대해 추상화된 API(Application Programming Interface)를 제공한다. 따라서 텐서플로우에 비해 코드를 훨씬 간단하게 작성할 수 있어 조금 더 쉽게 딥 러닝을 할 수 있게 해 준다. 대신에 케라스는 저수준의 연산(텐서 곱, 합성곱 등)을 자체적으로 다루지는 않는다. 따라서 기본적으로 백엔드 엔진으로 텐서플로우를 사용한다. 쉽게 말하자면, Tensorflow 위에서 동작하는 라이브러리가 Keras 라이브러리라고 생각하면 된다.

pip install keras

케라스를 설치하는 명령어지만, 텐서플로우(tensorflow) 버전이 2.0으로 올라오면서 케라스(keras)가 텐서플로우 위에서 동작하게 되었다. (통합되었다는 뜻) 따라서 텐서플로우의 tf.keras를 통해 따로 케라스를 설치하지 않고 케라스를 사용할 수 있게 되었다. 결론은 따로 설치하지 않아도 실습 진행하는데 아무 문제없으니까 설치는 알아서 할 사람만 하면 됨.

ipython 쉘에서 keras 버전 확인

텐서플로우와 마찬가지로 버전 확인을 함으로써 keras가 정상 설치되었음을 확인할 수 있다.

[ 젠심(Gensim) ]

젠심(Gensim)은 머신 러닝을 이용하여 토픽 모델링(Topic Modeling)과 자연어 처리 등을 수행할 수 있게 하는 오픈 소스 라이브러리다. 해당 라이브러리의 기능을 이용하여 실습하는 과정은 추후에 더 자세히 다룰 예정이니 일단 이 정도로 설명함.

pip install gensim

젠심을 설치하는 명령어다.

ipython 쉘에서 gensim 버전 확인

버전 확인을 함으로써 gensim이 정상 설치되었음을 확인할 수 있다.

[ 사이킷런(Scikit-learn) ]

사이킷런(Scikit-learn)은 파이썬 머신 러닝 라이브러리다. 사이킷런을 통해서 나이브 베이즈 분류(Naive Bayes Classification), SVM(Support Vector Machine) 등 다양한 머신 러닝 모듈을 불러올 수 있다. 또한, 사이킷런에는 머신 러닝을 연습하기 위한 자체 데이터(IRIS Dataset, 당뇨병 데이터 등)를 제공하고 있다. 사이킷런의 경우에는 아나콘다를 설치했다면 자동 설치가 되어 있지만, 아나콘다를 설치하지 않은 경우에는 아래의 명령어로 설치가 가능하다.

pip install scikit-learn

ipython 쉘에서 scikit-learn 버전 확인

버전 확인을 함으로써 scikit-learn도 정상 설치되었음을 확인할 수 있다.

[ 주피터 노트북(Jupyter Notebook) ]

주피터 노트북은 웹에서 코드를 작성하고 실행할 수 있는 오픈소스 웹 어플리케이션이다. 이전 게시물에서 다뤘던 구글의 코랩(Colab)과 실습 환경이 유사하다. 따라서 추후에 실습할 모든 코드는 본인의 컴퓨터에 설치된 주피터 노트북이나 구글의 코랩(Colab)을 사용한다고 가정한다. 주피터 노트북도 아나콘다를 설치하면 자동으로 설치되어 있다. 아나콘다가 아닌 일반 파이썬을 설치했다면 아래의 명령어를 통해 주피터 노트북을 별도로 설치할 수 있다.

pip install jupyter

설치가 완료되었다면 아나콘다 프롬프트에서 아래의 명령어를 통해 주피터 노트북을 실행할 수 있다.

jupyter notebook

해당 명령어를 치면 웹 브라우저가 자동으로 열리면서 주피터 노트북이 실행된다.

Jupyter Notebook 실행 링

실행되지 않으면 직접 실행시켜야 하는데, 프롬프트에서 나오는 주소(밑줄 친 주소)에 접속하면 된다.

Jupyter Notebook 접속 화면

(1) 새로운 노트 실행

'New > Python 3 (ipykernel)' 순서대로 클릭

주피터 노트북에서는 노트를 생성해서 해당 노트에 코드를 작성할 수 있다. 화면 우측에서 보이는 'New' 버튼을 누르고, 'Python 3 (ipykernel)' 버튼을 누르면 새로운 노트를 실행할 수 있다.

(2) 셀에 코드 작성하기

노트 실행 화면

노트를 실행하면 'In[ ]' 문자가 적힌 텍스트 상자가 나온다. 주피터 노트북에서는 해당 텍스트 상자의 단위를 셀(Cell)이라고 부른다. 해당 셀에 코드를 입력한 후에 'Cell > Run Cells'를 순서대로 클릭하면 코드가 실행된다. 마우스로 일일이 실행하는 것이 번거롭다면 'Shift + Enter'를 눌러서 현재 셀을 실행한 후에 다음 셀로 넘어갈 수 있다. (구글의 Colab에서와 동일한 방식)

 

앞으로의 실습은 Colab 또는 주피터 노트북에서 실행한다고 가정하므로, 둘 중 하나는 사용법을 반드시 숙지하길 바란다.

반응형
LIST

관련글 더보기

댓글 영역