[第2版]Python機械学習プログラミング
1-2章:機械学習
教師あり・・・教師信号あり→人がクラスタリングする(答えのパターンを用意する)
教師なし・・・教師信号なし→クラスタリングしてアウトプットする(答えのパターンが決まっていない)
強化学習・・・自分でどんどん学習していくやつ
機械学習のステップ
前処理(クレンジング、次元削減)→学習・訓練(ハイパーパラメータ最適化)→評価→予測
前処理
次元削減・・・特徴を表す次元を統計的に分析し、割合の高いものを学習対象とする。
学習・訓練(トレーニング)
ハイパーパラメータ最適化・・・y=ax+bx^2+cx^3などのa,b,cがハイパーパラメータ
最適化はパラメータ数と値、数が多すぎても少なすぎても極端な値になりがち
ニューラルネットワークのパーセプトロン・・・答えがあるやつなら強い
学習アルゴリズム・・・SVM,ランダムフォレスト、パーセプトロン etc.
ニューラルネットワーク
・アルゴリズム:パーセプトロン___離散出力(0or1)を学習に使い、離散出力(0or1)を結果として返す。
・アルゴリズム:ADALINE___連続出力(0~1)を学習に使い、離散出力(0or1)を結果として返す。
連続出力を組み込む価値は微分可能→コスト関数(誤差平方和)を二次関数にすると、最適値を微分して求められる。
3章: scikit-learn:機械学習のライブラリ
機械学習の手順
基本的な機械学習ロジックはライブラリが提供されているため、チューニングの勘所を見極めるのが大事
①特徴量・・・画像はピクセル、色などで構成されるが、ベクトルとしてどの要素を捉えるか。
②性能指標・・・性能の良し悪しを何でみるか
③分類器とアルゴリズム性向・・・医療機器の品質チェックだと、失敗は許されないテストなので◯を×と行ってはいいが×を◯と言わない方が良いなど。
分類器・・・ADALINE、パーセプトロン
④モデルの評価・・・目的の達成度、正解率などを定義して評価する
⑤ハイパーパラメータのチューニング・・・パーセプトロンに固定値の値を流し込む。
<わかっているふりをするためのポイント>
①、②は外部のライブラリをそのまま使い、③の方針を自分で決めていて、
④を良くなるような⑤を探す繰り返す。
このような運用していますとプレゼンできたらいいらしい。
ロジスティック回帰:確率分布を出すために存在している
尤度・・・分析結果の尤もらしさの程度を表すもの。
ロジスティック回帰分析したら、0,1,2に振り分けるケースがあったとして、
ギリギリ1なのか完全に1なのか、尤もらしさの程度を表すもの。
尤もらしさがわかるのが、ロジスティック回帰分析の嬉しみ。
(0:0%,1:100%,2:0%と0:33%,1:34%,2:33%では同じ1でも違う)
機械学習の手順③に尤度の考えを組み込むと評価に幅を持たせられる
尤度の最大化≒コスト関数(誤差平方和)の最小化
アルゴリズム:サポートベクターマシン(support vector machine, SVM)
教師あり学習(◯、×がある)を用いるパターン認識モデルの一つである。分類や回帰へ適用できる
特徴量が2次元なら1次の平面、特徴量が3次元なら2次元の平面を見つけ出すためのモデル。
SVMであるxのとき(最小マージン)を最大化するような直線の傾きが求められる。
マージン=それぞれの点(◯、×)と平面の距離
最小マージン=◯から平面の距離の一番小さいもの + ×からの平面の距離の一番小さいもの
※ラグランジュの未定乗数法で計算を簡略化できるらしいが偉い人が頑張るらしい。
ハードマージンとソフトマージン
カーネル:機械学習の大量の結果データから統計的に導き出したアルゴリズム
カーネルによって計算量が減るから皆、公理化された暗黙の了解ロジックとして使われる
アルゴリズム:ランダムフォレスト(random forest)
決定木・・・質問を分割したら答えが求まる
https://mathwords.net/randomforest
不純度・・・正規(50:50)に近いほど低い。偏りがあるほど答えが導きやすく高い。
A,Bで100%がAorBで構成されるなら純度100%で不純度が低いとみなせる。
k近傍法:怠惰学習アルゴリズム
アメリカの大統領選挙方式
4章:前処理
訓練データ(トレーニングデータ、教師データ)をどうそろえるか?
汎化性能をあげるためには?
欠損値対策・いろんなトレーニングデータを揃える
過学習対策・パラメータが少ないモデルにする
偽相関対策・データの次元数を減らす→次元を減らす
過学習対策・正則化を使って、ペナルティ・重みの影響を減らそう
次元削減
a,b,c,d,eの5次元パラメータをあったとき、4次元にして検証しやすくする。
特徴選択・・・cを消去する。a,b,d,eの4次元へ
特徴抽出(特徴圧縮)・・・a,bからαをつくる。α,c,d,eの4次元へ
・ PCA(主成分分析)・・・教師なし次元削減(5次元のベクトルをクラスタリングして3次元のベクトルにする)
線形分離できないときに使えない。
・ LDA(線形判別分析)・・・教師あり次元削減
・ KPCA(カーネル主成分分析)・・・線形分離できないときにカーネルの仕組みを使って主成分分析をする。