XGBoostをやっとインストールできた話

XGBoostを入れようとするとエラーが出てできなかったが、なんとか成功。

以前はAnaconda Promptで以下↓のコマンドを実行してもできなかった。

```
conda install -c anaconda py-xgboost
```
XGBoostのインストールには、他のプログラムを入れて上のコードを入力しないといけないと判明したので記録。
インストール方法の備忘録にするので、同じ境遇の方の助けになれば幸いです。

##環境
・Windows 10 (64bit)
・Python 3.6
・Anaconda

#1.gfortranコンパイラを含む圧縮ファイルをダウンロードして解凍する
sourceforgeのHPからgfortranコンパイラを含む”圧縮ファイル”をダウンロードし、それを解凍する 

”圧縮ファイル”は[sourceforge.net HP](https://sourceforge.net/projects/mingw-w64/files/?source=navbar)の下のほうに進んでいき、”x86_64-posix-sjlj”（写真赤枠で囲ったもの）をクリックしてダウンロード。
![image001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/a0c61c67-e06f-57c8-b46c-0b2002577e3e.png)

x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z がダウンロードされるので、解凍。
(解凍用ソフトがなければ[7-Zip](https://sevenzip.osdn.jp/)などから無料解凍用ソフトダウンロード。)
解凍後、エクスプローラ下記の通りx86_64-***フォルダが作成され、その中にmingw64フォルダがある。
更にmingw64フォルダを展開し、その中にあるbinフォルダも展開。（既に展開されている場合は不要）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/2e17777b-df5b-e6e1-fdd6-a60bf48ffa65.png)
binフォルダのアドレスをコピーする。
（写真↑の場合は"C:\Program Files\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\mingw64\bin”）

#２．PATHを設定する
MinGW-w64に含まれるGCCを任意のディレクトリから利用するにはPATHを設定しておく必要がある。
デスクトップ左下にあるスタートメニューをクリックし、表示されたアプリの一覧の「Windowsシステムツール」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/0572f052-0256-8e16-5012-a60eed0aa498.png)
表示された中から「コントロールパネル」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/1657a894-27f7-40de-4b3f-27a9c0cbf840.png)
「コントロールパネル」が表示されたら「システムとセキュリティ」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/e00c0713-6f4f-4262-bbd4-f9c056250e1e.png)
次の画面で「システム」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/3187499f-18b0-f70e-2deb-a428e9e809d2.png)
「システム」画面が表示されたら左側メニューの中の「システムの詳細設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/98634e42-a307-737c-a512-0e47735fcd85.png)
「システムのプロパティ」画面が表示されます。「環境変数」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/6796db5a-d88a-b36c-3067-87f24493133b.png)
「環境変数」の画面が表示される。
システム環境変数の中で「変数」が「Path」と書かれたものを探し、「Path」と書かれた箇所を一度クリックして選択してから「編集」ボタンをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/94f12519-7376-07dd-ca71-aa5af7b30d94.png)
「環境変数名の編集」画面で、右上の「新規」をクリック。
先程コピーしたMinGWーw64のディレクトリに合わせて入力。（上の例なら「C:\pg\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin」を入力）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/4764f0d9-fc08-3388-018d-1af284030e33.png)
これで、今までPATHに設定されていた値にGCCで使用するPATHが追加された。
コマンドプロンプトを起動し、任意のディレクトリで「gcc -v」と入力して実行して確認。

```
gcc -v
```

#３．コマンドラインからGitを使えるようにする。
既に使える環境なら４へ。

[サイト](https://git-scm.com/)から最新版のexeファイルをダウンロード（写真赤枠からダウンロード可能）。![https___qiita-image-store.s3.amazonaws.com_0_81226_b7769f2c-8845-cb02-209f-3c3903fcdae1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/364aa5bb-5728-be85-638a-81444dc04754.jpeg)
インストール。
![s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/f9d8c68a-4571-bb23-1412-8742f32debca.jpeg)

コマンドラインから利用したいので、「Use Git from the Windows Command Prompt」等を選択し、Nextをクリック。
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/79040b19-b89f-18d4-568f-4f64f0970eab.jpeg)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/10099e55-9698-92b1-cb46-9ba0f1abb4d2.png)

インストール確認。
コマンドプロンプトを起動し下記のコマンドを実行。

```
git --version
```
バージョン表示がされればインストールが成功。これでコマンドラインからGitを利用可能に。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479337/10687fac-03a5-b4e8-586f-d96abf563eab.png)

#4.コンパイルしてXGBoostを使えるようにする
コマンドプロンプトを起動し、コマンドプロンプトでgit cloneする。

```
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
git checkout 9a48a40
git submodule init
git submodule update
```

今度はAnaconda Promptで以下のコマンドを実行する。

```
conda install -c anaconda py-xgboost
```
y/nと聞かれるのでｙを選択すると、インストールされる。
インストール後はjupyter等のエディターで、

```
import xgboost as xgb
```


と入力して実行し、エラーがでなければ成功。
XGBoostが使える。