Xgboost: ํ• ์„ค์น˜ ์‹คํŒจ

์— ๋งŒ๋“  2015๋…„ 09์›” 02์ผ  ยท  72์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dmlc/xgboost

root@0c6c17725a7b :/# pip install xgboost
xgboost ๋‹ค์šด๋กœ๋“œ/ํ’€๊ธฐ
xgboost ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(๋ฒ„์ „: 0.4a12, 0.4a13).
์ฒญ์†Œ...
xgboost ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐฐํฌํŒ ์—†์Œ
/root/.pip/pip.log์— ์‹คํŒจ์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ ์ €์žฅ

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„์ปค์—์„œ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋„์ปค ์‹คํ–‰ -it --rm ์šฐ๋ถ„ํˆฌ:์‹ ๋ขฐ

apt-get update
apt-get install python-pip
pip install xgboost

์ด๊ฒƒ๋„ ์ฐธ์กฐ:

http://stackoverflow.com/questions/32258463/install-xgboost-under-python-failing

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋‹ค:

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package  

๋ชจ๋“  72 ๋Œ“๊ธ€

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค

ubuntu@ip-172-31-11-169 :~$ sudo apt-get ์—…๋ฐ์ดํŠธ
...์•ผ๋‹ค์•ผ๋‹ค
ubuntu@ip-172-31-11-169 :~$ sudo apt-get install python-pip
ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ์ฝ๋Š” ์ค‘... ์™„๋ฃŒ
์˜์กด์„ฑ ํŠธ๋ฆฌ ๊ตฌ์ถ•
์ƒํƒœ ์ •๋ณด๋ฅผ ์ฝ๋Š” ์ค‘... ์™„๋ฃŒ
python-pip๋Š” ์ด๋ฏธ ์ตœ์‹  ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
0๊ฐœ ์—…๊ทธ๋ ˆ์ด๋“œ, 0๊ฐœ ์ƒˆ๋กœ ์„ค์น˜, 0๊ฐœ ์ œ๊ฑฐ ๋ฐ 74๊ฐœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์ง€ ์•Š์Œ.
ubuntu@ip-172-31-11-169 :~$ sudo pip install xgboost
xgboost ๋‹ค์šด๋กœ๋“œ/ํ’€๊ธฐ
xgboost ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(๋ฒ„์ „: 0.4a12, 0.4a13).
์ฒญ์†Œ...
xgboost ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฐฐํฌํŒ ์—†์Œ
/home/ubuntu/.pip/pip.log์— ์‹คํŒจ์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ ์ €์žฅ
ubuntu@ip-172-31-11-169 :~$

--pre์˜ stackoverflow ์ œ์•ˆ์€ ๋‹ค์Œ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ubuntu@ip-172-31-11-169 :~$ sudo pip install --pre xgboost
xgboost ๋‹ค์šด๋กœ๋“œ/ํ’€๊ธฐ
xgboost-0.4a13.tar.gz ๋‹ค์šด๋กœ๋“œ(690kB): 690kB ๋‹ค์šด๋กœ๋“œ
xgboost ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ setup.py(๊ฒฝ๋กœ:/tmp/pip_build_root/xgboost/setup.py) egg_info ์‹คํ–‰
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: ์ฐพ์„ ์ˆ˜ ์—†์Œ
make: * ๋Œ€์ƒ python'. Stop. ----------------------------- Building multi-thread xgboost failed Start to build single-thread xgboost make: *** No rule to make target ๋ฅผ ๊นจ๋—ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ทœ์น™์ด ์—†์Šต๋‹ˆ๋‹ค'.
์ค‘์ง€.๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์„ฑ๊ณต๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๋ฒ„์ „์„ ์›ํ•˜์‹ ๋‹ค๋ฉดdoc/build.md์˜ ์ถ”๊ฐ€ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์„ธ์š”.xgboost/build-python.sh: 26: xgboost/build-python.sh: popd: ์ฐพ์„ ์ˆ˜ ์—†์Œ(์—†์Œ, ์—†์Œ)์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):ํŒŒ์ผ "", 17ํ–‰,


init .py", 8ํ–‰,








self._handle = _dlopen(self._name, ๋ชจ๋“œ)
OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: ์œ ํšจํ•˜์ง€ ์•Š์€ ELF ํ—ค๋”
python setup.py egg_info ๋ช…๋ น์˜ ์ „์ฒด ์ถœ๋ ฅ:
xgboost/build-python.sh: 13: xgboost/build-python.sh: pushd: ์ฐพ์„ ์ˆ˜ ์—†์Œ

make: *** ๋Œ€์ƒ์„ 'ํŒŒ์ด์ฌ'์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ทœ์น™์ด ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์ง€.


๋‹ค์ค‘ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์‹คํŒจ

๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์‹œ์ž‘

make: *** ๋Œ€์ƒ์„ '๊นจ๋—'ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ทœ์น™์ด ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์ง€.

make: *** ๋Œ€์ƒ์„ 'ํŒŒ์ด์ฌ'์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ทœ์น™์ด ์—†์Šต๋‹ˆ๋‹ค. ์ค‘์ง€.

๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์„ฑ๊ณต

๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๋ฒ„์ „์„ ์›ํ•˜์‹ ๋‹ค๋ฉด

doc/build.md์˜ ์ถ”๊ฐ€ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

xgboost/build-python.sh: 26: xgboost/build-python.sh: popd: ์ฐพ์„ ์ˆ˜ ์—†์Œ

(์—†์Œ, ์—†์Œ)

์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):

ํŒŒ์ผ "", 17ํ–‰,

ํŒŒ์ผ "/tmp/pip_build_root/xgboost/setup.py", 20ํ–‰,

import xgboost

ํŒŒ์ผ "./xgboost/ init .py", 8ํ–‰,

from .core import DMatrix, Booster

ํŒŒ์ผ "./xgboost/core.py", 78ํ–‰,

_LIB = _load_lib()

ํŒŒ์ผ "./xgboost/core.py", 72ํ–‰, _load_lib

lib = ctypes.cdll.LoadLibrary(lib_path[0])

LoadLibrary์˜ ํŒŒ์ผ "/usr/lib/python2.7/ctypes/ init .py", 443ํ–‰

return self._dlltype(name)

ํŒŒ์ผ "/usr/lib/python2.7/ctypes/ init .py", 365ํ–‰, init

self._handle = _dlopen(self._name, mode)

OSError: /tmp/pip_build_root/xgboost/xgboost/./wrapper/libxgboostwrapper.so: ์œ ํšจํ•˜์ง€ ์•Š์€ ELF ํ—ค๋”


