【データサイエンス】機械学習

# ０．はじめに																					
大学でデータサイエンスの講義を受講している者です。
あまりにも広範囲な分野であるため"広く浅く"情報整理したいため投稿。
内容のレベルは超入門編、個人的な感情も少し入り混じった備忘録。
（齟齬がある場合はご指摘いただけると助かります。）		

#### データサイエンス学習全体像
[【データサイエンス】概要](https://qiita.com/AkihideKato/items/9dbce22bd87a9c8a3989)
[【データサイエンス】人工知能](https://qiita.com/AkihideKato/items/6381dd320ead9f893577)
[【データサイエンス】機械学習](https://qiita.com/AkihideKato/items/1db3312e8038bd75e89b)
[【データサイエンス】ディープラーニング](https://qiita.com/AkihideKato/items/92b0fb83b35ec08c4e02)
[【データサイエンス】分析の分類・確率分布](https://qiita.com/AkihideKato/items/6fdca6e22f03f0b9f17c)
[【データサイエンス】探索的データ分析](https://qiita.com/AkihideKato/items/9485e3f9803b1e8fe785)
[【データサイエンス】統計的検定](https://qiita.com/AkihideKato/items/8ff1b9bada50491b017c)
[【データサイエンス】予測モデリング](https://qiita.com/AkihideKato/items/ce8e697546d0424bea46)
[【データサイエンス】自然言語処理](https://qiita.com/AkihideKato/items/e545f36e268605fce9a6)
[【アルゴリズム】パーセプトロン](https://qiita.com/AkihideKato/items/fc9a8205154fe9b3090f)
[【データサイエンス】機械学習における関数](https://qiita.com/AkihideKato/items/6ec3b59ff581e7e3c4ad)
[【データサイエンス】確率](https://qiita.com/AkihideKato/items/c099772dfca7546a6802)
						
# １．機械学習とは
## 1-1.概要
明確にプログラムぜす**学習する能力をコンピュータに与える技術**
状況に応じた最適な解答が可能
学習データをもとに法則/ルール/パターンを学習というプロセスを介して導き出す手法

加算方式で確信度が高いものを出力するようなイメージが近い
100%の確証はないが100%に近い制度が発揮できる
例として　**「本州で最も西にある県はどこか」**　と問われた際、
- **解答候補を上げ選択肢を選ぶ**
- **最も西に位置するものはどれか選択する**
- **選択した中から県はあるのか選択する**
- **どの解答候補が最も確信度が高いか選択する**

といったようなアルゴリズムを利用し解答へ導く

## 1-2.メリット・デメリット
- #### 柔軟性がある
モデルを元に学習し効果を発揮する、そのため効果の結果によっては微調整が可能

- #### 特徴量の準備が必要
データのどの部分に着目して学習すれば良いのか判断できる変数や属性
画像を判断する場合、耳がある/輪郭や角度などの特徴を数値化し準備しなければならない
予測するにあたり手がかりとなるもの

## 1-3.学習手順
ざっくりと
|工程 |内容 |
|---|---|
|**1** |モデル選択 |
|**2** |訓練データを使用しモデルを学習させる|
|**3** |評価し精度を確認する|
|**4**|予測し未知のデータについて予測を行う|

- #### モデルとは
特定の種類のパターンを認識するようにトレーニングされたファイル
モデルは入力されたデータをデータを解析し、評価・判定を行った結果を出力として返す
モデルにたくさんデータを入力し学習をさせてあげる

- **``識別モデルによるアプローチ``**		
境界線を使い訓練データより直接的に正解を求める方法	
- **``生成モデルによるアプローチ``**		
モデルを用いて分類を行う方法	

- #### パラメータとは
モデルが勝手に調整してくれる数値

- #### ハイパーパラメータとは
プログラマ自身が調整しなくてはいけない数値

## 1-4.分類
機械学習は大きく以下の3つに大別される
- #### 教師あり
- #### 教師なし
- #### 強化学習
---
### 教師あり学習
データセットから学習を行う
データ内には教師データ（正解）が含まれており、正解ラベルに基づき学習を行う
教師あり学習の中でも大きく2つの問題設定に大別される
-  #### 回帰
-  #### 分類

#### 回帰問題				
``x,y``の二次関数があるとき、x軸上の点aにおけるy軸上のbを求めたい			
**入力aがあるとき出力bはいくつになるのか解決するための問題**			
最終的にはxとyの入力と出力の組み合わせが学習として蓄積される			
線形問題やガウス過程回帰などの手法が回帰問題となる			

##### 分類問題				
入力aに対して**正trueか負falseかを返す法則を学習する問題**			
パーセプトロンや混合ガウス分布などの手法が用いられる		

#### 代表的な手法
- ``回帰分析``
- ``線形判別``
- ``ロジスティック回帰``
- ``決定木``

例えば「銀行の貸付をしてもよいか決定木を用いた判断システムを開発したい」とする
元データ内に多くの属性があるがその中の、
``Creditability（貸し付けた：1，貸し付けていない：０）``
これが**教師データ**となる
訓練データ・検証用データ・テストデータに分ける手法がある

#### 訓練データとは
モデルに模範とさせるためのデータ
正解データ
モデルを賢くするために使用するデータ

#### 検証用データとは
ハイパーパラメータを調整するために使うデータ

#### テストデータ（=評価データ）とは
汎用性を客観的に評価するために使用するデータ
**どんなデータにも対応するようになってほしいため**性能評価をこのテストデータで行う
R言語ロジスティック回帰において訓練データ/テストデータと分割する場面がある。
分割することにより**モデルの開発と評価を独立させ**機械学習が充実していることが考えられる

### 教師なし学習
学習データに正解を与えない（教師データが無い）状態で学習を行う
特徴のない為距離などを計算することによって特徴を取り出しクラスタリングを行う
**データをグループ分けしたり相関関係を推計する**ことが目的
特徴量や特徴ベクトルに従って分類がされる
特徴空間による分類といわれる

#### 代表的な手法
- ``主成分分析``
- ``k平均法クラスタリング``
- ``階層クラスタリング``
- ``アソシエーション``

クラスタリングに使われることが多い
実例がないものは正解値がないため学習が難しい
そういった場合に教師なし学習が利用される
異常検知システムなどに用いられる

## 1-5.教師あり学習のデータ総括
**訓練データ**
学習を行う
データの特徴を理解させるため	

**検証データ**
一度モデルの評価を行いモデルのパラメータを調整して最終的なモデルを決定	

**テストデータ**
評価を行う
未知のデータに対して正しく判断できるかジャッジするため