データサイエンス初学者にむけた、データサイエンス100本ノックを実装する方法（windows10 Home向け）

#はじめに
　最近、プライベートでデータ分析のツールを作成している関係でpandasやnumpyやらと様々python外部ライブラリを活用している。が、いざデータ分析に使って見ると、<b>「分っかんねーよ！！」と頭がパンクしPCをバスケゴールにダンクシュートしかねない状況になる。</b>
　これはまずいと感じ、何か良い教材ないかと色々と詮索して見るとデータサイエンティストのための学習環境「データサイエンス100本ノック」を見つける。
　この記事はその時、自分がWindows上で「データサイエンス100本ノック」を実装するまで経緯を投稿しております。

#そもそもデータサイエンス100本ノックとは何か
　データサイエンス100本ノックとは一般社団法人データサイエンティスト協会（以下DS協会）がGitHub上に提供する、構造化データの加工について実践的に学ぶことができる無料の学習環境の事です。データサイエンティスト初学者にとって非常に有効な学習ツールとなります。
　AI・機械学習で有名なプログラミング言語pythonは勿論の事、統計解析に特化したプログラミング言語であるRやデータベース言語であるSQLと幅広いデータサイエンティストの基礎知識を学習する事が可能です。
<br>
データサイエンス100本ノックのURL:
https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
　

#事前準備について
環境構築前における、機器の事前準備は下記のような状態で行っております
<ul>
<li>windows 10 home
：使用OS（Docker Toolboxの設定で重要なため記載）</li>
<li>Docker Toolbox
：Windows上で仮想環境を構築する為に必要なツール</li>
<li>git
：「データサイエンス100本ノック」の学習するための仮想環境を提供する設定ファイル群（コンテナ群）をGitHubからクローンするのに必要</li>
</ul>

#データサイエンス100本ノック環境構築方法
やることは大きく分けて以下の2つです。
<ol>
<li>Docker Toolboxセットアップ</li>

<li>「データサイエンス100本ノック」の学習環境構築</li>
</ol>
それぞれ説明していきます。
###Docker Toolboxセットアップ
「データサイエンス100本ノック」を使用するには専用の環境ｰｰ仮想環境ｰｰを用意する必要があり、windows上に仮想環境を構築するDockerというツールをインストールする必要があります。ここではその手順を記載します。
<ol>
<li>Dockerの公式サイトにアクセスする
https://docs.docker.com/toolbox/overview/
![資料１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/7c589bc6-9a1f-7a33-3f69-e2d55bf2023f.png)

</li>
<li>公式サイトから<b>Docker Toolbox【※1】</b>をダウンロードする（注：ここで間違えてDocker for windows【※2】をダウンロードしない事！！）
※1：windows10 homeの場合、「Hyper-V」というwindows独自で仮想環境を構築するツールを持っていないため、Docker Toolboxという「仮想環境を構築するツール」を外部から持ってくるツールをダウンロードする必要がある。
※2：windows10 proの場合はDocker for windowsをダウンロードする
![資料2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/837bdcee-1631-4944-0a28-f00166c2695d.png)
</li>
<li>ダウンロードしたDocker Toolboxのインストールを行う。特殊な設定を必要としない限り、基本「Next >」を押してセットアップを行うだけでよい。
![資料3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/8a089030-4dda-b1ea-0488-eacf0e9ee838.png)
</li>
<li>Dockerを操作するための下記のアイコンが現れる事を確認します。
![資料4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/76951122-b6a9-70de-91c8-3e947cb91c21.png)
</li>
<li>Kitematicのアイコンをダブルクリックし、Oracle VM VirtualBoxに「default」と言う名前のDocker仮想マシンが作成されます。作成されるまで(100%)少々待ちます。
![資料45png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/4590b9cc-11e6-0270-1d8d-0c1dad8e1c4e.png)
</li>
<li>Docker Hubのログイン画面が出てきたら、「SKIP FOR NOW」を押してスキップします。（Docker Hubのアカウント作成はいつでもできますので、ここでは割愛します）
![資料6png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/cb492fe1-667f-8e1c-b6ac-b85660307a00.png)
</li>
<li>画面左下にある「DOCKER CLI」をクリックして、Dockerのコマンドライン・インタフェースを開きます
![資料7png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/c48fae7d-a4d0-d569-9394-18c5c86ca3b6.png)
</li>
<li>「DOCKER CLI」にて「.¥docker ps」コマンドを実行。（エラーが出る場合は「docker ps」コマンドを実行）エラーが発生せず結果が空のコンテナ一覧が表示されれば「Docker Toolbox」のセットアップは完了です。
![資料8png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/976321aa-9879-d730-aafb-4af570fe7351.png)

</li>
</ol>
###「データサイエンス100本ノック」の学習環境構築
　DS協会が提供している、「データサイエンス100本ノック」の学習環境の設定ファイルはGitHub上に公開されているためgit【※】を用いてGithubからその設定ファイルをローカルPC上に落とし込む必要があります。
![ogp_thum800.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/044582ea-0f11-9650-9537-6dbae773e0e6.jpeg)


※gitに関する操作方法は下記の記事を参考
https://qiita.com/manabu-watanabe/items/ecf1b434baf305adaa00


1.Docker Quickstart Terminalを開き、下記のコマンドを打ち、Git Hubから「データサイエンス100本ノック」(100knocks-preprocess)の学習環境の設定ファイルをローカルPCに持ってきます。
![資料12png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/0aed14e7-ad4b-5150-f7e0-358f765f2132.png)


```Docker:Docker
$　git clone https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess
```

2.Oracle VM VirtualBoxを開き、「default」のVMを右クリックし「設定」を選択します。
![資料9png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/a398c3ad-0270-b4b7-a212-710a04d1864f.png)

3.<b>【重要！！】</b>「共有フォルダ」を選択し、右上のにあるアイコンをクリックし、先ほどGithubから持ってきた（クローニングした）フォルダのパスを指定し、フォルダの共有化を行います。（これを行わないとDocker上で反映されないファイルを共有化できず、十分な環境構築ができなくなります！！）
![資料10png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/0cd8b5d9-9dd6-a0d3-ac5f-1f39ebb66d63.png)

4.設定が完了後、設定を反映させるために再起動する必要があります。「default」のVMを右クリックし「リセット」を選択し、再起動を行います。
![資料11png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/3e5edeb8-5b6a-a4cb-f74a-4620bee48657.png)

5.Docker Quickstart Terminalを再び起動し、下記のコマンドを実行します。（設定完了に10分少々時間がかかります）

```Docker:Docker
$ cd 100knocks-preprocess
$ docker-compose up -d --build
```

6.設定が完了後、ブラウザで以下のアドレスにアクセスします。
 http://192.168.99.100:8888
　以下のような画面が表示されたらOKです。
![資料13png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/681742/190c7875-0019-2efd-82a6-8cdddab54258.png)

#まとめ
 　windowsでデータサイエンス100本ノックを動かす方法を紹介してみました。
　現在、データサイエンス100本ノックをちまちまとやっております。こちらの問題集に関する記事も近々投稿する予定ですので、よかったらそちらの方も見てみて下さい。
　Dockerで仮想環境を構築する事は初め大変かもしれませんが、慣れてくると今回のようにGitHubを用いてインフラストラクチャーを構築できるのでかなり便利なツールです。