E資格合格に向けて　機械学習編

#1 機械学習とは
　人工知能のプログラム自身が学習する仕組み
　コンピュータは与えられたサンプルデータを通してデータに潜むパターンを学習する

　機械学習が対象とする課題の種類は、次の3つにまとめられている
　①教師あり学習・・線形回帰モデル、非線形回帰モデル、ロジスティック回帰モデルなど
　②教師なし学習・・主成分分析、k-meansなど
　③強化学習　　・・Ｑ学習、ＤＱＮなど

#2 線形回帰モデル
　線形回帰（linear regression）は統計でも用いられる手法で、最もシンプルなモデルの1つと言える。データ（の分布）があったときに、そのデータに最も当てはまる直線を考える。

下記は、Ｙ軸に「給料」、Ｘ軸に「経験」とり、新しい「経験」のデータが来た際に、その直線の値を返すことで体重を予測することができる。

　![回帰の図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/2203dbcf-f819-4c91-e161-62b7ebd0eafb.png)

この回帰直線は最小二乗法によって求めることができる。
最小二乗法では、プロットの y座標（yi）と、回帰直線上の y座標（f(xi)）の差（＝残差）の二乗（{yi−f(xi)}2）の和が最小になる関数 f(x)を求める。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/419145cd-dd51-cfa6-e575-3822d72a9592.png)

実装例：ボストン住宅価格
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/e813658c-61c2-b372-a9f5-16cdf3dfd283.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/dd06b210-3c86-4a18-3c3a-d8b0c41cc763.png)

#3 非線形回帰モデル
非線形回帰モデルは、直線ではなく曲線を用いるもの。非線形モデルの問題は、線形モデルよりも、学習データに適合しやすくなるが、注意点として、線形モデルよりも学習（トレーニング）データに過剰に適合してしまう場合がある。非線形の場合、基底展開法を用いてモデリングを行う。

【基底関数】
　ある関数を表現するの基底ベクトルのこと。
　対象となる空間に属する全ての元（関数）は、この基底関数の線形結合で表される。
　この基底関数と呼ばれる非線形関数とパラメータベクトルの線形結合を使用。
　未知パラメータは最小二乗法や最尤法により推定する。

　基底関数として、使われるものは次の通り。
　多項式基底
　ガウス型基底関数
　スプライン関数/Bスプライン関数

実装例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/e757f5e7-9c9b-ee82-4076-30ef0141fee2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/bead523c-535e-f305-774f-753e199b3beb.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/e6833640-6cae-a2af-5084-7e6b7bff2c62.png)

#4　ロジスティック回帰モデル
線形回帰・非線形回帰は回帰問題に用いる手法でしたが、その分類問題版といえるのものが、ロジスティック回帰（logistic regression）。名前に「回帰」とついているが、回帰問題ではなく、分類問題に用いる手法であることに注意が必要。ロジスティック回帰では、シグモイド関数という関数をモデルの出力に用いる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/6f3a70f3-5c53-e6c2-5631-b3cc729cdb61.png)
任意の値を0から1の間に写像するシグモイド関数を用いることによって、与えられたデータが正例（+1）になるか、負例（0）になるかの確率が求まるので、出力値が0.5以上ならば正例、0.5未満ならば負例と設定しておくことで、データを2種類に分類できるようになる。

実装例：タイタニックデータ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/8ee92139-86d9-c134-e383-76c3c330eb75.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/07cdbaad-dc07-2121-a302-2a03907c9a33.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/70af0d9f-6f2d-1df8-6bd7-ad99fef05c3f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/44852223-7b7a-f3a6-e491-1905dbc11951.png)


#4 主成分分析
教師なし学習の一つ。主成分分析（Principal Component Analysis, PCA）は、データの特徴量間の関係性、すなわち相関を分析することでデータの構造をつかむ手法。特に特徴量の数が多い場合に用いられ、相関をもつ多数の特徴量から、相関のない少数の特徴量へと次元削減をすることが主たる目的となる。ここで得られる少数の特徴量を主成分という。機械学習で用いる特徴量は次元が多くなりがちだが、次元削減をすることで、学習にかかる時間を減らしたり、あるいはデータを可視化したりすることができる。

実装例：乳がん
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/ba979423-f663-1498-afdd-d025135fdda5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/a12e526b-6fb9-6daa-0a05-c0721fa39a8d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/0b8bde4c-dc67-d36c-2980-64d6afe7ae25.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/c01b2c53-50ce-3499-fa24-73569534c5a7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/0c0615cb-92d9-37bf-9c2a-ff33c621c815.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/7b7f51db-51b3-4005-519d-8032bf92f9da.png)

#5 SVM
サポートベクターマシン（Support Vector Machine）はSVMとも呼ばれ、高度な数学的理論に支えられた手法であるために、ディープラーニングが考えられる以前は機械学習において最も人気のあった手法の1つだった。コンセプトは非常に明快で、（入力に用いる）各データ点との距離が最大となるような境界線を求めることで、パターン分類を行う。この距離を最大化することをマージン最大化という。

実装例：アヤメの花
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/1bad5559-b187-497b-6e21-b250d9adef5d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2313001/55f591ac-ad61-e2ec-4926-646100751522.png)