またまた、LightGBMのインストールでエラーが出た
事件の発生
LightBGMというライブラリを公式の手順に従ってインストールしようとしたらエラーメッセージが突如現れた。
これのmacOS Apple Clang(9.0 or higher)に従ってインストを行ったらエラーが出た。
どんなエラーがでたか
インストレイションガイドに従って
brew install --HEAD cmake brew install libomp git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM mkdir build ; cd build cmake .. make -j4
ここまでエラーはでなかった。そして
pip install lightgbm
でインストール。いざ、使おうとしたところでエラーが出た。
>>> import lightgbm
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/__init__.py", line 8, in <module> 中略 OSError: dlopen(/Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib Referenced from: /Users/{ユーザー名}/.pyenv/versions/anaconda3-5.0.0/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so Reason: image not found
どうやって解決したか
アンインストールしてから再度やってみたりいろいろしたがどうしてもimportができなかったので諦めて他の方法でインストールした。
こちらのInstallation GuideのmacOS GCC/G++のやり方に従って、インストールした
cd LightGBM #gitからクローンしたディレクトリに入ってください。 rm -r build # 上記の失敗で作ったbuildを消しておきます。 #ここからほぼ上記のリンク通り brew install cmake brew install gcc export CXX=g++-8 CC=gcc-8 # 上記のリンクとは異なり、ここを8に変えておかないとエラーが出ます。 mkdir build ; cd build cmake .. make -j4
これで無事にインストールでき、importもできるようになった。
関係あるかわかりませんがpyenvやvirtualenvを使っている場合は、事前にactivateしておくと無難かもしれない。
それでも直らない場合
実は、他のサーバーにインストールしようとしたところまた同じエラーが出てしまった。gcc-7を使ってインストールしたため、
Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib
って怒られるのは当たり前...でも管理者権限がないのでgcc-8をインストールすることもできず。
そこでstack overflowをあさっていたら、
pip install --no-binary :all: lightgbm
でインストールするといいよと記述を見つけた。ので、早速ためしたところ無事importできるようになった。これも一回試すといいかもしれない。
余談
前も別のところでエラー履かれたしスムーズにインストールできるようになってほしい aotamasaki.hatenablog.com
追記
condaを用いているなら、かなり楽にインストールできる
conda install -c conda-forge lightgbm
ハンズオンUMAP
- はじめに
- なぜ、あとからサンプルを布置できると嬉しいのか?
- ドキュメントにそって
- インストール
- データの概要
- 訓練とテストに分割
- 訓練データで空間を学習
- この潜在空間で学習
- テストデータの潜在空間への布置
- テストデータへの汎化性能
- まとめ
はじめに
UMAPという新しい可視化の手法が開発された。
私的に、この手法の利点は大きく2つあると考えている。
- t-SNEよりも高速でありながらt-SNEと同じような可視化の結果が得られる。
- t-SNEと違って、学習済みの空間に、あとから新規のサンプルを布置できる。
特に、2番目について言及している。ブログ記事は日本語では見つからなかった。ので、2番目の強みの紹介がこのブログの目的である。
続きを読むLightGBMのインストールのエラーに戸惑った話
事件の発生
LightBGMというライブラリを公式の手順に従ってインストールしようとしたらエラーメッセージが突如現れた。 github.com
またインストールするときにスムーズに行くように記録を残しておく。
どんなエラーが出たか
$ cmake ..
CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/CMakeDetermineCCompiler.cmake:48 (message): Could not find compiler set in environment variable CC: gcc-7. Call Stack (most recent call first): CMakeLists.txt:9 (PROJECT) CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!
gccまわりの設定がうまく行ってないみたいな?
ずいぶん前に別のマシーンにインストールしたときもこれではない別の問題でインストールに苦戦したような気もする…これだからpipだけでインストールできないやつは...
どうやって解決したか
公式の手順
git clone --recursive https://github.com/Microsoft/LightGBM ; cd LightGBM export CXX=g++-7 CC=gcc-7 # replace 7 with version of gcc installed on your machine mkdir build ; cd build cmake .. make -j4
これの2行目を
export CXX=g++-8 CC=gcc-8
に変えることで、無事インストールできた。コメントアウトに# replace 7 with version of gcc installed on your machine
って書いてくれてるし、自分のgccのバージョンに合わせれば平気そう。
2018/07/03現在、下記のコマンドを書き換えた2行目の前に入れておけば、すでに古いgccが入っていても平気なはず…?(未検証)
brew upgrade gcc
追記2018/08/03
別のマシーンでまたまたハマりました。
さらに追記
condaを用いているなら、かなり楽にインストールできる
conda install -c conda-forge lightgbm
Jupyter notebookで変数一覧を常に出す方法
- はじめに
- 変数一覧を出す方法
- おわりに
はじめに
RStudioやMATLABを使ったことのある方ならわかると思うが、今扱っている変数を一望する機能がある。 RStudioならばこんな感じ。
RStudioならGlobal Environmentと書いてあり、MATLABならばWorkspaceと書いてあるやつだ。
jupyter notebookでも%whosと打つと、変数の一覧が表示されるが自動更新はされない。いちいち%whosと打つのはめんどくさい。
めちゃくちゃぐぐると、一応Jupyter notebookでもRStudioなどと同じように変数一覧を出す拡張機能があるようで、あまり知られていないようなので、共有する。
変数一覧を出す方法
続きを読むPythonでForward Selection (mlxtend)
- 背景
- Sequential Feature Selector
- まず、forward selectionを行ってみる。
- sequential feature algorithms (SFAs)
- 1. Sequential Forward Selection (SFS)
- 2. Sequential Backward Selection (SBS)
- 3. Sequential Forward Floating Selection (SFFS)
- 4. Sequential Backward Floating Selection (SBFS)
- 選択手法の切り替え
- 他の便利機能
- feature selectionしてるときの詳細
- 扱う特徴の数と性能のプロット
- transform
- GridSearch
- さいごに
背景
前に変数選択(feature selection)をまとめたが、その中のForward Selectionはsklearnでは実装されていなかった。
ググるとsklearnのissueで実装しろって突っ込まれてる。(2016年3月ってことはもう実装する気がない?)
そしたらRでやれって話なんですが、できるなら慣れたPythonでやりたい...
続きを読むimbalanced-learnを実際に使った分析例 使わない場合と比較
- はじめに
- データの説明
- 分析の流れ
- 分析
- 1. どういう判別器を用いたら良いか。
- 2. 変数選択をする。
- 3. imblearnでオーバーサンプリングとアンダーサンプリングを行う。
- 4. インバランスを考慮しなかった場合と性能を比較する。
- 5. 分析結果
- まとめ