condaが探すリポジトリ先を変更する方法(conda-forgeの追加)

Pythonのパッケージをインストールする際、pipやcondaを使われる方が多いと思います。

```
簡単におさらいすると、
pipはPyPI(Python Package Index) で配布されているパッケージをインストールします。

condaはデフォルトでは次の場所からダウンロードされます。

defaults(デフォルトレポジトリ):
https://repo.continuum.io/pkgs/
```

しかし、インストールしたいパッケージがこれらの中には存在しない場合があります。
そのような場合、condaが探すリポジトリ先を変更することでインストールできるかもしれません。

例えば、`LIME`というパッケージが存在しますが、
これはpipやデフォルトのcondaではインストールすることができません。(私の環境だと。)

しかし、condaが探すリポジトリ先に`conda-forge`を加えることで`LIME`がインストールが可能になります。
`conda-forge`はgithub上のコミュニティ主体のパッケージコレクションで、`LIME`以外にもたくさんのパッケージを公開しており、condaのdefaultsでは見つからないパッケージをダウンロードすることが可能です。
参考：[conda-forge](https://conda-forge.org/)
本記事ではcondaのインストール先に`conda-forge`を加える方法を記載します。

#LIMEとは
本記事の趣旨からかなりずれるのですが、LIMEについて少しだけ紹介させてください。
LIMEは、Explainable AIの1つで、ある予測モデルが何故そのような予測をしたのかを可視化できるモデルです。
![1.png](https://qiita-image-store.s3.amazonaws.com/0/173913/d534f3b0-891c-ee62-269e-00938bbef686.png)
AI業界ではモデルの説明性のブラックボックス化が囁かれておりますが、LIMEはそれを解決する手法の1つです。
詳細は以下の記事をご参考ください。
**<作成中>**

LIME論文
["Why Should I Trust You?": Explaining the Predictions of Any Classifier](https://arxiv.org/abs/1602.04938)

#condaのダウンロード先の変更方法
本題に入ります。
`LIME`というパッケージはcondaのデフォルトのインストール先ではインストールできません。
インストールしようとすると、以下のようになります。

```
$conda install lime
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - lime

Current channels:

  - https://repo.continuum.io/pkgs/main/win-64
  - https://repo.continuum.io/pkgs/main/noarch
  - https://repo.continuum.io/pkgs/free/win-64
  - https://repo.continuum.io/pkgs/free/noarch
  - https://repo.continuum.io/pkgs/r/win-64
  - https://repo.continuum.io/pkgs/r/noarch
  - https://repo.continuum.io/pkgs/pro/win-64
  - https://repo.continuum.io/pkgs/pro/noarch
  - https://repo.continuum.io/pkgs/msys2/win-64
  - https://repo.continuum.io/pkgs/msys2/noarch
```

そこで、condaが探すリポジトリ先を確認します。

```
$conda config --get channels
--add channels 'defaults'   # lowest priority
```
defaultsを探しにいっていることがわかります。

そこで、探す先に`conda-forge`を追加します。

```
$conda config --append channels conda-forge
```

`conda-forge`が追加されたことを確認します。

```
$conda config --get channels
--add channels 'conda-forge'   # lowest priority
--add channels 'defaults'   # highest priority
```
再度`LIME`をインストールします。

```
$conda install lime
Solving environment: done

## Package Plan ##

  environment location: C:xxxx/xxxx/xxxx

  added / updated specs:
    - lime


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libsodium-1.0.16           |           vc14_0         582 KB  conda-forge
    zeromq-4.2.5               |           vc14_1         9.6 MB  conda-forge
    lime-0.1.1.30              |           py36_0         249 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        10.4 MB

The following NEW packages will be INSTALLED:

    lime:      0.1.1.30-py36_0   conda-forge

The following packages will be UPDATED:

    libsodium: 1.0.16-h9d3ae62_0             --> 1.0.16-vc14_0 conda-forge [vc14]
    zeromq:    4.2.5-hc6251cf_0              --> 4.2.5-vc14_1  conda-forge [vc14]

Proceed ([y]/n)? y


Downloading and Extracting Packages
libsodium 1.0.16: ############################################################################################# | 100%
zeromq 4.2.5: ################################################################################################# | 100%
lime 0.1.1.30: ################################################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
```
conda-forgeから`LIME`を探してきてくれました。

このように、condaやpipでは見つからないパッケージを探すときは、`conda-forge`を使ってみてください！