포스팅 개요
이번 포스팅은 Mac os 환경에서 lightgbm을 설치하는 방법에 대해 정리합니다.
매번 lightgbm을 설치할 때마다 공식 문서대로 해도 설치가 잘 되지 않는 삽질을 하게 되는데 이번 기회에 정리를 해보고자 합니다.
제가 참고한 자료는 아래와 같습니다.
포스팅 본문
본 포스팅은 mac os Python 환경에서 머신러닝(machine learning) 알고리즘 중 강력한 알고리즘 중 하나인 lightgbm 라이브러리를 설치하는 방법에 대해 정리합니다.
본 포스팅은 아래와 같은 구성으로 작성합니다.
- MacOS에서 lightgbm 설치하기
- 각종 오류와 삽질들
1. MacOS에서 lightgbm 설치하기
먼저, 제 MacOS와 Python 환경은 아래와 같습니다.
- macos catalina 10.15
- Python 3.8 ( Anaconda )
MacOS에서 lightgbm을 설치하는 방법은 아래와 같습니다. 공식 문서에도 나와있지만, 조금 다른 부분이 있습니다. 공식 문서에 나와 있는대로 하면 저는 설치가 되지 않더라구요.
1-1. homebrew로 lightgbm 설치
homebrew로 lightgbm을 설치하는 것은 공식 문서와 동일하게 진행하면 됩니다.
brew install lightgbm
1-2. cmake, gcc설치
lightgbm을 mac에 설치하려면 cmake와 gcc가 필요한데요. mac os 환경에서 lightgbm을 설치할 때 이 부분에서 삽질이 많이 나오게 됩니다. gcc 버전 문제 때문인데요. 이 버전이 환경마다 다르게 적용될 수 있기 떄문에 그런 것 같습니다. 저는 gcc 버전 문제 때문에 이 부분은 공식 문서와 조금 다르게 진행했습니다. 단순히 brew install gcc를 하면 gcc 버전이 맞지 않아 나중에 에러가 나오더라구요. 해당 에러는 아래 섹션에 정리해뒀습니다. (아래 에러메세지 1번 참고)
여기서는 아래와 같이 각자 버전에 맞게 설치합니다. 제 환경에서는 gcc@8로 설치해줘야 했습니다.
(혹시 gcc7이나 다른 버전으로 하셔도 잘 되시는 분들이면 굳이 8로 하실 필요는 없습니다! 안 되시는 분들은 8로 해보셔요)
brew install cmake
brew install gcc@8
3. git clone해서 설치 마무리 및 확인
이제 git clone을 해서 설치 마무리를 하면 됩니다. 이 부분도 공식문서와 약간 다릅니다. 공식문서에는 gcc7로 되어 있는데 저는 gcc8로 설치하였기 때문에 해당 부분을 수정해줍니다. 여기서 버전은 각자 버전에 맞게 해주시면 되겠습니다!
git clone --recursive https://github.com/microsoft/LightGBM
cd LightGBM
export CXX=g++-8 CC=gcc-8
mkdir build
cd build
cmake ..
make -j4
4. lightgbm을 pip로 설치
이제 pip를 이용해 lightgbm을 설치해주면 됩니다. 저는 여기서도 삽질이 나왔는데요. 아래와 같은 2가지 방법으로 설치할 수 있습니다.
- pip install lightgbm.
- pip install --no-binary :all: lightgbm
개인적으로는 첫 번째 방법으로 설치할 때 설치는 되었지만 python에서 lightgbm을 실행할 때 에러가 나왔습니다.(아래 에러메세지 2번 참고) 그래서 저는 두 번째 방법으로 설치를 했습니다. 두 번째 방법으로 설치하니까 동작이 되는 것을 확인할 수 있었습니다.
5. 실행 결과 확인
이제 mac에 lightgbm이 잘 설치 되었는지 확인해봅니다. 아래 코드가 잘 동작이 되면 설치가 잘 마무리 된 것입니다!
from lightgbm import LGBMClassifier
import numpy as np
model = LGBMClassifier()
data = [[0, 1, 3], [1, 2, 1], [1, 1, 3]]
data = np.array(data)
y = np.array([1, 0, 1])
model.fit(data, y)
model.predict(data)
각종 오류와 삽질들
macos 환경에서 lightgbm을 설치하면서 겪은 오류와 삽질을 정리합니다.
에러메세지1.
CMake Error at /usr/local/Cellar/cmake/3.20.5/share/cmake/Modules/CMakeDetermineCCompiler.cmake:49 (message):
Could not find compiler set in environment variable CC:
gcc-7.
Call Stack (most recent call first):
CMakeLists.txt:32 (PROJECT)
could not find compiler set in environment variable CC gcc-7, call stack CMakeList 라는 문구의 오류입니다.
이 문제가 환경마다 gcc가 다른 문제입니다. 각자 환경에 맞는 gcc를 설치해주시고 gcc에 맞도록 설치해줘야 합니다. (설치 2번)
에러메시지2.
DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
return f(**kwargs)
zsh: segmentation fault python
zsh:segmentation fault python 이라는 에러가 나오는 경우입니다.
이 상황이 4번 프로세스에서 lightgbm을 설치하면 나오는 상황이었는데요. 정확히 무슨 에러인지는 모르겠으나, lightgbm이 제대로 설치되지 않아 동작하지 않았던 것 같았습니다.
따라서 설치 할 때 4번 과정에서 두 번째 경우대로 하니 제대로 동작되었음을 확인할 수 있었습니다.
마무리
이번 포스팅은 macos에서 lightgbm을 설치하는 방법에 대해 정리해봤습니다. gcc 등 환경에 따라 달라질 수 있어서 매번 삽질을 하였는데 이번 기회에 정리를 해보았습니다.
부디 도움이 되시길 바랍니다.