TensorFlow と scikit-learn 分類器の視覚的比較
TensorFlow によるニューラルネットワークと scikit-learn の各種分類器について
線形分離ができないデータセットについて決定境界を描画して視覚的に比較してみました。
scikit-learn については代表的な分類器を、TensorFlow については基本的な MLP を活性化関数を変えて試しています。
データセットは以前にも使った sklearn.datasets.make_moons で、データポイント数は 500 ノイズは 0.1 です。
プロットすると以下のような図になります :
scikit-learn の分類器
scikit-learn の代表的な分類器をデフォルト・パラメータで順繰りに試してみました :
Gaussian NB, K-近傍法, 決定木, Random Forest, 線形 SVM, SVM, Gaussian Process, AdaBoost
K-近傍法, SVM, Gaussian Process が視覚的にきれいに分類できています。
決定木, Random Forest, AdaBoost は似た傾向の分類になっています。
1) Gaussian NB (Naive Bayes)
2) K-近傍法
3) 決定木
4) Random Forest
5) 線形 SVM
6) SVM
7) Gaussian Process
8) AdaBoost
TensorFlow MLP による分類
TensorFlow についてはユニット数 [512, 128] の 2 層 MLP で試しました。
活性化関数は ReLU, Sigmoid, tanh を使用、明らかに ReLU が優れています。
1) ReLU
2) Sigmoid
3) tanh
以上