鰤切手

旧初めての理系編入。編入から無職まであなたのお供をします。

【スポンサーリンク】

教師あり学習の分類アルゴリズムについて学ぶ E資格対策

今日は教師あり学習について

 

 

 

教師あり学習とは

原因と結果のペアのデータから規則を学び、新しいデータに対して予測を行う手法です。おおきく分けると以下の2つがあります。

 

分類:複数クラスに分類したいとき
例:退職予測(原因には欠勤日数、給与、役職などさまざまなものが考えられます。)

 

回帰:連続値を予測したいとき
例:株価予測(原因には倒産件数、エンゲル係数などさまざまなものが考えられます。)

 

E資格では回帰は出題範囲になっておりません。なので分類の代表的な手法についてお話します。

 

 

最近傍法

 予測したいデータが入ってきたとき、そのデータに最も距離が近いデータのラベルを予測値とする手法です。

 

 

f:id:Tsuquba:20201107151552p:plain

☆がテストデータ、距離が最も近いデータのラベルをテストデータのラベルとする

ソースコード

import mglearn

mglearn.plots.plot_knn_classification(n_neighbors=1)

 

ちなみに最近傍法の発展でK近傍法というものがあります。

近いものk個のデータラベルの中で、一番多いラベルのものを採用する手法です。

k=1のときが最近傍法の手法と言えます。

 

ですがメモリに学習データをすべて保存しないといけないのでメモリを消費してしまい、大量のデータを処理するのには向いておりません。

そこで次に紹介するのはデータを保持するのではなく、データから境界線を導き出し、その境界線に従ってラベル付けをする手法です。

 

 

ロジスティック回帰

回帰とついていますが分類手法の一つ。

出力が0~1となるため、 確率として出せるのが特徴。

 

例えば退職予測するモデルを作ったとします。このときに

 

モデルA:50%の確率で退職する

モデルB:90%の確率で退職する

 

として実際に退職した場合、モデルAよりモデルBのほうがうまくチューニングできていると判断できます。つまり出力がある閾値以上(例90%以上)であれば退職すると出力するモデルを作れば分類機を作れます。

 

 

SVM

境界点に一番近い点からの距離(マージン)が最大になるところに境界線を引く手法。じゃあ遠い彼方へ境界線置けばいいじゃん、というわけではなくきちんと境界線によってラベルが分けられるよう境界を設定します。

f:id:Tsuquba:20201108205635p:plain

引用:

sklearn.svm.SVC — scikit-learn 0.23.2 documentation

 

 上図の二重丸で囲われた境界線に近いデータをサポートベクトルと呼びます。

 

カーネルトリック

上図のように直線に分類できればいいのですが、データの分布上できないものも多いです。

 

f:id:Tsuquba:20201109215640p:plain

引用:

(a) synthetic two-moon dataset with + and. representing two classes;... | Download Scientific Diagram

こんなのとか。

 

そこでSVMはデータを高次元(例えば2次元から6次元)に関数でデータを変換し、変換先で境界線を引けます。

 

 

f:id:Tsuquba:20201109215816p:plain

変換のイメージ



引用:

サポートベクターマシン - Wikipedia

 

通常l次元が増えるとパラメータが増えるので計算量が増えます。

ですがSVMですと、計算量がもとの次元数(今回なら二次元)の計算でできちゃいます。

この中間層(6次元)の内積計算が入力層(2次元)の内積で計算できることをカーネルトリックといいます。

 カーネルトリックはE資格によく出てくるそうです。

 

 

今日はここまで。今度は教師なし学習を取り上げたいと思います。