質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

解決済

1回答

1463閲覧

機械学習の回帰でどの手法を取るべきかわからない

shigahiro

総合スコア3

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2020/05/01 23:25

機械学習の回帰の手法の特徴がわからない

カラムが90、列が15000ほどあるテーブルデータ(分散が0や欠損値のみの行を消した状態)を使って、
機械学習の重回帰分析をしようとしています。
その際に、ランダムフォレストやSVR、Elastic Netなどがあることが分かったのですが、
どの手法が一番適しているかわかりません。
そのため重回帰分析に使われるそれぞれの手法の一般的なメリット、デメリットを教えていただきたいです。
それともそれぞれの手法のメリットなどはデータの特徴によってさまざまで、把握が難しいため、
すべての手法を試すべきなのでしょうか?
初歩的な質問かもしれませんが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

正直なところ、世にある方法論について多少なりとも知識がない状態でモデル化をしようというするのはお勧めできません。どの方法でも構わないのでモデル化を試みながら、ある程度マスターしましょう、その上で性能面の限界を突破するためにはどの方法がいいのか、という意識で他の方法論を探索しないとまともな結果が得られないような気がします。

また、質問の記載によると説明変数が90と結構多いので、モデル化の戦略を立てておく必要もあると思います。もちろん、総当たり(考えられるすべての方法をパラメータチューニングしながら試す)という戦略を否定しませんが、その前に事前分析(あるいはドメイン知識)から、あたりをつけておいたほうが納得のいくものに仕上がるはずです。

ちなみに私ならどうするのかということでいえば、

1.被説明変数と説明変数の間の規則性を分析し、コアとなる説明変数を特定する。
2.項番1で特定した説明変数と被説明変数の規則性からベースラインとなるモデルを構築する。
(線形の関係がみられるのであれば最小二乗法の系統、非線形なら決定木の系統を使う)
3.ベースラインの性能を分析し、改良の方向性を決定する。
(方向性として、モデルの選択とパラメータチューニング、説明変数のエンジニアリングが想定される)
4.モデル選択とパラメータチューニングの場合は、ベースラインのモデルと同系統のものを主軸に総当たりで試す。(パラメータチューニング含む)さらに性能向上を目指すのであれば、未使用の被説明変数を加えていく。
5.被説明変数のエンジニアリングの場合、未使用の特徴量を加えていくことと次元削減や連続値の離散化(あるいはその逆)などを手掛けながら性能向上を図る。

という感じで進めると思います。

投稿2020/05/02 17:24

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shigahiro

2020/05/03 01:26

わかりやすい説明ありがとうございます。 自分なりにもう少し方法論について、ゆっくりでもいいので調べて進めていきたいと思います。 回答していただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問