48943
今オライリー・ジャパンの「Pythonではじめる機械学習」という本で機械学習の勉強を始めています。そこで、GitHubにあるmglearnというライブラリを入手したいのですが、やり方が分からず困っています。Download
ZIPというボタンを押して保存したりしているのですが、うまくいきません。できるだけ詳しく教えていただけると助かります。mglearnのリンク先は下です。  
<https://github.com/amueller/introduction_to_ml_with_python>

回答ありがとうございます。説明が足りなかったので、もっと詳しく書きます。自分が使いたいコードが入っているのはmglearnというファイルです。しかし、上のリンク先には他にimagesや01-introduction.ipynbなども入っています。mglearnのみダウンロードすることは可能ですか。DownloadZIPを押すと全てダウンロードされます。そして、「X,
y = mglearn.datasets.make_forge()」というコードをjupyter notebookで打つと「name 'mglearn'
is not defined」という表示が出てきます。
CC BY-SA 4.0
2018-10-03T14:35:12.247
48937
2018-10-09T05:31:42.683
2018-10-09T05:31:42.683
3054
30352
question
python 機械学習 github
『Pythonではじめる機械学習』の mglearn を使いたいが、not defined となる
簡単に結論をいえば、jupyter notebook（それ以外の場合も同じです）で`mglearn`を使う場合には、`!pip install
mglearn`でインストールして（勿論できていれば必要はないですが）、`import mglearn`でインポートする必要があります。

ただし、`mglearn`をインポートする方法としては、`import
mglearn`と明示的にする以外に別の方法があり、「Pythonではじめる機械学習」では、その別の方法を使っています。

02-supervised-learning のコードは以下のようになっています。これだけをみるとJupyter Notebookで `X, y =
mglearn.datasets.make_forge()`と打ち込むと動作するように思うかもしれません。

```

    %matplotlib inline
    from preamble import *
    
    # generate dataset
    X, y = mglearn.datasets.make_forge()
    
```

しかし、`preamble.py`のコードは以下のようになっています。

```

    from IPython.display import set_matplotlib_formats, display
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import mglearn
    
    中略
    
    __all__ = ['np', 'mglearn', 'display', 'plt', 'pd']
    
```

`from preamble import *`とすることで、`__all__`にあるモジュールがインポートされます。`from preamble
import
*`という書き方は、処理に時間がかかったり、副作用がおこったりするので嫌われていますが、`__all__`でされるインポートされるモジュールで明示することでその問題は解決できます。ドキュメント
[パッケージから * を import
する](https://docs.python.jp/3/tutorial/modules.html#importing-from-a-package)

また、`*`を使うと可読性に乏しいコードになるため使用を避けるべきとなっており、この質問でも混乱がおこっていますが、チュートリアルにあるように対話セッションでキータイプの量を減らすために使うのは有効な使い方です。チュートリアル
[6.1. モジュールについてもうすこし](https://docs.python.org/ja/3/tutorial/modules.html#more-
on-modules)

Jupyter
Notebookで`mglearn`を使う場合には、`pandas`,`numpy`,`matplotlib`等も使うはずで、それを毎回入力するのは手間なので、`preamble.py`をカレントディレクトリにコピーして`from
preamble import
*`とすることで入力の手間を省くことができます。また、ファイルのコピーが手間な場合は、`preamble.py`の中身をコピーしてJupyter
Notebook のセルにペーストして実行することでも対応できます。

また、<https://github.com/amueller/introduction_to_ml_with_python>
からダウンロードして、それのJupyter
Notebookのファイル（.ipynb）を使う場合は、`mglearn`をインストールする必要はありません。なぜかというと`mglearn`のソースコードがそこに入っているためです。それ以外の場所で使う場合は、`mglearn`を`pip`でインストールする必要があります。
CC BY-SA 4.0
2018-10-04T02:08:24.197
48943
2018-10-09T00:30:21.287
2018-10-09T00:30:21.287
15171
15171
48937
answer