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

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

新規登録して質問してみよう
ただいま回答率
85.47%
機械学習

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

Python

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

Q&A

解決済

1回答

207閲覧

R2,MAE,RMSE を比較し精度評価を行うことができる条件について

gardsb

総合スコア12

機械学習

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

Python

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

0グッド

0クリップ

投稿2024/03/09 13:53

実現したいこと

R2,MAE,RMSEを使用し、モデル精度を比較するための条件を正しく理解する。

発生している問題・分からないこと

以下のWebページの記載内容について正しく理解したいです。
https://keita-blog.com/data_science/regression-caution

「これらのモデル精度指標で比較できるのは、全く同じデータセットで作ったモデル同士のみ、ということです。つまり、ネストしたモデル間同士であれば決定係数が大きい方のモデルがデータに対して当てはまりが良いモデルであると単純に言うことができます。
一方で、全く異なるデータセットを使っている、あるいはデータセットAがあるとして、データセットAのすべてのデータを使ってつくったモデルとデータセットAの一部だけを使ってつくったモデルを上記の精度指標で対等に比較することは出来ません。」という記載があると思います。

ここで、異常値を削除する前処理を行う処理を実装する場合を考えます。
上記の内容によればデータセットAのすべてを使用し学習した場合と、データセットのAの異常値を含むレコードを削除したデータセットで学習した場合では決定係数やrmseなどの指標を用いて精度を比較することはできないということになると思うのですが、この理解はあっていますでしょうか?

回答される方は、まずこの理解が正しいか誤っているかどうかについての言及。
続いてその理由を述べていただけると幸いです。

---私の理解が正しいと仮定した場合の追加質問---
異常値を削除したことに意味があるのかどうか評価指標を見て判断することもあると思うのですが、
このような場合はどのような評価指標を見ればよいのでしょうか?

該当のソースコード

なし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

調査をいたしましたが、解決しませんでした。

補足

特になし

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

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

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

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

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

fana

2024/03/11 03:26 編集

> R2,MAE,RMSEを使用し、モデル精度を比較する 正直この最初の一文から意味が分からないくらいのド素人なのですが, 比較したい「モデル精度」っていうのは一体何なのですか…? (…と,あなたに質問したいわけじゃなくて) > 異常値を削除したことに意味があるのかどうか を知りたいならその「意味」が発生する(ハズの)世界で「精度」を 見る/比較する ということを行えば良いのではないのでしょうか? とか思うのですが,どうなんでしょう? そもそもそのモデルとかいうのは何のために作ったの? っていう. その目的相当の使い方 を模した評価 を行えば良いのでは? よくわからんけど,そのモデルを作る際には用いなかった全く別のデータ群を持ってきて,それらをどれだけモデルがうまく表せているか? みたいなのを見れば良いのでは. (:その評価の際には 「データセットA」 とかいうのは全く使わない=無関係 な気がするのですが.素人の感想でしかないですが)
fana

2024/03/11 03:43 編集

なんというか, 「ここに2つのモデルがあります.どっちが(ある観点において)より良いでしょうか? 評価してください」 とか言われた場合を想像すると,それらモデルの 出所/どうやって作られたか 等は評価に際して知る必要を感じないのですが. ……みたいな. MAE とか RMSE とかいうのは モデルとデータとの差 なんですよね? これらを見るときに用いるべきデータとは何か? それはあなたがやりたいこと次第なのでしょうけども, それは果たして「データセットA(や,そこから異常値を除いたもの)」なのだろうか? それとも別の何かなのか? →後者なのであれば,そのときには全く同じデータを用いて評価値を比較すれば良いんじゃないの? みたく思う. 前者だとしたら,その評価値の意味とは,個々の「モデル当てはめ結果の残差」でしかなく,比較することにどれだけの意味や正当性を見出すのか? については,あなた次第かな,とか. 極端な話,「データ点を2個だけ残してそこに直線を当てはめたらなんと誤差が0になった! すごい! これが最も優れている!」とか言うか? っていうと,多くの場合は違うと思うし. しかしながら「経験的に,この手の作業をした際の誤差量がある程度でかい場合,何かおかしいことが起こっている」みたいな判断というか見識みたいなのは実際上はあり得る.それを拠り所として何かを主張するべきか?というとまた別の話になるだろうけども,やったことの違いの具合 vs 結果の違いの具合 を見て何かを考えることは不可能ではないだろうと.
fana

2024/03/13 02:51

「そうだ」とか「違う」とか「そんな話はしてねぇんだよ,素人が.すっこんでろ」とか何とか反応していただけないものだろうか? 完全無視で何かまた似たような新しい質問を立ててるところを見るに,「素人すぎて,取り合う価値もない」ということなんだろうけども,だとしたらその旨を一言でも述べてもらえれば,他にコレを読んだ人も「このコメントはゴミなのだな,無視でおk」とか判断できるようになるので.
gardsb

2024/03/13 02:57

申し訳ありません。 仰っている内容があまり理解できなかったため、何と返信しようかと考えていたのです。 ただ、他の疑問が出たので先に質問しておこうと思い、質問を行いました。配慮に欠けていました申し訳ありません。
gardsb

2024/03/13 03:01

もう少し簡単に説明していただけると私でも理解できるかもしれません、
fana

2024/03/13 03:08

あなたは 「モデルの精度」を比較したい という話をしている. が, モデルの「何の」精度を比較するという話なのか? というのが曖昧である,と私は述べている. 「そのモデルを使って何か仕事をするときの結果の良さ」であるのか,それとも 「そのモデルが,そのモデルを作った際に用いた観測データ群をどの程度よく表しているのか」なのか, その他なのか? それによって話は異なるのではないのか? と.
fana

