konchangakita

KPSを一番楽しんでいたブログ 会社の看板を背負いません 転載はご自由にどうぞ

機械学習の分類モデルを比較してみる(決定木、ランダムフォレスト、ロジスティックス回帰、SVM、k近傍法)その1

何個か機械学習モデルを調べて(お勉強)してみましたら
いろんな種類の機械学習に出会います
それぞれのなんとなくまとめてみます
Python実装編


有名どころの分類モデル
決定木、ランダムフォレスト、ロジスティックス回帰、SVM、k近傍法
python実装して比べてみるってのをやってみようかと

実践のことを考えるとどれをどういう時に使ったらわからんなぁ、となるので
とりあえず、それぞれサクッと作ってみて全部で比較してみやがります

まずは1行でそれぞれを紹介

【決定木】

Yes/NOの分岐条件を大量につなげて答えにたどり着く手法

f:id:konchangakita:20200116205310p:plain
決定木の図

【ランダムフォレスト】

決定木のたくさん集めた手法

f:id:konchangakita:20200206152541p:plain
ランダムフォレストの図

【ロジスティックス回帰】

回帰と名前はついてるけど、どんな説明変数にも0〜1の結果を返すので、確率を分類にも使っちゃう手法

f:id:konchangakita:20200207000157p:plain:w400
ロジスティック回帰の図

pythonで書くとこんな感じ、ロジスティック回帰(シグモイド関数)の式は一行

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10, 10, 0.1) #入力x を適当(0.1刻みで -10〜+10)に設定
y = 1 / (1+np.exp(-x)) # ロジスティック回帰(シグモイド関数)の式

plt.xlabel("X label")
plt.ylabel('Y label')
plt.plot(x, y)
plt.show()
SVMサポートベクターマシン)】

クラスを分ける境界線を引いて、分類しちゃう手法

f:id:konchangakita:20200207234434p:plain
SVMの図

【k近傍法(K Nearest Neighbor)】

分類したいデータの近傍にあるデータ群の投票によって分類しちゃう方法

f:id:konchangakita:20200210095939p:plain
k近傍法の図(k=5)

上記の5つが有名どころと、勝手に思っています
というわけで、次回Pythonで実装して比較してみたいと思います


Python実装編につづく