์ฒญ์†Œ...
/tmp/pip_build_root/xgboost์˜ ์˜ค๋ฅ˜ ์ฝ”๋“œ 1๊ณผ ํ•จ๊ป˜ python setup.py egg_info ๋ช…๋ น์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
/home/ubuntu/.pip/pip.log์— ์‹คํŒจ์— ๋Œ€ํ•œ ๋””๋ฒ„๊ทธ ๋กœ๊ทธ ์ €์žฅ
ubuntu@ip-172-31-11-169 :~$

@cliveseldon @grfiv pip ์„ค์น˜์˜ ๋ฒ„์ „ ๊ด€๋ฆฌ๋Š” ๊ณต์‹ ๋ฒ„์ „ 0.4๊ฐ€ ์˜ค๋žซ๋™์•ˆ ๊ฑฐ๊ธฐ์— ์žˆ์—ˆ๊ณ  pip ์„ค์น˜์—๋Š” ์†Œ์Šค ์ฝ”๋“œ์˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ๊ฐ„์˜ ํ˜ผ๋™์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฒ„์ „ ์ด๋ฆ„์„ 0.4a12 0.4a13์œผ๋กœ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค ๋ฌด์—‡. ์ฐจํ›„ ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ๋ถ€ํ„ฐ ์ˆ˜์ •๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

pip ์„ค์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ ์ข‹์€ ์†”๋ฃจ์…˜์€ ์‚ฌ์ดํŠธ ํŒจํ‚ค์ง€ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ xgboost ๋””๋ ‰ํ† ๋ฆฌ์™€ xgboost-0.4a13.dist-info ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์˜ˆ: /User/phunterlau/python2.7/site-packages/ (์„ค์น˜ ์œ„์น˜๋Š” print xgboost.__file__ ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ)

์•ˆ๋…•ํ•˜์„ธ์š”,
๋‚ด ์šฐ๋ถ„ํˆฌ ์ƒ์ž์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํ–‰ํ•˜๋ ค๋ฉด:

sudo -H pip install --pre xgboost
python -c "import xgboost"

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/xgboost/__init__.py", line 11, in <module>
    from .core import DMatrix, Booster
  File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 92, in <module>
    _LIB = _load_lib()
  File "/usr/local/lib/python2.7/dist-packages/xgboost/core.py", line 86, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python2.7/dist-packages/xgboost/./wrapper/libxgboostwrapper.so: invalid ELF header

๋‚˜๋Š” ๋˜ํ•œ --pre ์—†์ด ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•˜๊ฒŒ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๋‹จ์„œ?
๊ฐ์‚ฌ ํ•ด์š”,
์—ํ”„.

Mac OSX์— xgboost-0.4a14๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด pip install xgboost๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

OSError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)
์ž…๋ ฅ()
----> 1 xgboost๋ฅผ xgb๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/ init .py in()
9 ์ˆ˜์ž… OS
10
---> .core์—์„œ 11 ๊ฐ€์ ธ์˜ค๊ธฐ DMatrix, Booster
.training ์ˆ˜์ž… ์—ด์ฐจ์—์„œ 12, ์ด๋ ฅ์„œ
.sklearn์—์„œ 13 ๊ฐ€์ ธ์˜ค๊ธฐ XGBModel, XGBClassifier, XGBRegressor

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py()
90
91 # XGBoost ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ๋กœ๋“œ
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):

/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/core.py _load_lib()
84 if len(lib_path) == 0:
85 ๋ฐ˜ํ™˜ ์—†์Œ
---> 86 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 ๋ฆฌํ„ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ LoadLibrary(์ž์ฒด, ์ด๋ฆ„)์˜ init .pyc
441
442 def LoadLibrary(์ž์‹ , ์ด๋ฆ„):
--> 443 ๋ฐ˜ํ™˜ self._dlltype(์ด๋ฆ„)
444
445 ๅฏ†ๅ ‚ = ็”ฒๅ ‚

/Users/azaitzeff/anaconda/lib/python2.7/ctypes/ init .pyc in init (์ž์ฒด, ์ด๋ฆ„, ๋ชจ๋“œ, ํ•ธ๋“ค, use_errno, use_last_error)
363
364 ํ•ธ๋“ค์ด ์—†์Œ์ธ ๊ฒฝ์šฐ:
--> 365 self._handle = _dlopen(self._name, ๋ชจ๋“œ)
366 ๊ธฐํƒ€:
367*

OS ์˜ค๋ฅ˜: dlopen(/Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so, 6): ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Œ: /usr/local/lib/gcc/4.9/libgomp .1.dylib
์ฐธ์กฐ: /Users/azaitzeff/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so
์ด์œ : ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

๋„์›€์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”
AZ

@AZaitzeff @Fkawala ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ ๋˜๋Š” Mac์— gcc๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ท€ํ•˜์˜ ์ •๋ณด๋ฅผ ๋ณด๋ฉด ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ lib์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— gcc๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด pip์˜ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ pip ์„ค์น˜ ํŒจํ‚ค์ง€์—๋Š” Mac์—์„œ brew์˜ gcc 4.9๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ lib libxgboostwrapper.so๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํŒจํ•˜๋ฉด xgboost๊ฐ€ ์ด ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ lib๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. Linux๋Š” ์ด Mac ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ELF ์ฝ”๋“œ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. OpenMP๊ฐ€ ์—†๋Š” Mac์˜ ๊ฒฝ์šฐ ๋งํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์•ฝ๊ฐ„์˜ ํ˜ผ๋ž€์„ ์ผ์œผํ‚ค๊ณ  ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹ ์ˆ˜๋„ ์žˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. pip ์„ค์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  gcc๊ฐ€ ์—†์œผ๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ถ”์‹ : ๋‹ค์Œ ๊ณต์‹ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์‚ฌ์ „ ์ปดํŒŒ์ผ๋˜๊ณ  ์ •์  ๋งํฌ๋œ lib๊ฐ€ ์žˆ์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์ „ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

@phunterlau ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด Mac์— OpenMP๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๊ฒƒ์ด ์˜ค๋ฅ˜๋ฅผ ์ผ์œผํ‚จ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@phunterlau ok, ์ ์ ˆํ•œ ์ปดํŒŒ์ผ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ  pip ์„ค์น˜๋ฅผ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ brew install clang-omp ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. xgboost ๋””๋ ‰ํ† ๋ฆฌ์™€ xgboost-0.4a13.dist-info๋ฅผ ์‚ญ์ œํ•˜๊ณ  pip install xgboost๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ xgboost๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒฌ์žˆ๋Š” ์‚ฌ๋žŒ?

