「python(5)による機械学習入門」AI(38)

# pythonによる機械学習入門
株式会社システム研究計画所, オーム社、2016
https://www.amazon.co.jp/dp/4274219631

## 課題１　anacondaの導入
anacondaの導入の説明がはしょりすぎてるかも。

Windows(MS)にPython(Anaconda)を導入する（5つの罠）https://qiita.com/kaizen_nagoya/items/7bfd7ecdc4e8edcbd679

に書いた。何気なくWindowsでanacondaを導入すると、コマンドプロンプトではpythonは起動しない。

じゃ、Path切る方を選択すればいいかというと、System Cのソフトとか、CADとか、Simulatorとか、pythonをコマンドとして使っている多くのソフトのうち何かで不具合が出るかも。

注意喚起または警告なしの記述はまずいかも。

## 課題2 ダウンロード　
解凍＿
https://www.ohmsha.co.jp/LinkClick.aspx?fileticket=JfuES6hEnVc%3d&tabid=104&mid=739&forcedownload=true

## 課題3 描画
Macintoshだと、凡例が切れたり、本と配置が違う場合があった。
原因解明と対策はこれから。
今回、下記に示した図は、本ではなく、WEBに掲載のプログラムを、
macOS 10.13.3

```shell-session
$ python
Python 3.6.0 |Anaconda 4.3.0 (x86_64)| (default, Dec 23 2016, 13:19:00) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
```
という環境で　<(リダイレクト)で実行したものです。

## 課題４　章節、図表の表題の命名
「元データ」なんですか？これ。って思う人います。
図表は、本文を読んでいなくても、何と無くわかり、
あれ？って思うことが文章で説明してあるとよい。
必ずしも全部がわかる必要はない。
「元データ」では読む気がしない。

具体的なデータの種別を書くと、その分野に興味がない人が読まなくなるのを心配しているのかもしれない。
具体的なデータで説明すれば、個々のデータの固有性に言及できるかもしれない。
私なら後者を選ぶ。

「予測結果」って違和感。「予測例」ならまだしも。
ある論理の結末だから「結果」にしたいのだろう。その論理は一例。論理の正当性、妥当性を論書牛わわけではないんですだ「例」を推す。

## 課題５　図番号の振り方
図番号が飛んでいたり、図番号のない図があった。

# 第一部　導入編
ここからは実行結果の図です。
本そのままではない。
本そのままになる方法をこれから着手。
ご教示歓迎。

## 1.4.2 matplotlib
p.16 図番号なし図
![py1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/af3c6382-af5b-4c3a-f4c3-20473fc6158e.png)

## 1.5.2 データの準備
図1ー10 元データ＜なんのデータかを示した方が良くないですか＞　p.20
![py2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/4688daa7-2775-32ea-2e33-7598e66816c8.png)

右側の凡例が切れている。(Macintosh)

