こんにちは!大学教員ブロガーのねこしです。
データ分析・解析に関して、いろいろな質問をいただきます。その中でもたくさんいただく質問の一つは、
回帰分析とかクラス分類とかするときに、与えられたデータセットに対して適した手法をどのように選べばよいですか?
というものです。回帰分析においてPLSがよいのか、LASSOがよいのか、SVRがよいのか、・・・、クラス分類においてLDAがよいのか、決定木がよいのか、SVMがよいのか、・・・ということです。
もちろん、データセットごとに適した手法はあると思います。望ましいのは、データが与えられたら、適した手法のみ使うことかもしれません。しかし、どんなにデータ分析・解析の熟練者でも、与えられたデータセットに適した手法を毎回100%の確率で選ぶのは不可能です。
なので、とりあえず全部やってみましょう!
回帰分析だったらPLSもLASSOもSVRも、クラス分類だったらLDAも決定木もSVMも、知っている手法を全部やってみるんです。
面倒?そんなことはありません。ちゃんとプログラミングをすれば、手法の数だけ時間がかかるだけで人の手間はほとんど変わりませんん。面倒なことはパソコンに任せるわけです。このあたりについてはこちらもご参照ください。
http://univprof.com/archives/16-11-18-8441710.html
具体的な方法論はこちら。
https://note.mu/univprof/n/n4175165e4205
ただ、このように数多くの計算をすると、すべての計算が終わった後に、結果を評価することがとても重要となります。基本的には ”よい” 結果を出した手法を選べばよいのですが、何をもって ”よい” とするかが大切なわけです。これはデータ分析・解析の目的によって変わります。
たとえば、予測精度の高い結果が ”よい” ことを目指しているのであれば、たとえば (モデル構築用データセットではない) モデル検証用データセットの推定性能とか、ダブルクロスバリデーションの結果などを利用するとよいです。
他にも、解釈可能なモデルが”よい”ということであれば、他にも判断指標があります。
このように、すべて計算してから、それらの結果を評価して、適した結果を選ぶわけです。こうすることで、データセットが変わっても、同じ方法論・同じプログラムで、データ分析・解析することができます。
たくさんの回帰分析を一気に行うプログラム公開中!
上のように全部の回帰分析を一気に実行するプログラムはこちらにあります。noteでもSPIKEでもAnyPayでも言語が同じであれば同じものです。
MATLAB言語(note): https://note.mu/notes/n4f7fd7cef774
MATLAB言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/rnekMFjwpY
R言語(note): https://note.mu/notes/n58399e0a9471
R言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/6acMz8vR7t
Python言語(note): https://note.mu/univprof/n/n7d9eb3ce2c74Python言語(AnyPay):
https://anypay.jp/shops/GpeTLMrcxv/FY7MK1JlXg
たくさんのニクラス分類を一気に行い、ダブルクロスバリデーションで評価するプログラム公開中!
こちらは二クラス分類です。全部を一気に行いダブルクロスバリデーションでモデルの評価を実行するプログラムです。noteでもSPIKEでもAnyPayでも言語が同じであれば同じものです。
MATLAB言語(note): https://note.mu/univprof/n/nb146f98d9708
MATLAB言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/1aq4DzwYZW
R言語(note): https://note.mu/univprof/n/nc81d5e54b395
R言語(AnyPay):
https://anypay.jp/shops/GpeTLMrcxv/LipDyBuxz2
Python言語(note): https://note.mu/univprof/n/n38855bb9bfa8Python言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/hQMWaxelvd
たくさんの多クラス分類を一気に行い、ダブルクロスバリデーションで評価するプログラム公開中!
こちらは多クラス分類です。全部を一気に行いダブルクロスバリデーションでモデルの評価を実行するプログラムです。noteでもSPIKEでもAnyPayでも言語が同じであれば同じものです。
MATLAB言語(note): https://note.mu/univprof/n/n5905c101b808
MATLAB言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/EXhrvH1NE3
R言語(note): https://note.mu/univprof/n/nf28c6196b1b7
R言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/aNmAFe4NaO
Python言語(note): https://note.mu/univprof/n/n6eb78bc394bbPython言語(AnyPay): https://anypay.jp/shops/GpeTLMrcxv/ptEjp1NL6j
データ解析の質問 募集中!
こちらへお願いします!
ご案内。
オススメ記事セレクション。
- 20人の学生に対する研究テーマの決め方
- 学会・会議・講演会・勉強会における3つの良い質問と2つの悪い質問
- 大学教員の5つのメリット (とデメリット?)
- 現役データサイエンティストへの『人工知能って怖いの?』に対する回答
- 人工知能との未来における人の役割~現役のデータサイエンティストのメッセージ~
- 集中する時間を確保するために大学教授が行っている8つのこと
twitterでも発信中。
この記事に興味を持っていただけましたら、ぜひフォローをお願いします!
Follow @univprofblog1Tweets by univprofblog1
無料メルマガでブログにない情報を配信中。
データ解析・分析に興味がありましたらぜひ登録をお願いします!
無料メルマガの登録はこちら
事前に適した手法を選ぶという余計な心配をしなくてよくなります。