機械学習モデリングプロセス

#線形回帰モデル
１．問題設定…機械学習、深層学習ありきではない。ルールベースでも構わない
２．データ選定
３．データの前処理
４．機械学習のモデルの選定…線形回帰、ロジスティック回帰、SVM、k-means、PCA、knn、深層学習
５．モデルの学習
６．モデルの評価
教師あり学習…予測、分類
教師なし学習…クラスタリング、次元削減
機械学習…コンピュータプログラムは、タスクTを性能指標Pで測定し、その性能が経験Eにより改善される場合、タスクTおよび性能指標Pに関して経験Eから学習すると言われている

回帰問題…ある入力から出力を予測する問題
回帰で扱うデータ…入力（各要素を説明変数または特徴量と呼ぶ）
　　　　　　　　　出力（目的変数）
線形回帰モデル…回帰問題を解くための機械学習モデルの一つ
　　　　　　　　教師あり学習
　　　　　　　　入力とｍ次元パラメータの線形結合を出力するモデル
線形結合…入力とパラメータの内積
モデルのパラメータ…モデルに含まれる推定すべき未知のパラメータ
　　　　　　　　　　パラメータを最小二乗法により推定
単回帰モデル…説明変数が1次元の場合
データの仮定…データは回帰直線に誤差が加わり観測されていると仮定
連立方程式…それぞれのデータをモデル式へ当てはめるとｎ個の式が導出される
データの分割…学習用データ（機械学習モデルの学習に利用するデータ）
　　　　　　　検証用データ（学習済みモデルの精度を検証するためのデータ）
平均2乗誤差…データとモデル出力の二乗誤差の和
最小二乗法…学習データの平均二乗誤差を最小とするパラメータを探索
　　　　　　回帰の場合には、最尤法による解は最小二乗法の解と一致する
Scit-learn…PythonのOpen-Sourceライブラリ（様々な回帰・分類・クラスタリングアルゴリズムが実装されており、NumPyとSciPyとやりとりするよう設計されている）

ハンズオン（住宅価格予測）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/9410c855-576c-8e09-0112-8536531f6de9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/91c1a877-8b51-1264-5af0-b6e8ecbff4c9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/4ae1fef0-5043-d154-01a2-315a660ca11c.png)
#非線形回帰モデル
複雑な非線形構造を内在する現象に対して、非線形モデリングを実施…
　データ構造を線形で捉えられる場合は限られる
　非線形な構造を捉えられる仕組みが必要
基底展開法…回帰関数として、基底関数と呼ばれる既知の非線形関数とパラメータベクトルの線形結合を使用
　　　　　　未知パラメータは線形回帰モデルと同様に最小二乗法や最尤法により推定
未学習と過学習…未学習（学習データに対して、十分小さな誤差が得られないモデル）
　　　　　　　　過学習（小さな誤差は得られたけど、テスト集合誤差との差が大きいモデル）
過学習を防ぐには…
不要な基底関数を削除（基底関数の数、位置やバンド幅によりモデルの複雑さが変化）
正則化法（モデルの複雑さに伴って、その値が大きくなる正則化罰を課した関数を最小化
正則化項の役割…L1ノルムを利用（Lasso推定量）→幾つかのパラメータを正確に０に推定
　　　　　　　　L2ノルムを利用（Ridge推定量）→パラメータを０に近づけるよう推定
汎化性能…学習に使用した入力だけでなく、これまで見たこともない新たな入力に対する予測性能
ホールドアウト法…有限のデータを学習用とテスト用の２つに分類し、「予測精度」や「誤り率」を推定するために使用
交差検証…データをイテレータごとに学習用と評価用に分割

#ロジスティック回帰モデル
ロジスティック回帰…分類問題
シグモイド関数…入力は実数、出力は必ず０～１の値
　　　　　　　　シグモイド関数の微分は、シグモイド関数自身で表現することが可能
ベルヌーイ分布…確率ｐで１，確率１－ｐで０をとる、離散確率分布
尤度関数…データは固定し、パラメータを変化させる
　　　　　尤度関数を最大化するようなパラメータを選ぶ推定方法を最尤推定という
ロジスティック回帰モデルの最尤推定…確率ｐはシグモイド関数となるため、推定するパラメータは重みパラメータとなる
尤度関数を最大とするパラメータを探す…対数をとると微分の計算が簡単
勾配降下法…反復学習によりパラメータを逐次的に更新するアプローチの一つ
確率的勾配降下法…データをランダムに選んでパラメータを更新
　　　　　　　　　勾配降下法でパラメータを1回更新するのと同じ計算量でパラメータをｎ回更新できるので効率よく最適な解を探索可能
混同行列…各検証データに対するモデルの予測結果を４つの観点で分類し、それぞれに当てはまる予測結果の個数をまとめた表
分類の評価方法…正解率がよく使われる。正解率が適当でない場合、再現率やプレシジョンを使って評価する
再現率…本当にpositiveなものの中からPositiveと予測できる割合
適合率…モデルがPositiveと予測したものの中で本当にPositiveである割合
F値…理想的にはどちらも高いモデルがいいモデルだが、両者はトレードオフの関係にあり、どちらかを小さくすると、もう片方の値が大きくなってしまう。


タニックのハンズオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/842cec4e-d714-4ace-0848-a343d6a0557b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/af5308e8-9531-5063-17b7-162d72ae9235.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/995cb981-8eec-f131-2520-cb7e30711c58.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/f6528f5e-0325-0b41-96b5-58ce52be9672.png)

#主成分分析
主成分分析…多変量の持つ構造をより少数個の指標に圧縮→変数の個数を減らすことに伴う、情報の損失を小さくしたい
　　　　　　　　　　　　　　　　　　　　　　　　　　→小数変数を利用した分析や可視化が実現
　　　　　　係数ベクトルが変われば線形変換後の値が変化→情報の量を分散の大きさと捉える
　　　　　　　　　　　　　　　　　　　　　　　　　　　→線形変換後の変数の分散が最大となる射影軸を探索
ノルムが１となる制約付最適化問題を解く
制約付最適化問題の解き方…ラグランジュ関数を最大にする係数ベクトルを探索（微分して０になる点）
ラグランジュ関数を微分して最適解を求める…元のデータの分散共分散行列の固有値と固有ベクトルが、上記の制約付最適化問題の解になる
寄与率…第１～ｋ次元分の主成分の分散は、元のデータの分散と一致
　　　→２次元のデータを２次元の主成分で表示したとき、固有値の和と元のデータの分散が一致
　　　→第ｋ主成分の分散は主成分に対応する固有値
第k主成分…昇順に並べたｋ番目の固有値に対応する固有ベクトルのこと
寄与率…第ｋ主成分の分散の全分散に対する割合
累積寄与率…第１～ｋ主成分まで圧縮した際の情報損失量の割合


乳がんデータ分析のハンズオン
３０次元のロジスティック回帰を行ってみると９７％で分類できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/0ba441af-f52e-0ece-f89c-3cb4a18e97fd.png)
次のグラフから３０次元を２次元まで落としても寄与率が約６５％だとわかる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/9bb22663-1a86-6594-aade-dba9a9dd7afe.png)
２次元まで圧縮すると分離しきれない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/6f5ee28f-6b8d-386d-304e-811a9ecccbc7.png)

#アルゴリズム
ｋ近傍法…最近傍のデータをｋ個とってきて、それらが最も多く所属するクラスに識別
　　　　　ｋを変化させると結果も変わる
ｋ近傍法のハンズオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/3e185cec-c4cd-336e-179e-0407acf761ff.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/bda47fb5-ff63-9a0b-7519-052d3de3c251.png)

k-means…教師なし学習、クラスタリング手法、与えられたデータをｋ個のクラスタに分類する

アルゴリズム
１）各クラスタの中心を初期値にする
２）各データ点に対して、中心との距離を計算し、最も距離が近いクラスタを割り当てる
３）各クラスタの中心を計算し直す
４）収束するまで２，３を繰り返す
初期値が近いとうまくクラスタリングできない。初期値の決め方が大事
#サポートベクタマシン

サポートベクタマシン…2クラス分類のための機械学習手法
　　　　　　　　　　　線型モデルの正負で2値分類
マージン…線形判別関数と最も近いデータ点との距離
決定境界は、いくつも考えられるが、マージンが最大となる線形判別関数を求める
目的関数の導出…各点と決定境界の距離は、点と直線の距離の公式より求める
　　　　　　　　マージンとは、決定境界と最も距離の近い点との距離なので、
　　　　　　　　最小値を求める
主問題の目的関数と制約条件…ラグランジュ未定乗数法で解く
ＫＫＴ条件…制約付最適化問題において最適解が満たす条件
主問題と双対問題…主問題の最適解と双対問題の最適解は一対一対応
サポートベクター…分離超平面を構成する学習データは、サポートベクターだけで残りのデータは不要
ソフトマージンＳＶＭ…サンプルを線形分離できないとき
　　　　　　　　　　　誤差を許容し、誤差に対してペナルティを与える
　　　　　　　　　　　パラメータＣの大小で決定境界が変化
非線形分離…線形分離できないとき、特徴空間に写像し、その空間で線形に分離する
カーネルトリック…高次元ベクトルの内積をスカラー関数で表現
　　　　　　　　　特徴空間が高次元でも計算コストを抑えられる
非線形カーネルを用いた分離…非線形な分離が可能
　　　　　　　　　　　　　　放射基底関数カーネルを用いる

サポートベクタマシンのハンズオン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/b9a86cfb-3bf5-9d6e-7782-dda850f50d89.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/8fad1387-fe15-0e5f-2ad3-eba8c0618680.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/066a4018-c539-63a9-c874-f8cccd0c5828.png)

[３ヶ月で現場で潰しが効くディープラーニング講座](http://study-ai.com/jdla/)
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/921781/ed06438c-368f-3293-6aa5-f35443068bed.png)](http://study-ai.com/jdla/)