@AZaitzeff ์‹ค์ œ๋กœ clang-omp๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Xcode์˜ clang-omp๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ clang-omp๊ฐ€ ์ด์ƒํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. mac pip ์„ค์น˜ ํŒจํ‚ค์ง€๋Š” OpenMP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ brew์˜ gcc 4.9์—์„œ ์ƒ์„ฑ ๋ฐ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. brew install gcc49 ๋กœ ์‹œ๋„ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด์ œ brew์˜ gcc 5๋„ ์žˆ์ง€๋งŒ ์™„์ „ํžˆ ํ…Œ์ŠคํŠธํ•  ๊ธฐํšŒ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ pip ์—…๋กœ๋“œ์—์„œ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋•๋ถ„์— ํšจ๊ณผ๊ฐ€ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

@phunterlau ๋นŒ๋“œ( ./xgboost/build-python.sh ์‚ฌ์šฉ)๋Š” ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ pip ์„ค์น˜๋Š” ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ lib๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ์ด ์‹œ๋„๋˜์ง€ ์•Š๋Š” ์ด์œ ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด setup.py ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. PIP 7.1.2(python 2.7)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

pip install --user -e ./tweaked-xgboost-0.4a13/

์ œ๊ณต:

'pip' in __file__: False
not os.name == 'nt': True

http://stackoverflow.com/questions/9959279/detect-pip-in-setup-py [1] ์— ๋”ฐ๋ฅด๋ฉด 'pip' in __file__ ํ…Œ์ŠคํŠธ๋Š” Py 2.7 2014-10-27 ๋˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์„ค์น˜( ๋‚ด ์ด์ „ ์˜๊ฒฌ์—์„œ ์‚ฌ์šฉํ•œ ๊ฒƒ์ฒ˜๋Ÿผ). [1] 'pip' in os.environ.get('_') ์—์„œ ์ œ์•ˆ๋œ ๊ฒƒ์ฒ˜๋Ÿผ pip ๊ฐ€ setup.py ๋ฅผ ์‹คํ–‰ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ณด๋‹ค ํ‘œ์ค€์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

@Fkawala ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 'pip' in __file__ ์€(๋Š”) ์˜ค๋ž˜์ „์— ์‚ฌ์šฉํ•˜๋˜ ์˜ค๋ž˜๋œ ํŠธ๋ฆญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์–ด ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” pip ์„ค์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋‚˜์ค‘์— PR(์ผ๋ถ€ ๋‹ค๋ฅธ ํŒจ์น˜์™€ ํ•จ๊ป˜)์„ ๋ณด๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@phunterlau ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ELF ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ์—์„œ ์ž‘์—… ์ค‘์ด๋ฉฐ pip๋กœ ์„ค์น˜ํ•œ ํ›„ xgboost ํŒจํ‚ค์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ gcc์— ๋Œ€ํ•ด ์ผ๊ณ , ๋‚˜๋Š” gcc-4.9๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ์˜ค๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

xgboost ๊ฐ€์ ธ์˜ค๊ธฐ

OSError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)
์ž…๋ ฅ()
----> 1 xgboost ๊ฐ€์ ธ์˜ค๊ธฐ
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/ init .py in()
9 ์ˆ˜์ž… OS
10
---> .core์—์„œ 11 ๊ฐ€์ ธ์˜ค๊ธฐ DMatrix, Booster
.training ์ˆ˜์ž… ์—ด์ฐจ์—์„œ 12, ์ด๋ ฅ์„œ
.sklearn์—์„œ 13 ๊ฐ€์ ธ์˜ค๊ธฐ XGBModel, XGBClassifier, XGBRegressor
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py์—์„œ()
90
91 # XGBoost ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ๋กœ๋“œ
---> 92 _LIB = _load_lib()
93
94 def _check_call(ret):
/home/antklen/anaconda/lib/python2.7/site-packages/xgboost/core.py _load_lib()
84 if len(lib_path) == 0:
85 ๋ฐ˜ํ™˜ ์—†์Œ
---> 86 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = ctypes.cdll.LoadLibrary(lib_path[0])
87 lib.XGBGetLastError.restype = ctypes.c_char_p
88 ๋ฆฌํ„ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc in LoadLibrary(์ž์ฒด, ์ด๋ฆ„)
441
442 def LoadLibrary(์ž์‹ , ์ด๋ฆ„):
--> 443 ๋ฐ˜ํ™˜ self._dlltype(์ด๋ฆ„)
444
445 ๅฏ†ๅ ‚ = ็”ฒๅ ‚
/home/antklen/anaconda/lib/python2.7/ctypes/__init__.pyc init (์ž์ฒด, ์ด๋ฆ„, ๋ชจ๋“œ, ํ•ธ๋“ค, use_errno, use_last_error)
363
364 ํ•ธ๋“ค์ด ์—†์Œ์ธ ๊ฒฝ์šฐ:
--> 365 self._handle = _dlopen(self._name, ๋ชจ๋“œ)
366 ๊ธฐํƒ€:
367*
OSError: /home/antklen/anaconda/lib/python2.7/site-packages/xgboost/./wrapper/libxgboostwrapper.so: ์œ ํšจํ•˜์ง€ ์•Š์€ ELF ํ—ค๋”

Windows์—์„œ @antklen ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € setuptools๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ์šฐ๋ถ„ํˆฌ์˜ ๊ฒฝ์šฐ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์‹œ๋„ํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@antklen ํ˜„์žฌ pip ์„ค์น˜๊ฐ€ ์ฆ‰์„ ์ปดํŒŒ์ผ๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ์ด๊ณ  ์ผ๋ถ€ Mac ์‚ฌ์šฉ์ž๊ฐ€ ์ปดํŒŒ์ผ์„ ์œ„ํ•ด g++๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ Mac ๋ฒ„์ „์˜ .so ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ๋ฐํ˜€์กŒ๊ณ  Linux ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ฝ๊ฐ„์˜ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ gcc ๋ฐ g++ apt-get install g++ ๋ฅผ ์„ค์น˜ํ•˜์—ฌ ์ปดํŒŒ์ผ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  pip๊ฐ€ 0.7.1.2๋ณด๋‹ค ์ตœ์‹  ๋ฒ„์ „์ด๋ฉด pip๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ ์ˆ˜์ •ํ•˜์—ฌ ๋ฐฐ์†กํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. g++์ด ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์„ค์น˜ ๋ฌธ์„œ์— ๋”ฐ๋ผ setup.py์—์„œ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

@smargsongithub @phunterlau ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
apt-get install g++๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ˆ˜๋™ ์„ค์น˜์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. https://www.kaggle.com/c/springleaf-marketing-response/forums/t/16320/cloud-vs- ๋กœ์ปฌ ๋จธ์‹  ์ฐฌ๋ฐ˜ ์–‘๋ก 
Anaconda๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ตœ์ข… ๋ ˆ์‹œํ”ผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