2024/03/13 03:21

※再度述べておきますが,私はあからさまに素人なので,あなたから見れば「ちょっとこの人,何の話してるのかわからないですね」ということになるのは 普通にあり得る ことだと思います. その場合,それはあなたが悪いわけじゃないので「意味わかんないコメント付けるのやめてもらっていいですか?」みたいな反応は 正当/妥当 なものであろうと思います.
gardsb

2024/03/13 03:29

ご返信ありがとうございます。 mae、rmseは結果の良さを、 r2は回帰式がとのくらいデータを説明できているかになると考えています。
guest

回答1

0

ベストアンサー

※注意※ これはド素人が質問文内で示されているリンク先を読んだだけの感想文です

(※研究発表とかの場でどう見ても素人じゃない人が「この分野は素人なのですが…」とかいう謎の前置きを入れて質問している光景を目にすることがあったりする気がしますが,そういうのじゃなくて,ちゃんと/本当に 素人なので,その点誤解なきよう)


リンク先のページでは

AICはモデルの予測精度を表す指標です。一方で、決定係数・MAE・MSE・MRSEはモデルの当てはまりの良さを表す指標です。

とか書かれているので,質問文で挙げられている指標(R2,MAE,RMSE)について言えば,件の

これらのモデル精度指標で比較できるのは、全く同じデータセットで作ったモデル同士のみ~

という話における「精度」というのは,「モデルの当てはまりの良さ」という意味合いになるであろうと思います.
で,この言葉をより厳密に(?)省略無く(?)述べるとすれば,
このデータに対する,このモデルの 当てはまりの良さ」となるでしょう.
データとそれに当てはめたモデルとを比較している指標値なわけなので.

さて,全く無関係な データA と データB があったとして…

データAから作ったモデルAの「精度」とは,「データAに対する モデルAの 当てはまりの良さ」であり,
データBから作ったモデルBの「精度」とは,「データBに対する モデルBの 当てはまりの良さ」ですよね.

データAやデータBがそれぞれ一体何のデータなのかは全く謎ですが,とにかくそれぞれに何かモデルを当てはめた,というだけの話.
ここで同じ土台に立ってない両者の「値」だけを並べて見比べる意味とは何なのでしょうか?
「モデルAとデータAとの差 と言うのは モデルBとデータBとの差と比較すると 小さい/大きい ようだね」みたいな謎の話になりそうですが,
その話をして 一体何になりますか? っていうことだと思います.

その比較結果をもって何を 主張/判断/etc しようとしているのか,という文脈において,その比較方法は適切ではない といった話を述べているのでしょう.


なので(?),素人の感想としては「そこに何か意味があるなら比較しても良いんじゃないですか?」という気がします.

例えば,あなたが挙げている異常値削除の話で言えば,
データは上記のAとBのような全くもって異なるものなわけではなくて,「ほとんど同じ/限りなく同じ」と言えるのかもしれません.
「ほとんど同じデータセットで作ったモデル同士」の精度比較です.

「大量のデータの中から数点(?)の異常値を取り除くことによって,当てはまり具合がどのように変わったか」という観点での意味合いにおいて,
ある指標値を見比べるのであれば,別に良い(「そんな比較はできない!」とか全否定されるほどのことではない)ように思います.

投稿2024/03/13 05:54

編集2024/03/13 08:18
fana

総合スコア11663

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

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

fana

2024/03/13 06:08

それはそれとして, 「何のためにわざわざモデルとやらを作ってるのか?」っていうのを考える(想像する)と, 求めるべきは「モデルを作るのに用いたデータに対する当てはまりの良さ」だけではなくて,そのモデルを実際に使って何かするときの具合の良さ(未知のデータをも良く説明できること)というのがあると思うので, > 異常値を削除したことに意味があるのかどうか という話をするのであれば,後者の側(「汎化性能」とか言うのかな?)も考えるべきなんじゃないのだろうか? とか思ったりする.
gardsb

2024/03/13 07:38

なるほど、リンク先のページで書いていたことは全く関係性のないデータを比較はできないということで、 今回のような私が例に挙げたケースについて述べていたわけではないのですね。
fana

2024/03/13 07:50

2つの物を比較しようとするなら,普通は 同じ土俵の上で 比較するよね,というだけの話かと読みました. その意味では「同じデータを用いて求めたわけではない指標値を比較する」というのは 間違い とも言えると思います. しかし,今回のあなたの例(異常値除去)について言えば,【「当てはまりの良さ」というのをどうにかして比較したい】のであれば,これはそもそも同じ土俵に立つことはできない話なわけですし,「同じ土俵の上での比較をしないと意味が無い話」とはそもそものコンテキストからして異なる話であろう,と.
fana

2024/03/13 07:58 編集

今現在,回帰分析をなぜ行っておられるのかわかりませんが,個人的な趣味でやっているとかでなければ,おそらくは「これこれこういう比較をしてみたのですが…」とか話すべき相手が存在するのではないかと想像します. (例えば学生なのであれば教員とか先輩とか,仕事でやっているのならば上司とか同僚とか) そのような相手に相談してみるのが良いのではないでしょうか. 必要なのは,まず,あなた自身が,やろうとしていることの意義や意味に照らし合わせて,比較の妥当性を考える(妥当性に関する意見を持つ)ことだと思います. で,その 意見/主張 が「実際に」通るかどうかをやってみる(上記の相談に相当)ことなんじゃないかな,とか.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問