[実行用プログラム公開] 12の判別分析(二クラス分類)手法を一気に実行して結果を比較する!ダブルクロスバリデーションによる評価付き (MATLAB言語)

[New] 実業家として有名な堀江貴文さん(ホリエモン)のメルマガ[Vol.359]における副業紹介において、このプログラム・コード販売が、なんと 1番 に紹介され評価していただきました!

こんにちは!大学教員ブロガーのねこしです。http://univprof.com/

仕事や研究において、判別分析(二クラス分類)をしたい方もいらっしゃると思います。でも、たくさん手法もあってどれを使えばよいか、迷いませんか?こっちのクラス分類手法のがよいのかな・・・、と考える人も多いはずです。

どんなときはどうすればよいのでしょうか?答えは、下の記事でも書かれているように、すべての二クラス分類手法を実施して、結果を比較すればいいんです

http://univprof.com/archives/16-11-18-8441806.html

それはわかったけど、どうやって実行すればよいの? って人のために、11の二クラス分類手法をすべて実施して、結果を比較するプログラムを作りました!データを準備して実行すれば、すべて自動的に行われます!

12の二クラス分類手法はこちらです。

1. 線形判別分析(Linear Discriminant Analysis, LDA) http://univprof.com/archives/16-05-30-3588648.html

2. 線形サポートベクターマシン (Linear Support Vector Machine, LSVM)

3. 非線形サポートベクターマシン (Non-Linear Support Vector Machine, NLSVM) http://univprof.com/archives/16-02-26-2888783.html

4. k近傍法によるクラス分類 (k-Nearest Neighbor Classification, kNNC)

5. 単純ベイズ分類器 (Naïve Bayes, NB) http://univprof.com/archives/16-07-10-4585774.html

6. 決定木 (Decision Tree, DT) http://univprof.com/archives/16-05-25-3464187.html

7. ランダムフォレスト(Random Forests, RF) http://univprof.com/archives/16-04-06-2889192.html

8. 決定木に基づくバギング(サンプルのバギング) (Bagging[DT])

9. 線形判別分析に基づくバギング(変数のバギング) (Subspace[LDA])

10. 決定木に基づくAdaptive Boosting (AdaBoost[DT]) http://univprof.com/archives/16-07-01-4380227.html

11. 線形判別分析に基づくAdaptive Boosting (AdaBoost[LDA]) http://univprof.com/archives/16-07-01-4380227.html

12. 二次判別分析 (Quadratic Discriminant Analysis, QDA)

このように代表的な二クラス分類手法が揃っております。一通りのデータ分析・解析ができるってことです。ちなみに今回はクラス分類の中でも”二”クラス分類ですので、サンプルのカテゴリは”1”もしくは”-1”になります。つまり目的変数の値は”1”もしくは”-1”でなければならないということです。

もちろん、クロスバリデーションにより、

■LSVMにおけるC

■NLSVMにおけるC・γ

■kNNCにおけるk

■DTにおける決定木の深さ

■RFにおける各決定木で使う説明変数の割合

を最適化しており、その結果も出力されます (RFにおいてはアルゴリズムの特性上、OOB (Out-Of-Bag) での最適化結果になります)。

1.のLDAと2.のLSVMは線形のクラス分類手法ですので、それぞれの標準化後の変数の重みの値も出力されます。最後は、ダブルクロスバリデーション http://univprof.com/archives/16-06-12-3889388.html により各手法の予測性能を評価します。つまり、至れり尽くせりなプログラムになっております。

ダブルクロスバリデーションにはサンプル数が多いと少し時間がかかるため、ダブルクロスバリデーションを省略することもできます。

データ形式・必要なソフトウェア

以下の記事に示す形式のデータ(data.csv, data_prediction1.csv, data_prediction2.csv)さえ準備すれば、MATLAB言語で12のニクラス分類手法をすべて実施して結果を比較することが可能です。

https://note.mu/univprof/n/n694487325cb1

MATLAB言語のために必要なソフトウェアは以下の記事をご覧ください。

https://note.mu/univprof/n/nb07629b23252

実行結果

実行したあとに保存されるcsvファイルとその内容をまとめます。

■CalculatedY.csv ・・・ それぞれのクラス分類手法におけるモデル構築用データの目的変数の計算値

■PredictedYcv.csv ・・・ それぞれのクラス分類手法におけるモデル構築用データの目的変数のクロスバリデーション予測値

■PredictedY1.csv ・・・ それぞれのクラス分類手法における予測用データ1の目的変数の予測値

■PredictedY2.csv ・・・ それぞれのクラス分類手法における予測用データ2の目的変数の予測値

■StatisticsAll.csv ・・・ それぞれのクラス分類手法におけるモデル構築用データ・クロスバリデーション・予測用データ1のそれぞれTrue Positive・False Positive・False Negative・True Negative・正解率

■StandardWeights.csv ・・・ 線形のクラス分析手法(LDA・LSVM)における変数を標準化したあとの重み

■PredictedYdcv.csv ・・・ それぞれのクラス分類手法におけるモデル構築用データの目的変数のダブルクロスバリデーション予測値 http://univprof.com/archives/16-06-12-3889388.html (省略可能)

■StatisticsDcvAll.csv ・・・ それぞれのクラス分類手法におけるモデル構築用データのダブルクロスバリデーション後のTrue Positive・False Positive・False Negative・True Negative・正解率 (省略可能)

実行結果を下に示します。


この他、ここには載せませんが、CalculatedY.csv・PredictedYcv.csv・PredictedY1.csv・PredictedYdcv.csvのそれぞれに対応するすべての二クラス分類における目的変数の実測値と予測値との混同行列 (4×12=48) も出力されます。

プログラム公開

ここまでお読みいただきありがとうございます。

MATLAB言語のプログラムは有料コンテンツとします。ただ、こちらのプログラムのように代表的な12の二クラス分類手法をすべて実施して結果を比較できるプログラムは他にありませんし、2,3の二クラス分類手法だけでもそれが可能なソフトウェアを購入すると、数万円や数十万円かかることがあります。さらに、こちらのプログラムからスタートしてさらにプログラミングを進めたいと考えている方も活用可能です。

人気が出てきたら値段を上げてみるかもしれません。しかし、それにしても かなりお得なプログラムです。12もの二クラス分類のプログラムを、自分で書くことなくすぐに使えるようになるんです。いろいろなデータへの応用もきき、十分、元がとれます。

こちらからプログラムのzipファイル自体はダウンロードできます。

http://univprofblog.html.xdomain.jp/code/bclass_analysis_all_e_matlab_pass.zip

購入していただくと解凍のためのパスワードがありますのでそちらをご利用ください。

またこちらのzipファイルに必要なスクリプトと関数があります。パスワードはかけていません。購入後に使い方の説明があります。

http://univprofblog.html.xdomain.jp/code/MATLAB_scripts_functions.zip

この続きをみるには

この続き:438文字

[実行用プログラム公開] 12の判別分析(二クラス分類)手法を一気に実行して結果を比較する!ダブルクロスバリデーションによる評価付き (MATLAB言語)

univprof

9,800円

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

2

univprof

データ解析・統計解析

データ解析・統計解析に関する記事です。[New] 実業家としても有名な堀江貴文さん(ホリエモン)のメルマガ[Vol.359]における副業紹介において、このプログラム・コード販売・note記事が、なんと 1番 に紹介され評価していただきました!
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。