【Python】機械学習の性能を比較してみた

 

この記事では、どの機械学習アルゴリズムが良いのかデータを使って検証してみました。

 

「機械学習って色々あってどれを使えば良いのかイマイチ分からない」

「そもそもどんなアルゴリズムがあるのか知りたい」

 

そんな方の参考になればと思います。

 

 

機械学習アルゴリズムの種類

 

今回、比較してみるアルゴリズムは4つです。どれもscikit-learnに付属しているアルゴリズムです。

 

  • K近傍法
  • ランダムフォレスト
  • LinearSVC(サポートベクターマシン)
  • SVC(サポートベクターマシン)

 

使用するデータ

 

毎回お馴染みのアヤメデータセットを使います。

 

 

中身を確認してみます。

 

 

ラベルは3種類で、使用する特徴量は4種類、データ数は150であることが分かりました。

 

 

評価するためにデータを分類しておきます。

 

各アルゴリズムの実行結果

 

K近傍法

 

 

せっかくなので、Kの数を1~5の範囲で変更してみました。

 

 

なんと、Kの数に関係なく同じ結果になりました。

 

ランダムフォレスト

 

 

 

こちらも同じ結果に。

 

LinearSVC

 

 

 

少し精度が落ちました。

 

SVC

 

 

 

こちらは最初の2つと同じ結果でした。

 

まとめ

 

結果的には、K近傍法 = ランダムフォレスト = SVC > Linear SVCでした。

 

結構違いが出るのかと思ったのですが、あまり変わらない結果となってしまいました。

 

データ数が少なく、分類しやすいからかもしれません。

 

以上です。お疲れ様でした。

ABOUTこの記事をかいた人

のっくん

理系院卒で大企業の研究所に就職。 趣味はプログラミング、レアジョブ英会話、筋トレ、旅行。 Twitter:@yamagablog