sudo apt-get install make
sudo apt-get ์—…๋ฐ์ดํŠธ
sudo apt-get ์„ค์น˜ gcc
sudo apt-get install g++
sudo apt-get install git
sudo ์ž์‹ ๋ณต์ œ https://github.com/dmlc/xgboost
CD xgboost
sudo ./build.sh
cd ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€
sudo /home/username/anaconda/bin/python setup.py ์„ค์น˜

@antklen ์˜ค, g++๋ฅผ ์„ค์น˜ํ•  ๋•Œ sudo๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค :-)

@Fkawala ์—…๋ฐ์ดํŠธ๋œ pip์— ๋Œ€ํ•ด 'pip' in os.environ.get('_') ๋ฅผ ์‹œ๋„ํ•˜๊ณ  ์žˆ์ง€๋งŒ os.environ.get('_') ๋Š” ํ•ญ์ƒ None ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด if ๋ฌธ์€ ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„์—์„œ pip์ธ์ง€ ๊ฐ์ง€ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด pip์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„์˜ setup.py ๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

@phunterlau pip install xgboost์—์„œ ๋‹ค์Œ ์—ญ์ถ”์ ์„ ์–ป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ? (๋งฅ์„ ์‹คํ–‰ ์ค‘)

์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "", 20ํ–‰, ์—์„œ
ํŒŒ์ผ "/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/setup.py", 38ํ–‰,
LIB_PATH = ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ 'find_lib_path'
ํŒŒ์ผ "/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libpath.py", 47ํ–‰, find_lib_path
'c ํ›„๋ณด ๋ชฉ๋ก :n ' + ('n'.join(dll_path)))
builtin .XGBoostLibraryNotFound: ํ›„๋ณด ๊ฒฝ๋กœ์—์„œ XGBoost Libarary๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ ๊ฒฝ๋กœ์—์„œ build.sh๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๊นŒ?
ํ›„๋ณด์ž ๋ชฉ๋ก:
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/./wrapper/libxgboostwrapper.so
/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost/xgboost/../../../xgboost/wrapper/libxgboostwrapper.so


/private/var/folders/7g/thc6mmqd2nb55r21htwx2slr0000gp/T/pip-build-0BlCW9/xgboost์—์„œ "python setup.py egg_info" ๋ช…๋ น์ด ์˜ค๋ฅ˜ ์ฝ”๋“œ 1๊ณผ ํ•จ๊ป˜ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

@pcohen89 ์ด python ํŒจํ‚ค์ง€๋Š” C++ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๊ณ  ์ฆ‰์„์—์„œ ์ปดํŒŒ์ผ๋˜๋ฏ€๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Xcode์˜ gcc-5 ๋˜๋Š” clang LLVM๊ณผ ๊ฐ™์€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? Mac์€ ๊ธฐ๋ณธ์ ์œผ๋กœ xcode ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด ์ง€์นจ์„ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. http://railsapps.github.io/xcode-command-line-tools.html ๋˜๋Š” ๋‹ค๋ฅธ ๋” ๋‚˜์€ ์„ ํƒ์€ homebrew http ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. brew install g++-5 . ๋‚˜์ค‘ ์˜ต์…˜(g++-5)์€ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ OpenMP ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ์ด์ „ xgboost ์„ค์น˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  pip install xgboost ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

@antklen @phunterlau @antklen ์ด ์–ธ๊ธ‰ํ•œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ„ฐ๋ฏธ๋„์—์„œ import xgboost๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ acondas ipython ๋…ธํŠธ๋ถ์—์„œ๋Š” ์•„๋ž˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๋„์›€์„ ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ถ„ํˆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

XGBoostLibraryNotFound: Cannot find XGBoost Libarary in the candicate path, did you run build.sh in root path?
List of candidates:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so

@Jeechu ๋Š” xgboost๊ฐ€ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  1. ์ด์ „ xgboost ์„ค์น˜๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๊นŒ?
  2. xcode(mac) ๋˜๋Š” gcc-5(Mac์€ brew ์‚ฌ์šฉ, Linux๋Š” apt-get ๋˜๋Š” yum ์‚ฌ์šฉ)๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๊นŒ?

pip install xgboost -v ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@phunterlau ์ €์™€ @Jeechu ์šฐ๋ฆฌ๋Š” ์ด์ „ xgboost ์„ค์น˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  gcc,g++๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. XGBoost๋Š” ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์ž˜ ์‹คํ–‰๋˜์ง€๋งŒ anaconda ipython ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜ ๊ฒฝ๋กœ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

@rajdeltarobo @Jeechu ipython ๋…ธํŠธ๋ถ์˜ ํŒŒ์ด์ฌ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? .bashrc(๋˜๋Š” ์‰˜์˜ ๋‹ค๋ฅธ env ํŒŒ์ผ)์— ์žˆ๋Š” $PYTHONPATH ๋ณ€์ˆ˜๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

xgboost๊ฐ€ pip ์„ค์น˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ /home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/ ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ(pip ์„ค์น˜์—๋Š” xgboost-0.4a24์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Œ), ipython ๋…ธํŠธ๋ถ์€ python setup.py install ์—์„œ xgboost๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” $PYTHONPATH ์—์„œ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@phunterlau $PYTHONPATH ๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•„ ๊ณต๋ฐฑ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„๋ž˜๋Š” path์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค.

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/simpl/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

ํŒŒ์ด์ฌ ๊ฒฝ๋กœ๋Š”

โžœ  ~  which python  
/usr/bin/python

ipython ๋…ธํŠธ๋ถ์˜ ํŒŒ์ด์ฌ ๋ฒ„์ „์€ 2.7์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ PYTHONPATH์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?
/Users/simpl/anaconda/lib/python2.7/site-packages/

anaconda์˜ python์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•ด ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—ฌ๋Ÿฌ python ์„ค์น˜ ๋Œ€์‹  virtualenv ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋™์ผํ•œ ์‹œ์Šคํ…œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ python ์„ค์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋งค์šฐ ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

@phunterlau ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์šฐ๋ถ„ํˆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ถ”๊ฐ€

/home/user/anaconda/lib/python2.7/site-packages/

Bashrc ํŒŒ์ผ์˜ ๋์—์„œ ์ด๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ

# added by Anaconda 2.3.0 installer
export PATH="/home/user/anaconda/bin:$PATH"

@phunterlau ๋‚˜๋Š” gcc๋ฅผ ์„ค์น˜ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. Xcode๊ฐ€ ์žˆ๊ณ  ๋ชจ๋‘ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. Xgboost์— ๋Œ€ํ•œ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ •๋ง ๋Œ€๋‹จํ•˜๊ณ  ๋„์›€์ด ๋งŽ์ด ๋ฉ๋‹ˆ๋‹ค.

