GBDT
 ランダムF
 決定木
 分類木
 回帰木
 パーセプトロン
 単純ベイズ
 ロジスティック
 k平均法
 k近傍法

 NN機能・要件
 NN構成・方式
 構成・方式など
 タスク
 導入
 Sample

 用語
勾配ブースティング決定木 (GBDT、Gradient Boosting Decision Tree)
 ・勾配降下法アンサンブル学習のブースティング決定木 に適用
弱学習器である決定木を勾配ブースティングによりアンサンブル学習
 ・メリットなど
汎用性が高い。(とりあえず使える。)
比較的精度が高い。
欠損値 を扱える。 代表例、LightGBM
不要な特徴量を追加しても精度が落ちにくい。
 ・手順
目的変数 の平均を求め、初期予測値とする。
誤差の計算、勾配降下法で誤差を小さくする。(精度の誤差を最適化する。)
決定木を構築
アンサンブル学習を用いて新たな予測値を算出
造った決定木をそれ以前の予測結果とアンサンブルして誤差を小さくする。
再び誤差を計算、2~4番目を繰り返す。
最初の平均 に 誤差*学習率 が追加されていく。
最終的な予測値を出力
 ・特徴
パラメータに影響されやすい。
標準化などのスケール変換は不要
外れ値などの影響を受けやすい。
決定木の深さは過学習抑制のため 5 以下が多い。
 ・学習率を乗算する
アンサンブル回数が増える。
過学習が起こりづらい。

 ランダムフォレスト
 ・決定木を 弱学習器 とした、バギング による アンサンブル学習 の手法
 ・複数の決定木を使用して、分類または回帰をする。
 ・比較的シンプルで、汎化性能が高く、処理の並列性も高い。

 決定木 (CART(Classification and Regression Tree)、Decision Tree)
 ・木構造の非線形モデルで、可読性が高い。
if文が何重にもネスト したもの
 ・データから決定木を作る機械学習の手法のことを決定木学習(決定木)
 ・分類木成長の仕方は二つ(Level-wise tree growth、Leaf-wise tree growth)
Level-wise : 全ての葉ノードで、根ノードからの深さが同じ
Leaf-wise : 必要なノードからのみ、次のノード(子ノード)を生成
Level-wiseよりも計算量が少ないが複雑
制御次第で過学習が起こりやすい。
分類可能な変数で、分類を目的にして、決定木のアルゴリズムを使用する。
 ・分類木 (classification tree)
区分の分類を行いたい場合
分類可能な変数で、分類を目的にして、決定木のアルゴリズムを使用する。
性別など
上から1つの変数とその閾値によってデータを2つに分け、
さらに枝先で同様に別基準でデータを分けて分類する。
 ・回帰木 (regression tree)
数値を予想したい場合
過去、及び、現在のデータから、未来の数値を予想する。
株価の変動など

 パーセプトロン(perceptron)アルゴリズム
 ・パーセプトロンは、ニューラルネットワークの起源(ニューラルネットワークの一種)
入力層、中間層、出力層からなる。 参考
ニューラルネットワークはパラメータを自動的に設定(パーセプトロンは手動)
 ・単純(単層)パーセプトロン(Simple perceptron) (入力層と出力層のみの2層からなる)
線形分離可能な問題を有限回の反復で解ける。 参考
線形非分離な問題は解けない。
活性化関数に「ステップ関数」を使用したモデルとなる。
 ・多層パーセプトロン (Multi-Layer perceptron、MLP)
複数の層で構造されているニューラルネットワーク
入力層と出力層の他に隠れ層がある。
多層にすれば線型非分離な問題を解ける。(当時、分かっていた。)
線形非分離な問題は解けなかった。(当時、機械学習で出来なかった。)
ディープラーニングは多層パーセプトロンの学習を実用化
入力層以外、各層の各ノードは出力するために活性関数を用いる。
活性化関数はノードの入力信号の総和を出力に変える関数
活性化関数に「シグモイド関数など」を使用したモデルとなる。
 ・パーセプトロンは、複数の信号を受け取り、一つの信号を出力する。
信号に 重み(結合強度)を乗算し足し合わせた値をニューロンへ入力
 ・2入力構成の動作原理
ノード(ニューロン)の入出力信号
2つの入力信号「x1、x2」
出力信号「y」
パラメータ
x1とx2の重み「w1、w2」
閾値「θ」
入力信号は、ノードに送られるとき、それぞれに固有の重みが乗算される。
x1 * w1、x2 * w2
ノードでは送られた信号の総和を計算する。
総和 = x1 * w1 + x2 * w2
ノードから信号を出すことを出力「1」、出さないことを出力「0」とする。
活性化関数に「ステップ関数」を使用
総和が閾値を超えた場合、のみ「1」を出力する。(ニューロンが発火する。)
y=0  ((x1 * w1 + x2 * w2)<=θ)
y=1  ((x1 * w1 + x2 * w2)>θ)
 ・論理回路、AND・OR・NAND
NumPyを使用して実装できる。
 ・排他的論理和(XOR)
非線形領域(曲線で分けられる)は層を重ねて表現できる。
既存ゲート(AND・OR・NAND)を組み合わせて表現(2層パーセプトロン)
 ・学習する
適切なパラメータ(w1、w2、b(バイアス(-θ))を決める作業を行う。

 単純ベイズ分類器 (ナイーブベイズ)
 ・特徴間に強い独立性を仮定したうえで、ベイズの定理を使って分類
最もその分類が発生する確率が高いものを予測とする手法。
 ・主に文章に利用され、文章の単語をベースにした分類に利用
 ・メールのスパム判定、テキストの肯定・否定、Web上の記事に対するタグ付けなど

 ロジスティック回帰分析
 ・線形回帰の出力を関数に入力することで、2分類問題に対応する。
 ・ロジスティック曲線を使用して片方になる確率を0から1の値で算出
 ・参考

 k平均法 (k-means)
 ・与えられたデータを分類する手法
 ・教師無し学習の手法
 ・クラスタを事前に作成する。
 ・クラスタの個数を決めておき、訓練データからクラスタ数分、ランダムなデータを選び、
 ・一旦、代表点と定める。他のデータは代表点との距離が1番近いクラスタに属させる。
 ・クラスタにデータが追加された時、その中心点を新しいクラスタの代表点とする。
 ・これを、代表点が動かなくなるまで繰り返すことで、クラスタが作られる。
 ・未知のデータに対して、同じく、各代表点との距離が1番近いクラスタに分類する。

 k近傍法 (KNN)
 ・データに含まれる情報を、類似性によって分類する。
 ・自分から最も近い複数のデータのクラスの多数決で分類する手法。
 ・指定した説明変数からデータ間の距離を計算し、
 ・分類するデータに近いk個(入力値)の分類内容から最も多い分類を採用する。
 ・単純すぎて怠惰学習という異名がある。