見出し画像

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

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

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

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

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

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

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

10の回帰分析手法はこちらです。

1. 最小二乗法による重回帰 (Ordinary Linear Regression, OLR もしくはMultiple Linear Regression, MLR)

2. 部分的最小二乗法 (Partial Least Squares, PLS) http://univprof.com/archives/16-02-25-2888514.html

3. リッジ回帰 (Ridge Regression, RR)

4. Least Absolute Shrinkage and Selection Operator (LASSO) http://univprof.com/archives/16-06-04-3692121.html

5. Elastic Net (EN)

6. 線形サポートベクター回帰 (Linear Support Vector Regression, LSVR)

7. 非線形サポートベクター回帰 (Non-Linear Support Vector Regression, NLSVR) http://univprof.com/archives/16-05-01-2850729.html

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

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

10. Gaussian Process (GP) http://univprof.com/archives/16-06-24-4207217.html

このように代表的な回帰分析手法が揃っております。一通りのデータ分析・解析ができるってことです。

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

■PLSの成分数

■RRにおけるL2正則化項の重み

■LASSOにおけるL1正則化項の重み

■ENにおけるL1正則化項の重み・L2正則化項の重み

■LSVRにおけるC・ε

■NLSVRにおけるC・ε・γ

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

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

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

1.のOLS・MLRから6.のLSVRまでの6つの手法は線形の回帰分析手法ですので、それぞれの標準回帰係数の値も出力されます。6つを並べて各変数の係数を比べることができます。

最後は、ダブルクロスバリデーション http://univprof.com/archives/16-06-12-3889388.html により各手法の予測性能を評価します。つまり、至れり尽くせりなプログラムになっております。

ダブルクロスバリデーションにはサンプル数が多いと少し時間がかかるため、ダブルクロスバリデーションを省略することもできます。目的変数の実測値と予測値とのプロットは数が多くなるため、それらを表示するかどうかも選択できます。

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

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

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

実行結果

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

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

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

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

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

■StatisticsAll.csv ・・・ それぞれの回帰分析手法におけるモデル構築用データのr^2・RMSE、クロスバリデーション後のr^2cv・RMSEcv、予測用データ1のr^2pred・RMSEpredの値

■StandardRegressionCoefficients.csv ・・・ 線形回帰分析手法(OLS, PLS, RR, LASSO, NE, LSVR)における標準回帰係数

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

■StatisticsDcvAll.csv ・・・ それぞれの回帰分析手法におけるモデル構築用データのダブルクロスバリデーション後のr^2dcv・RMSEdcvの値 (省略可能)

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

決定木によって得られたルールを見るためには、DTResult.dotというファイルをGraphvizというソフトウェア(アプリ)で開く必要があります。Graphvizをインストールされていない方は、こちらからダウンロードしてインストールしてください。

http://www.graphviz.org/Download..php

この他、ここには載せませんが、CalculatedY.csv・PredictedYcv.csv・PredictedY1.csv・PredictedYdcv.csvのそれぞれに対応するすべての回帰分析における目的変数の実測値と予測値とのプロット (4×10=40) も出力されます (省略可能)。

プログラム公開

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

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

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

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

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

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

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

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

ここから先は

412字

¥ 9,800

この記事が気に入ったらサポートをしてみませんか?