@pcohen89 xcode๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‹ค๋‹ˆ ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. xcode clang์€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost๋งŒ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์ง€์›์„ ์œ„ํ•ด brew install g++-5 ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์ž‘์—… ์‚ฌ๋ณธ์€ ์ข‹์€ ์‚ฌ๋ณธ์ž…๋‹ˆ๋‹ค.

@rajdeltarobo PATH๋Š” PYTHONPATH์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ PYTHONPATH๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Python์ด ์‚ฌ์šฉ์ž ์ง€์ • ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๊ณ  bashrc๋ฅผ ์†Œ์‹ฑํ•˜์‹ญ์‹œ์˜ค.

/wrapper/libxgboostwrapper.so๋ฅผ /home/username/anaconda3/lib/python3.4/site-packages/xgboost-0.4-py3.4.egg/xgboost/์— ๋ณต์‚ฌํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค(Ubuntu 14.04 ์‚ฌ์šฉ ์ค‘).

๋‚ด ๋ฌธ์ œ๋Š” :

XGBoostLibraryNotFound: ํ›„๋ณด ๊ฒฝ๋กœ์—์„œ XGBoost Libarary๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ ๊ฒฝ๋กœ์—์„œ build.sh๋ฅผ ์‹คํ–‰ํ•˜์…จ์Šต๋‹ˆ๊นŒ?
ํ›„๋ณด์ž ๋ชฉ๋ก:
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/../../wrapper/libxgboostwrapper.so
/home/simpl/anaconda/lib/python2.7/site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so