## 1.5.3 分類問題
図1-11 分類問題用データ（クラス分けと学習／テストデータ分け）p.20
![py2a.png](https://qiita-image-store.s3.amazonaws.com/0/51423/8298e9a1-e614-75f4-60b5-3872f30820d0.png)

## 1.5.4 回帰問題
図1-12 回帰の実行結果　p26
![py2-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/ec0d1806-f074-35de-2177-90a95da2487f.png)

## 1.5.5 クラスタリング
図 1-13 クラスタリングの実行結果 p.27
![py2-2a.png](https://qiita-image-store.s3.amazonaws.com/0/51423/957f9bad-ee19-bfda-feca-c61db90a14b1.png)

# 第3章
書籍に画像がない。図番号なし。

![py3-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/17b3d540-0067-8f97-a5e5-ce37f51c54e0.png)
![py3-5-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/5b5b6b81-a8d1-7285-5bac-554cedf12e53.png)
![py3-5-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/e526d677-bd36-bead-467a-5bb602991c76.png)
![py3-5-3.png](https://qiita-image-store.s3.amazonaws.com/0/51423/9a888fb3-d59e-1ef2-4d68-73b3012d35c2.png)
![py3-5-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/4cec3982-d39b-8906-32bb-f315832fd32c.png)

# 第4章
### 4.2.2 線形回帰を試して見る
図4-3 y = 3x-2
![py4-2-2-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/9f10c2a5-4870-ad3b-19cd-704994da5f06.png)

図の空白の大きさが違う(Macintosh)。

## 図4-4 バラつきのあるy=3x-2の予測結果＜例＞
![py4-2-2-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/263b50bd-314c-2789-9d09-323d551eace4.png)
図 4-4 -3から３までの図。空白等の大きさ違い（Macintosh)。

### 4.2.4 y= ax^2 + bを求める
図4-5バラつきのあるy=3x^2 -2 の予測結果<例>
![py4-2-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/2c8a54bb-d996-b916-d5e5-d9303698af84.png)
### 4.2.5 重回帰を試してみる
図4-6 y=3x1-2x2+1 （左が縦y横x1）（右　縦y横x2）
![py4-2-5-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/eeecf651-4598-5784-b0b8-c96bea51c04e.png)
本だと横長なのに、縦長になっている(Macintosh)。

図4-7  y=3x1-2x2+1の予測結果<例>
（左が縦y横x1）（右　縦y横x2）
![py4-5-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/69997abd-4840-7911-697f-973721f09222.png)
## 4.3 機械学習における鬼門　過学習
図4-10バラつきのあるy＝4x＾3＋3x＾2-1
p.87
![py4-3.png](https://qiita-image-store.s3.amazonaws.com/0/51423/9a6d2c83-fadb-eb17-dc4a-f5200be4c728.png)
本だと上段にall, 下段にtrainとtest

図4-11 最小自乗法による学習結果
p.88
![py4-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/cb35cfac-55db-bf3e-c8d9-0b909943dd54.png)
図 4-12最小自乗法によるテスト結果
![py4-5-0.png](https://qiita-image-store.s3.amazonaws.com/0/51423/539b6184-6cbc-3ee1-a9a5-7972d565ba4c.png)
図 4-13
![py4-5-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/105911f2-3cff-dfb2-9bf1-a1fcda488fb5.png)
図 4-14
![4-5-2-ran.png](https://qiita-image-store.s3.amazonaws.com/0/51423/e2e0dfb8-90d2-388e-a5ae-d335916ce786.png)
図 4-15
![py4-5-3.png](https://qiita-image-store.s3.amazonaws.com/0/51423/7ab5bf38-9632-1741-5112-3af8771db9df.png)

# 第5章
## 図5-1 散布図の例＜散布図：花弁(petal)の幅(width)と長さ(length)の例＞
![fig5-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/c5476af7-78b7-4b4b-ca12-932aa40f3505.png)

## 図5-2 k-meansの実行の様子＜萼（がく:sepal）の幅(width)と花弁(petal)の長さ(length)＞初期状態／クラスタ形成前
![fig5-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/d9f10e2d-a7c6-2475-6eda-4b50f7b44745.png)
##図5-2 k-meansの実行の様子＜萼（がく:sepal）の幅(width)と花弁(petal)の長さ(length)＞１回目／最初のクラスタ
![fig5-2-1.png](https://qiita-image-store.s3.amazonaws.com/0/51423/eff8699e-43d9-6955-4ba5-c98801a52d7c.png)
## 図5-2 k-meansの実行の様子＜萼（がく:sepal）の幅(width)と花弁(petal)の長さ(length)＞２回目
![fig-5-2-2.png](https://qiita-image-store.s3.amazonaws.com/0/51423/70d9c474-35f7-04ca-5160-192bbac9909a.png)
## 図5-2 k-meansの実行の様子＜萼（がく:sepal）の幅(width)と花弁(petal)の長さ(length)＞３回目／ほぼ変化なし
![fig5-2-3.png](https://qiita-image-store.s3.amazonaws.com/0/51423/e0bfc1c6-a4eb-3683-d1b1-82ae5ca81c27.png)
![fig5-2-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/884ae6f7-d110-25c6-7bb8-560269601e3c.png)

## 図5-3 花弁の長さと幅によるクラスタリング結果の散布図
![fig5-3.png](https://qiita-image-store.s3.amazonaws.com/0/51423/1d2e0d11-da88-6f4e-7144-86d37900c5dd.png)

## 図5-4 クラスタリングの結果＜萼の幅と長さ＞
![fig5-4.png](https://qiita-image-store.s3.amazonaws.com/0/51423/b29b4a9d-aacf-a05b-3812-7792610a26f8.png)
図 5-4画面で縦に切れたので「小さく」表示したら文字がはみ出た(Macintosh)。
横長の図が正方形になっている。下の見出しが右に、左の見出しが下にある。

## 図5-6 k-meansとAgglomerativeClustering(ウォード法)＜花弁の長さと幅＞
![fig5-6.png](https://qiita-image-store.s3.amazonaws.com/0/51423/9d3e3e48-1687-ba1e-55d9-5a270abbe805.png)
## 図5-6 k-meansとAgglomerativeClustering(ウォード法)＜花弁の長さと幅＞
![fig5-6k.png](https://qiita-image-store.s3.amazonaws.com/0/51423/41ca2778-2ce3-7eb7-e2d3-7afb3030b5ae.png)

## 図5-7 k-meansとAffinityPropagationの結果＜花弁の長さと幅＞
![fig5-7.png](https://qiita-image-store.s3.amazonaws.com/0/51423/32168efe-c8a4-7f70-75b9-e91828ae924c.png)

# Appendix

```
$ python < get_data.py
<stdin>:253: MatplotlibDeprecationWarning: pyplot.hold is deprecated.
    Future behavior will be consistent with the long-time default:
    plot commands add elements without first clearing the
    Axes and/or Figure.
/Users/administrator/.pyenv/versions/anaconda3-4.3.0/lib/python3.6/site-packages/matplotlib/__init__.py:917: UserWarning: axes.hold is deprecated. Please remove it from your matplotlibrc and/or style files.
  warnings.warn(self.msg_depr_set % key)
/Users/administrator/.pyenv/versions/anaconda3-4.3.0/lib/python3.6/site-packages/matplotlib/rcsetup.py:152: UserWarning: axes.hold is deprecated, will be removed in 3.0
  warnings.warn("axes.hold is deprecated, will be removed in 3.0")

---
python linear_regression_analytic_solution.py 
Traceback (most recent call last):
  File "linear_regression_analytic_solution.py", line 75, in <module>
    main()
  File "linear_regression_analytic_solution.py", line 35, in main
    dimension, nonlinear, num_of_samples, noise_amplitude
  File "/Users/administrator/Downloads/examples-2/App_A/get_data.py", line 186, in get_all
    train = perm_indices[:N/2]  # 整数演算なので切り下げ
TypeError: slice indices must be integers or None or have an __index__ method
---
python linear_regression_iterative_solution.py 
Traceback (most recent call last):
  File "linear_regression_iterative_solution.py", line 144, in <module>
    main()
  File "linear_regression_iterative_solution.py", line 94, in main
    return_coefficient_matrix=False
  File "/Users/administrator/Downloads/examples-2/App_A/get_data.py", line 186, in get_all
    train = perm_indices[:N/2]  # 整数演算なので切り下げ
TypeError: slice indices must be integers or None or have an __index__ method
---
python neural_network.py 
Traceback (most recent call last):
  File "neural_network.py", line 236, in <module>
    main()
  File "neural_network.py", line 188, in main
    return_coefficient_matrix=False
  File "/Users/administrator/Downloads/examples-2/App_A/get_data.py", line 186, in get_all
    train = perm_indices[:N/2]  # 整数演算なので切り下げ
TypeError: slice indices must be integers or None or have an __index__ method
```
## 一覧
物理記事　上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff

量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4

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

統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba

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

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

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

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

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

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

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

仮説（0）一覧
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df

Qiita(0)Qiita関連記事一覧（自分）
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6

鉄道（０）鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0

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

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

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

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

OSEK OS設計の基礎　OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3

Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

++ Support(0)　
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909

官公庁・学校・公的団体（NPOを含む）システムの課題、官（０）
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3

「はじめての」シリーズ　 ベクタージャパン　
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb

AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

プログラマが知っていると良い「公序良俗」
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.
### 文書履歴
ver. 0.10 初稿　20180322
ver. 0.20 図の増強 20180330
ver. 0.21 図の見出し追加 20180402
ver. 0.22 書式訂正 20180801
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
####  Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.