#線形回帰モデル
1.問題設定…機械学習、深層学習ありきではない。ルールベースでも構わない
2.データ選定
3.データの前処理
4.機械学習のモデルの選定…線形回帰、ロジスティック回帰、SVM、k-means、PCA、knn、深層学習
5.モデルの学習
6.モデルの評価
教師あり学習…予測、分類
教師なし学習…クラスタリング、次元削減
機械学習…コンピュータプログラムは、タスクTを性能指標Pで測定し、その性能が経験Eにより改善される場合、タスクTおよび性能指標Pに関して経験Eから学習すると言われている
回帰問題…ある入力から出力を予測する問題
回帰で扱うデータ…入力(各要素を説明変数または特徴量と呼ぶ)
出力(目的変数)
線形回帰モデル…回帰問題を解くための機械学習モデルの一つ
教師あり学習
入力とm次元パラメータの線形結合を出力するモデル
線形結合…入力とパラメータの内積
モデルのパラメータ…モデルに含まれる推定すべき未知のパラメータ
パラメータを最小二乗法により推定
単回帰モデル…説明変数が1次元の場合
データの仮定…データは回帰直線に誤差が加わり観測されていると仮定
連立方程式…それぞれのデータをモデル式へ当てはめるとn個の式が導出される
データの分割…学習用データ(機械学習モデルの学習に利用するデータ)
検証用データ(学習済みモデルの精度を検証するためのデータ)
平均2乗誤差…データとモデル出力の二乗誤差の和
最小二乗法…学習データの平均二乗誤差を最小とするパラメータを探索
回帰の場合には、最尤法による解は最小二乗法の解と一致する
Scit-learn…PythonのOpen-Sourceライブラリ(様々な回帰・分類・クラスタリングアルゴリズムが実装されており、NumPyとSciPyとやりとりするよう設計されている)
ハンズオン(住宅価格予測)
#非線形回帰モデル
複雑な非線形構造を内在する現象に対して、非線形モデリングを実施…
データ構造を線形で捉えられる場合は限られる
非線形な構造を捉えられる仕組みが必要
基底展開法…回帰関数として、基底関数と呼ばれる既知の非線形関数とパラメータベクトルの線形結合を使用
未知パラメータは線形回帰モデルと同様に最小二乗法や最尤法により推定
未学習と過学習…未学習(学習データに対して、十分小さな誤差が得られないモデル)
過学習(小さな誤差は得られたけど、テスト集合誤差との差が大きいモデル)
過学習を防ぐには…
不要な基底関数を削除(基底関数の数、位置やバンド幅によりモデルの複雑さが変化)
正則化法(モデルの複雑さに伴って、その値が大きくなる正則化罰を課した関数を最小化
正則化項の役割…L1ノルムを利用(Lasso推定量)→幾つかのパラメータを正確に0に推定
L2ノルムを利用(Ridge推定量)→パラメータを0に近づけるよう推定
汎化性能…学習に使用した入力だけでなく、これまで見たこともない新たな入力に対する予測性能
ホールドアウト法…有限のデータを学習用とテスト用の2つに分類し、「予測精度」や「誤り率」を推定するために使用
交差検証…データをイテレータごとに学習用と評価用に分割
#ロジスティック回帰モデル
ロジスティック回帰…分類問題
シグモイド関数…入力は実数、出力は必ず0~1の値
シグモイド関数の微分は、シグモイド関数自身で表現することが可能
ベルヌーイ分布…確率pで1,確率1-pで0をとる、離散確率分布
尤度関数…データは固定し、パラメータを変化させる
尤度関数を最大化するようなパラメータを選ぶ推定方法を最尤推定という
ロジスティック回帰モデルの最尤推定…確率pはシグモイド関数となるため、推定するパラメータは重みパラメータとなる
尤度関数を最大とするパラメータを探す…対数をとると微分の計算が簡単
勾配降下法…反復学習によりパラメータを逐次的に更新するアプローチの一つ
確率的勾配降下法…データをランダムに選んでパラメータを更新
勾配降下法でパラメータを1回更新するのと同じ計算量でパラメータをn回更新できるので効率よく最適な解を探索可能
混同行列…各検証データに対するモデルの予測結果を4つの観点で分類し、それぞれに当てはまる予測結果の個数をまとめた表
分類の評価方法…正解率がよく使われる。正解率が適当でない場合、再現率やプレシジョンを使って評価する
再現率…本当にpositiveなものの中からPositiveと予測できる割合
適合率…モデルがPositiveと予測したものの中で本当にPositiveである割合
F値…理想的にはどちらも高いモデルがいいモデルだが、両者はトレードオフの関係にあり、どちらかを小さくすると、もう片方の値が大きくなってしまう。
#主成分分析
主成分分析…多変量の持つ構造をより少数個の指標に圧縮→変数の個数を減らすことに伴う、情報の損失を小さくしたい
→小数変数を利用した分析や可視化が実現
係数ベクトルが変われば線形変換後の値が変化→情報の量を分散の大きさと捉える
→線形変換後の変数の分散が最大となる射影軸を探索
ノルムが1となる制約付最適化問題を解く
制約付最適化問題の解き方…ラグランジュ関数を最大にする係数ベクトルを探索(微分して0になる点)
ラグランジュ関数を微分して最適解を求める…元のデータの分散共分散行列の固有値と固有ベクトルが、上記の制約付最適化問題の解になる
寄与率…第1~k次元分の主成分の分散は、元のデータの分散と一致
→2次元のデータを2次元の主成分で表示したとき、固有値の和と元のデータの分散が一致
→第k主成分の分散は主成分に対応する固有値
第k主成分…昇順に並べたk番目の固有値に対応する固有ベクトルのこと
寄与率…第k主成分の分散の全分散に対する割合
累積寄与率…第1~k主成分まで圧縮した際の情報損失量の割合
乳がんデータ分析のハンズオン
30次元のロジスティック回帰を行ってみると97%で分類できる
次のグラフから30次元を2次元まで落としても寄与率が約65%だとわかる
2次元まで圧縮すると分離しきれない
#アルゴリズム
k近傍法…最近傍のデータをk個とってきて、それらが最も多く所属するクラスに識別
kを変化させると結果も変わる
k近傍法のハンズオン
k-means…教師なし学習、クラスタリング手法、与えられたデータをk個のクラスタに分類する
アルゴリズム
1)各クラスタの中心を初期値にする
2)各データ点に対して、中心との距離を計算し、最も距離が近いクラスタを割り当てる
3)各クラスタの中心を計算し直す
4)収束するまで2,3を繰り返す
初期値が近いとうまくクラスタリングできない。初期値の決め方が大事
#サポートベクタマシン
サポートベクタマシン…2クラス分類のための機械学習手法
線型モデルの正負で2値分類
マージン…線形判別関数と最も近いデータ点との距離
決定境界は、いくつも考えられるが、マージンが最大となる線形判別関数を求める
目的関数の導出…各点と決定境界の距離は、点と直線の距離の公式より求める
マージンとは、決定境界と最も距離の近い点との距離なので、
最小値を求める
主問題の目的関数と制約条件…ラグランジュ未定乗数法で解く
KKT条件…制約付最適化問題において最適解が満たす条件
主問題と双対問題…主問題の最適解と双対問題の最適解は一対一対応
サポートベクター…分離超平面を構成する学習データは、サポートベクターだけで残りのデータは不要
ソフトマージンSVM…サンプルを線形分離できないとき
誤差を許容し、誤差に対してペナルティを与える
パラメータCの大小で決定境界が変化
非線形分離…線形分離できないとき、特徴空間に写像し、その空間で線形に分離する
カーネルトリック…高次元ベクトルの内積をスカラー関数で表現
特徴空間が高次元でも計算コストを抑えられる
非線形カーネルを用いた分離…非線形な分離が可能
放射基底関数カーネルを用いる