@davutpolat ๋ฉ”์‹œ์ง€์˜ ์˜ค๋ฅ˜๋Š” pip ์„ค์น˜์— ๋Œ€ํ•œ ์ถฉ๋Œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ตœ๊ทผ ๋ณ€๊ฒฝ์—์„œ ๋น„๋กฏ๋˜์—ˆ์ง€๋งŒ ๋ณ€๊ฒฝ์ด ์ข‹์€ ์ƒ๊ฐ์ด ์•„๋‹Œ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜์–ด ๋กค๋ฐฑํ–ˆ์Šต๋‹ˆ๋‹ค(PR #572). ์•ž์œผ๋กœ๋Š” ์ด ๋ณต์‚ฌ๋ณธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ฆ‰์„์—์„œ ์ปดํŒŒ์ผํ•˜๋Š” pip ์„ค์น˜๋งŒ์„ ์œ„ํ•œ ๋˜ ๋‹ค๋ฅธ ๋ณ„๋„์˜ ์„ค์ • ๊ตฌ์„ฑ์„ ๊ฐ–๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š” ๋ฉฐ์น ๊ฐ„ ์ด์šฉ์— ๋ถˆํŽธ์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

pip๋ฅผ ํ†ตํ•ด xgboost๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ @davutpolat ๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ /wrapper/libxgboostwrapper.so๋ฅผ ์–ด๋””์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@claygirl ์‹œ์Šคํ…œ์— gcc ๋˜๋Š” clang์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์‹œ์Šคํ…œ ํ™˜๊ฒฝ๊ณผ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋„ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค.

ํ•ด๊ฒฐ์ฑ…. ๋™์ผํ•œ OSError๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: /usr/local/lib/libxgboostwrapper.so: ๊ณต์œ  ๊ฐœ์ฒด ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ณต์‚ฌํ–ˆ๋‹ค
site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper/libxgboostwrapper.so๋ฅผ /usr/local/lib/๋กœ ์ด๋™ํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ 2.7๊ณผ 3.4๊ฐ€ ๋ชจ๋‘ ์žˆ์œผ๋ฏ€๋กœ ๋งŒ์กฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ..์ƒˆ๋กœ์šด ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@dsivakumar site-packages/xgboost-0.4-py2.7.egg/xgboost/./wrapper๋Š” pip๋กœ ์„ค์น˜ํ•˜๊ณ  xgboost/lib_path.py๊ฐ€ ์ด ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ import xgboost ์ธ ๊ฒฝ์šฐ libxgboostwrapper.so์˜ ์˜ˆ์ƒ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

@phunterlau ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ทธ๊ฒƒ์ด ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๋ฒˆ ์‹œ๋„ํ–ˆ์ง€๋งŒ Windows OS PC์— xgboost๋ฅผ ์„ค์น˜ํ•˜๋ ค๋Š” ํฌ๋ง์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ง€๊ธˆ ๋‹น์‹ ์€ ๋ฌด์—‡์„ ํ•ด์•ผํ• ์ง€ ๋„์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค
๊ทธ๊ฒƒ์€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค
C:UsersSander> pip install xgboost
xgboost ์ˆ˜์ง‘
xgboost-0.4a30.tar.gz ๋‹ค์šด๋กœ๋“œ(753kB)
100% |##################################| 753kB 397kB/s
ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ ์—†์Œ
c:userssanderappdatalocaltemppip-build-gqsijfxgbo
ostpip-egg-info(PKG-INFO์—์„œ)
๋‚˜๋Š” ์•„๋‚˜์ฝ˜๋‹ค ํŒŒ์ด์ฌ ์„ค์น˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
kaggle ๋Œ€ํšŒ์—์„œ ๋ˆ„๊ตฐ๊ฐ€ xgboos ์„ค์น˜์— ์‹คํŒจํ–ˆ๊ณ 
๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ์„ ํƒํ•˜๊ณ  ๊ทธ๋Š” 2 ์œ„๋ฅผ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค ...

2016๋…„ 1์›” 7์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 3์‹œ 31๋ถ„์— dsivakumar [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@phunterlau https://github.com/phunterlau ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ์ฑ….

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/dmlc/xgboost/issues/463#issuecomment -169595600.

@Sandy4321 Windows๋Š” ์„ค์น˜ ๊ฐ€์ด๋“œ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์–ธ๊ธ‰๋œ ๋Œ€๋กœ VS ๋ช…๋ น์ค„ ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•ด ์„ค์ •๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ pip ์„ค์น˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. windows/ ์˜ VS ์†”๋ฃจ์…˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํŒŒ์ผํ•˜๊ณ  ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. 2๋“ฑ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :-)

Xcode๊ฐ€ ์—†๋Š” Mac 10.10.5์— Xgboost๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € brew install gcc --without-multilib๋ฅผ ํ†ตํ•ด openmp๋ฅผ ์ง€์›ํ•˜๋Š” GCC 5.3์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, xgboost๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

์ž์‹ ํด๋ก  --์žฌ๊ท€ https://github.com/dmlc/xgboost
CD xgboost
๋‚ด๋ณด๋‚ด๊ธฐ CC=/usr/local/bin/gcc-5
๋‚ด๋ณด๋‚ด๊ธฐ CXX=/usr/local/bin/g++-5
cp make/config.mk ./config.mk
-j4๋ฅผ ๋งŒ๋“ค๋‹ค

๊ทธ๋Ÿผ ์•„๋ž˜์™€ ๊ฐ™์ด ์—๋Ÿฌ๊ฐ€ ๋œจ๋Š”๋ฐ,
make: ** [lib/libxgboost.a] ์˜ค๋ฅ˜ 1make: * * ๋๋‚˜์ง€ ์•Š์€ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘....
clangclang: : ๊ฒฝ๊ณ : ๊ฒฝ๊ณ : ์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ธ์ˆ˜: '-pthread'
์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ธ์ˆ˜: '-pthread'
ld: -lgomp์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ld: -lgomp์— ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
clang: ์˜ค๋ฅ˜: ๋ง์ปค ๋ช…๋ น์ด ์ข…๋ฃŒ ์ฝ”๋“œ 1๊ณผ ํ•จ๊ป˜ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค(ํ˜ธ์ถœ์„ ๋ณด๋ ค๋ฉด -v ์‚ฌ์šฉ).
clang: ์˜ค๋ฅ˜: ๋ง์ปค ๋ช…๋ น์ด ์ข…๋ฃŒ ์ฝ”๋“œ 1๊ณผ ํ•จ๊ป˜ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค(ํ˜ธ์ถœ์„ ๋ณด๋ ค๋ฉด -v ์‚ฌ์šฉ).
make: ** [lib/libxgboost.so] ์˜ค๋ฅ˜ 1make: * * [xgboost] ์˜ค๋ฅ˜ 1

๋‚˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ–ˆ๋‹ค. ๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค
sudo ./build.sh

๊ทธ๋žฌ๋”๋‹ˆ
clang: ๊ฒฝ๊ณ : ์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ธ์ˆ˜: '-pthread'
๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์„ฑ๊ณต

OpenMP์™€ ํ•จ๊ป˜ GCC 5๋ฅผ ์„ค์น˜ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹จ์ผ ์Šค๋ ˆ๋“œ Xgboost์ธ ์ด์œ ๋ฅผ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์„ค์น˜ํ•œ Xgboost๋ฅผ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ตœ๊ทผ makefile์€ clang-omp์—์„œ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‹ต๋ณ€ ์ฃผ์…”์„œ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
์ด์ œ xgboost์— gcc๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ์„œ์˜ clang๋„ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๊ฒ ์ฃ ? MAC 10.9 ์ด์ƒ์€ clang๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ homebrew์—์„œ clang-omp๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์ €๋Š” ์ดˆ๋ณด์ž์ž…๋‹ˆ๋‹ค xgboost๋Š” ์ด ์›น์‚ฌ์ดํŠธ์˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ์ง€๊ธˆ ์—…๋ฐ์ดํŠธ๋œ ์„ค์น˜ ๊ฐ€์ด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?์„ค์ • ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋˜ํ•œ clang-omp๋กœ ์ „ํ™˜ํ•œ ํ›„ ์ด๋ฏธ ์„ค์น˜๋œ xgboost๋ฅผ ๋จผ์ € ์‚ญ์ œํ•˜๊ณ  xgboost๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
๊ฐ์‚ฌ ํ•ด์š”!

2016-04-03 01:34:37์—์„œ "Hongliang Liu" [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ makefile์€ clang-omp์—์„œ ๋” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๋น ๋ฅธ ํšŒ์‹ ์„ ์œ„ํ•ด Thx. ๊ท€ํ•˜์˜ ์ œ์•ˆ์— ๋”ฐ๋ผ homebrew๋ฅผ ํ†ตํ•ด clang-omp๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ˜„์žฌ xgboost๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋Œ€์‹  ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€.

config.mk์˜ ๊ธฐ๋ณธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ clang-omp๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. ๋นŒ๋“œ ์ง€์นจ Mac OS X ๋ถ€๋ถ„์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

๋‹น์‹ ์˜ ์ง€์‹œ์— ๋Œ€ํ•œ Thx. ๊ทธ๋ฆฌ๊ณ  config.mk์˜ ๊ธฐ๋ณธ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ด๋ ‡๊ฒŒ clang-omp๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
` ๋‚ด๋ณด๋‚ด๊ธฐ CC = /usr/local/bin/clang-omp

๋‚ด๋ณด๋‚ด๊ธฐ CXX = /usr/local/bin/clang-omp++

ADD_CFLAGS = -fopenmp`

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.
make -j8

๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
make: ** [lib/libxgboost.a] ์˜ค๋ฅ˜ 1make: * * ๋๋‚˜์ง€ ์•Š์€ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘....
clang-3.5clang-3.5: : ์˜ค๋ฅ˜ ์˜ค๋ฅ˜: : ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์—†์Œ: 'rabit/lib/librabit.a'ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์—†์Œ: 'rabit/lib/librabit.a'

make: ** [lib/libxgboost.so] ์˜ค๋ฅ˜ 1make: * * [xgboost] ์˜ค๋ฅ˜ 1

๋‚˜์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๋‹ฌ๋ฆฐ๋‹ค
sudo ./build.sh
์˜ค๋ฅ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค

include/dmlc/omp.h:13:9: ๊ฒฝ๊ณ : ๊ฒฝ๊ณ : OpenMP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š”
๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. OpenMP ์ง€์› ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ
๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์˜ ์žฅ์ . [-W#pragma-messages]

pragma message("๊ฒฝ๊ณ : OpenMP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. "

clang-omp ๋ฅผ brew remove clang-omp; brew install clang-omp ๋กœ ๋‹ค์‹œ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค. config.mk ์—์„œ ์ด ๋‘ ์ค„( ADD_FLAG ์—†์Œ)๋งŒ ๋ณ€๊ฒฝํ•˜๊ณ  Makefile ์™€ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

export CC = clang-omp
export CXX = clang-omp++

make ์‹คํ–‰

Windows 7 ์‚ฌ์šฉ. yhat Rodeo์˜ Anaconda.

xgboost๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋„์™€์ฃผ์„ธ์š”.

`! ํ• ์„ค์น˜ xgboost

xgboost ์ˆ˜์ง‘
์บ์‹œ๋œ xgboost-0.4a30.tar.gz ์‚ฌ์šฉ
C:UsersUSERAppDataLocalTemppip-build-dkmqc8n1xgboostpip-egg-info(PKG-INFO์—์„œ)`์— ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์ œ์•ˆ์— ๋Œ€ํ•ด @phunterlau Thx. ๊ท€ํ•˜์˜ ์ง€์‹œ๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ์„ ํ•ด์ฃผ์„ธ์š”.
๋‚˜๋Š” clang-imp๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  Makefile์ด ์žˆ๋Š” ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์˜ config.mk์—์„œ ๋‘ ์ค„(ADD_FLAG ์—†์Œ)์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

export CC = clang-omp
export CXX = clang-omp++

๊ทธ๋Ÿฐ ๋‹ค์Œ sudo make -j4 ์„ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ar crv lib/libxgboost.a 
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
    ar -m [-TLsv] archive file ...
    ar -m [-abiTLsv] position archive file ...
    ar -p [-TLsv] archive [file ...]
    ar -q [-cTLsv] archive file ...
    ar -r [-cuTLsv] archive file ...
    ar -r [-abciuTLsv] position archive file ...
    ar -t [-TLsv] archive [file ...]
    ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
make: *** Waiting for unfinished jobs....
clang-3.5: warning: argument unused during compilation: '-pthread'
clang-3.5: warning: argument unused during compilation: '-pthread'

๊ทธ๋Ÿฐ ๋‹ค์Œ sudo ./build.sh ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ar crv lib/libxgboost.a 
ar: no archive members specified
usage:  ar -d [-TLsv] archive file ...
    ar -m [-TLsv] archive file ...
    ar -m [-abiTLsv] position archive file ...
    ar -p [-TLsv] archive [file ...]
    ar -q [-cTLsv] archive file ...
    ar -r [-cuTLsv] archive file ...
    ar -r [-abciuTLsv] position archive file ...
    ar -t [-TLsv] archive [file ...]
    ar -x [-ouTLsv] archive [file ...]
make: *** [lib/libxgboost.a] Error 1
-----------------------------
Building multi-thread xgboost failed

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,
Python์„ ์‚ฌ์šฉํ•˜์—ฌ Windows์— Xgboost๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์Šค๋ ˆ๋“œ์˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

http://stackoverflow.com/questions/33749735/how-to-install-xgboost-package-in-python-windows-platform

@boral ๋„ค, ํ˜„์žฌ pip ์„ค์น˜๋Š” ์ฐฝ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์•Œ์•„ ๋‚ธ ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

@liyanjin ํ•ต์‹ฌ ๋ถ€๋ถ„์— ๋Œ€ํ•ด 'make xgboost'๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ar๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Mac์šฉ ar๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์˜ค๋ฅ˜๋Š” ๊ฝค

OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): Library not loaded: @rpath/./libgomp.1.dylib
  Referenced from: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
  Reason: image not found

gcc๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
$ ์–‘์กฐ ์„ค์น˜ gcc49
๊ฒฝ๊ณ : homebrew/versions/gcc49-4.9.3์ด ์ด๋ฏธ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” Mac OS๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ํ†ตํ•ด xgboost๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

@lalmanisha Mac์„ ์‚ฌ์šฉ ์ค‘์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Mac์˜ ํ˜„์žฌ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” gcc clang-omp ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. brew์—์„œ clang-omp ๋ฅผ ์„ค์น˜ํ•˜๊ณ  config.mk์˜ CC ๋ฐ CXX๋ฅผ clang-omp๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ
`---------------------------------------------------- ----------------------
OSError Traceback(๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰)
์ž…๋ ฅ()
14 # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์“ฐ๋Š” ๋ชจ๋“  ๊ฒฐ๊ณผ๋Š” ์ถœ๋ ฅ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
15
---> 16 xgboost๋ฅผ xgb๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
sklearn.linear_model ๊ฐ€์ ธ์˜ค๊ธฐ LogisticRegression์—์„œ 17
18 ํŒ๋‹ค๋ฅผ pd๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py()
80
81 # XGBoost ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ „์—ญ์ ์œผ๋กœ ๋กœ๋“œ
---> 82 xglib = load_xglib()
83
84

/Users/mlal/anaconda/lib/python2.7/site-packages/xgboost.py in load_xglib()
57 len(dll_path) == 0์ธ ๊ฒฝ์šฐ:
58 raise XGBoostLibraryNotFound(' ํ›„๋ณด ๊ฒฝ๋กœ์—์„œ ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ ' + str(dll_path))
---> 59 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ = ctypes.cdll.LoadLibrary(lib_path[0])
60
61 # DMatrix ํ•จ์ˆ˜

/Users/mlal/anaconda/lib/python2.7/ctypes/ LoadLibrary(์ž์ฒด, ์ด๋ฆ„)์˜ init .pyc
441
442 def LoadLibrary(์ž์‹ , ์ด๋ฆ„):
--> 443 ๋ฐ˜ํ™˜ self._dlltype(์ด๋ฆ„)
444
445 ๅฏ†ๅ ‚ = ็”ฒๅ ‚

/Users/mlal/anaconda/lib/python2.7/ctypes/ init .pyc in init (self, name, mode, handle, use_errno, use_last_error)
363
364 ํ•ธ๋“ค์ด ์—†์Œ์ธ ๊ฒฝ์šฐ:
--> 365 self._handle = _dlopen(self._name, ๋ชจ๋“œ)
366 ๊ธฐํƒ€:
367*

OSError: dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Œ: @rpath/./libgomp.1.dylib
์ฐธ์กฐ: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
์ด์œ : ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ
`
config.mk ํŒŒ์ผ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

์ปดํŒŒ์ผ๋Ÿฌ ์„ ํƒ
๋‚ด๋ณด๋‚ด๊ธฐ CC = clang-omp
๋‚ด๋ณด๋‚ด๊ธฐ CXX = clang-omp
๋‚ด๋ณด๋‚ด๊ธฐ MPICXX = mpicxx

sudo make -j4
ar crv ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/libxgboost.a
ar: ์•„์นด์ด๋ธŒ ๋ฉค๋ฒ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ๋ฒ•: ar -d [-TLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -m [-TLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -m [-abiTLsv] ์œ„์น˜ ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -p [-TLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
ar -q [-cTLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -r [-cuTLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -r [-abciuTLsv] ์œ„์น˜ ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -t [-TLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
ar -x [-outTLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
make: ** [lib/libxgboost.a] ์˜ค๋ฅ˜ 1make: * * ๋๋‚˜์ง€ ์•Š์€ ์ž‘์—…์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ค‘....
clang: clang: ์˜ค๋ฅ˜: ์˜ค๋ฅ˜: ์ง€์›๋˜์ง€ ์•Š๋Š” ์˜ต์…˜ '-fopenmp' ์ง€์›๋˜์ง€ ์•Š๋Š” ์˜ต์…˜ '-fopenmp'

make: ** [lib/libxgboost.so] ์˜ค๋ฅ˜ 1make: * * [xgboost] ์˜ค๋ฅ˜ 1
๋‚ด๊ฐ€ ๋‹ฌ๋ ธ์„ ๋•Œ
sudo ./build.sh

maker.o ๋นŒ๋“œ/ํŠธ๋ฆฌ/updater_sync.o dmlc-core/libdmlc.a rabit/lib/librabit_empty.a -pthread -lm
clang: ๊ฒฝ๊ณ : ์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ธ์ˆ˜: '-pthread'
๋‹จ์ผ ์Šค๋ ˆ๋“œ xgboost ๋นŒ๋“œ ์„ฑ๊ณต
๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ๋ฒ„์ „์„ ์›ํ•˜์‹ ๋‹ค๋ฉด
doc/build.md์˜ ์ถ”๊ฐ€ ์ง€์นจ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ฌ์ „ํžˆ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
dlopen(/Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so, 6): ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Œ: @rpath/./libgomp.1.dylib
์ฐธ์กฐ: /Users/mlal/anaconda/lib/python2.7/site-packages/libxgboostwrapper.so
์ด์œ : ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ

์ข‹์•„์š”, ์œ„์˜ ๋„์›€๋ง๊ณผ build.md์˜ ์กฐํ•ฉ์ด xgboost ์ž‘๋™์— ๋„์›€์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋“ค ๊ฐ์‚ฌ ํ•ด์š” !

@lalmanisha ๋Š” ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€๋งŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ar ๊ฐ€ ํ•„์š”ํ•œ ๋ณ‘๋ ฌ ๋ฐ ์›์‚ฌ ๋ฒ„์ „๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ถˆํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋Š” make xgboost ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. make ์„ฑ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๊ฒฐํ•˜์…จ๋‹ค๋‹ˆ ๋‹คํ–‰์ž…๋‹ˆ๋‹ค.

MAC์— git clone ๋กœ Xgboost๋ฅผ ์„ค์น˜ํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์ด ๋‹ต๋ณ€ ์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ @LiyanJin ์˜ ๋ชจ๋“  ์ง€์นจ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด homebrew๋ฅผ ํ†ตํ•ด clang-omp๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

  • config.mk :
export CC = clang-omp
export CXX = clang-omp++
export MPICXX = mpicxx
  • ์˜ค๋ฅ˜:
clang-omp++ -std=c++0x -Wall -O3 -msse2  -Wno-unknown-pragmas -funroll-loops -Iinclude -fopenmp  -Idmlc-core/include -Irabit/include -fPIC -fopenmp -MM -MT build/learner.o src/learner.cc >build/learner.d
In file included from src/learner.cc:7:
In file included from include/xgboost/logging.h:11:
In file included from dmlc-core/include/dmlc/logging.h:10:
/usr/local/Cellar/clang-omp/2015-04-01/libexec/bin/../include/c++/v1/cstdio:100:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^
1 error generated.
make: *** [build/learner.o] Error 1

pip install ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€์˜ ์ตœ์‹  ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ํŒ?


ํŽธ์ง‘ : ์†”๋ฃจ์…˜์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค. xcode-select --install ๋ฐ make ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@armgilles ๋งž์Šต๋‹ˆ๋‹ค: ๊ธฐ๋ณธ์ ์œผ๋กœ mac์€ ํ—ค๋”๊ฐ€ ์žˆ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๋ฐ˜๋ฉด clang-omp ๋Š” ๋กœ์ปฌ์— ์„ค์น˜๋œ Xcode๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ xcode-select --install ๋กœ ์„ค์น˜ํ•˜๋ฉด ์ƒˆ ์‹œ์Šคํ…œ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ํ›„ ๋ชจ๋“  ๊ฒƒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ๋‹ค:

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package  

hnykda ์ œ์•ˆ์€ Ubuntu 16.0.4์—์„œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@phunterlau
๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
ar crv ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ/libxgboost.a
ar: ์•„์นด์ด๋ธŒ ๋ฉค๋ฒ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ๋ฒ•: ar -d [-TLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -m [-TLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -m [-abiTLsv] ์œ„์น˜ ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -p [-TLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
ar -q [-cTLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -r [-cuTLsv] ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -r [-abciuTLsv] ์œ„์น˜ ์•„์นด์ด๋ธŒ ํŒŒ์ผ ...
ar -t [-TLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
ar -x [-outTLsv] ์•„์นด์ด๋ธŒ [ํŒŒ์ผ ...]
make: * [lib/libxgboost.a] ์˜ค๋ฅ˜ 1

๋‚˜๋Š” ar๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด "ar crv"๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์€ " @liyanjin ๋‹น์‹ ์€ ํ•ต์‹ฌ ๋ถ€๋ถ„์— ๋Œ€ํ•ด 'make xgboost'๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ar๋ฅผ ๊ฐ€์ง€๋ ค๋ฉด Mac์šฉ ar๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ "ํ•ต์‹ฌ ๋ถ€๋ถ„์— ๋Œ€ํ•ด 'make xgboost'๋ฅผ ์ˆ˜ํ–‰"ํ•˜๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋‹จ. ๋‹น์‹ ์˜ ์กฐ์–ธ์„ ๋ฐ”๋ž๋‹ˆ๋‹ค

๋‹ค์Œ์„ ํ†ตํ•ด ๋‚ด MAC(macOS 10.12.3)์— ํŒจํ‚ค์ง€๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

brew install --with-clang llvm
brew install cmake
brew install gcc --without-multilib

git clone --recursive https://github.com/dmlc/xgboost
cd xgboost; cp make/config.mk ./config.mk; make -j4

cd python-package/ ; python setup.py install

@hnykda ๋งŽ์€ ๊ฒฝ์šฐ์— ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์€ ๊ฒ‰๋ณด๊ธฐ์—๋Š” ๋‹จ์ˆœํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๊ณ ๋งˆ์›Œ.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์†”๋ฃจ์…˜์€
/home/username/anaconda3/lib/python3.5/site-packages/xgboost
./build-python.sh ์‹คํ–‰

xgboost๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Mac์— ์„ค์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. osmeone์ด ์ตœ์ข… ์†”๋ฃจ์…˜์ด ๋ฌด์—‡์ธ์ง€ ๋งํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๊ฒƒ์€ Linux์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค ... ์‹ ์šฉ (์œ„์˜ ๋ชจ๋“  ์‚ฌ๋žŒ)

git clone --recursive https://github.com/dmlc/xgboost.git  
cd xgboost  
./build.sh
pip install -e python-package 
cd python-package
python setup.py install

์ €๋ฅผ ์œ„ํ•ด MacOS Sierra์—์„œ ์ž‘์—…ํ•œ ํ›„:
brew install gcc --without-multilib

์ด ๋ช…๋ น์„ ์‹คํ–‰:

export CC=gcc-7
export CXX=g++-7

@philipshurpik ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@philipshurpik ๊ทธ๊ฒƒ์€ ์ €์—๊ฒŒ ๋งค์šฐ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