dockerで機械学習(71) with R (1)「入門 機械学習」Drew Conway, John Myles White  著

# 1.すぐに利用したい方へ(as soon as)

「入門 機械学習」Drew Conway, John Myles White  著
ー
![picture_large978-4-87311-594-8.jpeg](https://qiita-image-store.s3.amazonaws.com/0/51423/fa356768-9c43-dfd0-183c-18524ae66598.jpeg)
https://www.oreilly.co.jp/books/9784873115948/

## docker
dockerを導入し、Windows, Macではdockerを起動しておいてください。
Windowsでは、BiosでIntel Virtualizationをenableにしないとdockerが起動しない場合があります。
また、セキュリティの警告などが出ることがあります。

## docker pull and run

```
$ docker pull kaizenjapan/r-ml

$ docker run -it kaizenjapan/r-ml /bin/bash
```

以下のshell sessionでは
(base) root@473fc1bb505d:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。
それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。
それぞれの章のフォルダに移動します。

dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。

## ファイル共有または複写
dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。

複写の場合は、dockerを起動したOS側コマンドを実行しました。お使いのdockerの番号で置き換えてください。複写したファイルをブラウザで表示し内容確認しました。

# 第1章

```
(base) root@473fc1bb505d:/# ls
ML_for_Hackers	bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  srv  sys  tmp  usr  var
(base) root@473fc1bb505d:/# cd ML_for_Hackers/
(base) root@473fc1bb505d:/ML_for_Hackers# ls
01-Introduction  03-Classification  05-Regression      07-Optimization	09-MDS		    11-SNA		 README.md     package_installer.R
02-Exploration	 04-Ranking	    06-Regularization  08-PCA		10-Recommendations  12-Model_Comparison  fast_check.R  slides
(base) root@473fc1bb505d:/ML_for_Hackers# cd 01-Introduction/
(base) root@473fc1bb505d:/ML_for_Hackers/01-Introduction# ls
data  images  ufo_sightings.R
```

## 01 ufo_sightings.R 

```shell-session
(base) root@473fc1bb505d:/ML_for_Hackers/01-Introduction# r ufo_sightings.R 
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Error in strsplit(unitspec, " ") : non-character argument
In addition: Warning message:
Removed 1 rows containing non-finite values (stat_bin). 
```



# 2. dockerを自力で構築する方へ

ここから下は、上記のpullしていただいたdockerをどういう方針で、どういう手順で作ったかを記録します。
上記のdockerを利用する上での参考資料です。本の続きを実行する上では必要ありません。
自力でdocker/anacondaを構築する場合の手順になります。
dockerfileを作る方法ではありません。ごめんなさい。
## docker

ubuntu, debianなどのLinuxを、linux, windows, mac osから共通に利用できる仕組み。
利用するOSの設定を変更せずに利用できるのがよい。
同じ仕様で、大量の人が利用することができる。
ソフトウェアの開発元が公式に対応しているものと、利用者が便利に仕立てたものの両方が利用可能である。今回は、公式に配布しているものを、自分で仕立てて、他の人にも利用できるようにする。

### docker pull

docker公式配布の利用は、URLからpullすることで実現する。


## apt

```shell-session
(base) root@473fc1bb505d:/# apt update

(base) root@473fc1bb505d:/# apt install -y procps

(base) root@473fc1bb505d:/# apt install -y vim

(base) root@473fc1bb505d:/# apt install -y apt-utils

(base) root@473fc1bb505d:/# apt install -y r-base

(base) root@473fc1bb505d:/# apt install -y r-cran-hmisc
```

## git
```
(base) root@f19e2f06eabb:/# git clone https://github.com/johnmyleswhite/ML_for_Hackers
```

# 3.docker hub 登録
ここからは、新たにソフトを導入したdockerを自分のhubに登録する方法です。
ご自身で何かソフトウェアを導入されたら、ぜひhubに登録することをお勧めします。
続きの作業を誰かに依頼したり、エラーがでてわからなくなったときに、対処方法を問い合わせるのにも役立ちます。

```
$ docker ps 
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                            NAMES
b28c065c8b45        continuumio/anaconda3            "/usr/bin/tini -- /b…"   21 hours ago        Up 21 hours                                                                                  elegant_gates       

$ docker commit b28c065c8b45  kaizenjapan/r-ml


$ docker push kaizenjapan/r-ml

```


# 参考資料(reference)

Rのインストール
http://www.okadajp.org/RWiki/?R%20のインストール#td663091

dockerで機械学習(74) 環境構築(4) R いくつ難関？

dockerで機械学習(52) with R (2)「データサイエンスのための統計学入門 ―予測、分類、統計モデリング、統計的機械学習とRプログラミング」Peter Bruce、Andrew Bruce　著
https://qiita.com/kaizen_nagoya/items/479e3283a2d030726254

dockerで機械学習(python:anaconda)「直感Deep Learning」Antonio Gulli、Sujit Pal　第1章,第2章
https://qiita.com/kaizen_nagoya/items/483ae708c71c88419c32

OpenCVをPythonで動かそうとしてlibGL.soが無いって言われたけど解決した。
https://qiita.com/toshitanian/items/5da24c0c0bd473d514c8

サーバサイドにおけるmatplotlibによる作図Tips
https://qiita.com/TomokIshii/items/3a26ee4453f535a69e9e

Dockerでホストとコンテナ間でのファイルコピー
https://qiita.com/gologo13/items/7e4e404af80377b48fd5

Docker for Mac でファイル共有を利用する
https://qiita.com/seijimomoto/items/1992d68de8baa7e29bb5


「名古屋のIoTは名古屋のOSで」Dockerをどっかーらどうやって使えばいいんでしょう。TOPPERS/FMP on RaspberryPi with Macintosh編 ５つの関門
https://qiita.com/kaizen_nagoya/items/9c46c6da8ceb64d2d7af

64bitCPUへの道 and/or 64歳の決意
https://qiita.com/kaizen_nagoya/items/cfb5ffa24ded23ab3f60

ゼロから作るDeepLearning２自然言語処理編　読書会の進め方（例）
https://qiita.com/kaizen_nagoya/items/025eb3f701b36209302e


物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

数学関連記事１００
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d

言語・文学記事　１００
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6

医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82

通信記事１００
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7

自動車　記事　１００
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5

OSEK 記事で views 100,000を目指して　OSEK(8)
https://qiita.com/kaizen_nagoya/items/ff45ee55566eeff5f62e

無線網（Wi-Fi）空中線(antenna)(0) 記事一覧(209/300目標) https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

仮説（0）一覧（目標100現在40）
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

安全（0）安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409

日本語（０）一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68

英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d

転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

LaTeX(0) 一覧　
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792

自動制御、制御工学一覧（０）
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b

Rust(0) 一覧　
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927

小川清最終講義、小川清最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53

＜この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。＞
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
### 文書履歴(document history)
ver. 0.10 初稿 20181008 
ver. 0.11 見出し、入力促進記号、URLをr-mlに訂正 20181013
ver. 0.12 表題訂正、参考URL追記 20181014
ver. 0.13 番号変更、参考文献追記 20181029
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.