Zoom 着信音 Pc,
古河電工 最終面接 落ちる,
みきママ 旦那 入院理由,
Hotel Route Inn Hakata Ekiminami,
ゴールド ジュエリー 中古,
白線流し 19の春 動画,
気候変動 原因 簡単,
ヘッドライト 黄ばみ 業者,
伊豆 イタリアン 宿,
犬 予防接種後 下痢,
オードリーヘップバーン 画像 壁紙 Pc,
アルインコ エアロバイク 改造,
Babel 翻訳機 口コミ,
Yahoo News Finance,
今何時ですか ユリゴコロ 意味,
アクアミュー 旭化成 口コミ,
空から降る一億の星 日本 あらすじ,
フレンズ エピソード リスト,
あそびあそばせ 海外の反応 8話,
アトランタオリンピック サッカー 予選,
らしんばん 大阪 歌い手,
三菱 自動車 工業 名古屋 製作所,
UNIQLO Marimekko Baby,
クラーク高校 百花 繚乱,
スフィア 全曲ライブ Bd,
虫除け リング 猫,
Php 勤怠管理 オープンソース,
フジ テレビ 放送 基準,
平砂浦 ポイント 釣り,
久保田悠来 テニミュ 降板,
デジタルトランス フォーメーション ものづくり,
種目 種別 違い,
この度 はお 取引 ありがとう ご ざいました,
デイユース カップル 千葉,
ユーロ ポンド 円,
物理基礎 圧力 問題,
三井ホーム 広い リビング,
ROC曲線における理想的な点は、真陽性率が高いかつ偽陽性率が低い左上に近い点です。左上に近いほど、※AUCが0.5を下回る場合は、ランダムな推定よりも性能が劣るとみなされるよく分からない分野ですが、噛み砕いて書いてくれてありがとうございます。夢がかないますように。だからこそ適切な指標を見るために活用されるのが、実際のクラスと予測したクラスの関係を示した下記の混同行列です。続いて、機械学習の性能評価に使える適合率-再現率曲線とは別のツールがROC曲線です。ROCとは(Receiver Operating Characteristics Curve)の略で、日本語にすると「受信者動作特性曲線」となって、もう・・・ナニコレ?って感じの名前ですよね(´Д` )改めて、ROCは全てのしきい値(threshold)を考慮した時の真陽性率と偽陽性率の組み合わせをプロットしたものなので、作動ポイントを達成できるモデルを視覚的に確認、判断できますよね。一つの数値だけで分類器毎に適当率-再現率曲線を表現できるというのは簡単に比較ができてとっても便利ですよね!しかし、次に適合率-再現率曲線(PR曲線)を見てみると、この分類器にはもっと右上に近づけられるということで改善の余地が十分にあることが明らかになります。という疑問が出てくるんですが、この方法について調べていったところこんな文章を見つけました。ここまで「適合率-再現率曲線」と「ROC曲線」という二つの曲線が出てきて、なぜなら、例えば100個のデータがあって90個が陽性、10個が陰性である場合、適当に「全てのデータを陽性だ!」としたら正解率は90%になりますが陰性に対する予測を全て外しているのでこれではちゃんと予測できているとは言えないからです。この例からわかるように、正解率だけを見ていてはモデルの性能評価として不十分です。※図中のクロマルの箇所:threshold zeroは、しきい値がモデルのデフォルトの点(しきい値=0)を示しています。また、陽性か陰性かの判断が完全にランダムで行われている(全く予測していない)場合には、ROCが対角線となりAUCは0.5となります。【平均適合率】SVC:0.666、ランダムフォレスト:0.662ただAUCはモデルのデフォルトのしきい値を用いないので、AUCが高いモデルを用いて有用なクラス分類を行うには、上の例のようにしきい値を調整していくことが必要な場合があるので注意がいりそうです。「年齢差は15歳以上離れててもいいかしら」「身長は180cm無くてもいいかしら」・・・・などとして基準を下げていったならば、その女性から見て「結婚したい」と思える世の中の男性(陽性)の数は増えていきます。一方で、「結婚したくない」と思う男性(陰性)の数は減っていきますよね。例えば、前述したように大量の紫色の点(陰性)から少量の黄色の点(陽性)だけを分類する場合は、SVCとランダムフォレストによる平均適合率を算出してみると、次のようにほとんど同じ結果になりました。なんとかこんな風にまとまりましたが、今回の内容は非常に専門的で何度も理解に苦しみました。整理してみたものの、今は書籍やWebから情報を集めながら理論を理解していっているだけなのでこれからは実践が必要になります。本コンテンツを書いて情報を整理していく以外にも、機械学習のコンペティションであるKaggle等を通じて自らデータ解析に取り組む時間をどんどん作ってきたいです。今回は、機械学習の性能評価として有効な「適合率-再現率曲線」、「平均適合率」、「ROC曲線」、「AUC」について整理してきました。ここまでを振り返って見ると、上で準備したデータを学習データとテストデータに分割後、機械学習アルゴリズム(SVC)を用いてクラス分類を行った結果について、適合率(precision )をX軸、再現率(recall)をY軸にした適合率-再現率曲線を描くと下記のようになりました。しかしモデルの性能評価は超大事で、どのくらい大事かと言えば、、、AI(人工知能)って「なにそれ美味しいの?」ってレベルだった僕が、AIエンジニアを目指してステップを踏んだり踏まれたりしている記事を書いてます。よかったら読んでみてください(実話)。ぐらい大事です。この工程を省いてしまえば手間暇かけて作ったジャガイモ使った料理も毒があるから食べれませんよね。これと同じように性能評価の工程を省いてしまえばROCは、中華民国 the Republic of China の略では無いのでみなさんお気をつけください。調べて理解したことを引き続きまとめていきます。F値からはわからない以下の二点を適合率-再現率曲線から確認できるということです。最初は正直「性能評価は混同行列だけじゃダメなのかなあ」ぐらいに思ってたんですが、今回理解を進めていくに連れてその認識が非常に甘かったことを痛感しました。ROC曲線の縦軸(真陽性率)、横軸(偽陽性率)は0~1の範囲の値なのでAUCのスコアは常に0 〜 1の範囲になります。まずROC曲線とAUCスコアを見ると、下図のように理想とする左上に近づく曲線となっているため、分類器が中々性能が高いと思いがちです。使用したソースコード(Python)をここから掲載していきますが、読み飛ばしても内容が理解できるようにしています。必要な方だけご参考にしてください。この内容については色々と思うところがあるかと思いますがまあそれは置いといて、、、さて、ここで新たに別の偏ったデータセットを用意して、SVCのしきい値を変化させながら二値分類を行ってみましょう。この時の正解率(accuracy) とAUCを求めてみると、以下の結果になりました。完全に陽性か陰性かの予測が正確に的中している時、つまり真陽性率が1かつ偽陽性率が0になる場合は次のようにAUCは最良値の1になります。いつもニコニコしてると言われ、現に生まれて初めてのあだ名は「ニコニコマン」。子供時代は笑いすぎで自然と腹筋がシックスパックに。笑った顔と苦しい顔をよく勘違いされるのが悩み。就寝前の瞑想が日課。出会い系、婚活サイトへの登録、友人の紹介などを通じて色んな男性に会ったものの、中々「結婚したい」と思える男性が見つからなかったので「相手に求める私の基準に問題があるのかしら?」と思い悩んで基準の見直しを検討したとしましょう。「F値を見てたら適合率-再現率曲線は描かなくても良いんじゃないの?」って僕は最初思ってたんですよね。小中と囲碁に熱中していた僕は囲碁AIがプロ棋士に勝利したニュースに衝撃を受け、興奮を抑え切れず会社を辞める。プログラミング未経験からAIエンジニアになるべく独学して運良くAI開発会社に拾われた後約1ヶ月で実力不足で左遷され今はAIZINE編集員に。「だけど私なりますよ、AI(機械学習)エンジニアに!!」実問題を解く時には、適合率を重視するのか再現率を重視するのかを考えて、最低限保証したい方の値を決めてからチューニングするのが望ましい方法です。一つずつ理解を積み上げていきたいので以前整理した機械学習の性能評価に使える混同行列から復習していきます。(混同行列についてすでに理解している方は本章は読み飛ばしてください)密かに「男性に求める10の条件」を書き記していたとします。こんな感じで・・・(職場の女性社員に書いていただきました)これはどういうことかと言うと、例えばこんなイメージに似ているかもしれません。AI(機械学習)の場合は、「これ陽性?陰性?」とクラス分類の判断基準となる値を「しきい値」と呼び、例えばデータから算出されたしきい値が「0.5以上ならこれは陽性、0.5未満ならこれは陰性」のようにして次々にクラスを予測していきます。ここからはデータセットを準備して、実際にクラス分類を行いながら理解を深めていきます。一生懸命自分が努力したことへの結果が出た時には嬉しいものですよね!時間をかけて精度の高いAI(機械学習)のモデルをつくる取り組みもその一つですが、つくったモデルは性能を評価することが大事でそのためのツールに混同行列や適合率-再現率曲線、ROC曲線、AUC等があります。再現率:実際に陽性であるものを陽性だと予測できる割合を示す指標なので、優れたクラス分類ができる機械学習のモデルを得るには適合率も再現率も両方高い値を示すことが理想的なため、先ほどの適合率-再現率曲線の図では曲線が右上(適合率=1、再現率=1)に近づけば近づくほど良いというわけです。縦軸を真陽性率、横軸を偽陽性率としてROC曲線を描くと次のようになりました。4000個のデータ(紫)と500個のデータ(黄)を準備して二つに分類していきます。 プログラム初心者がPython(パイソン)入門前に知ってほしいことまとめ. $False\ Positive\ Rate=\dfrac{FP}{FP + TN} = \dfrac{60}{60 + 440} = 0.12$$Recall, True Positive Rate=\dfrac{TP}{TP + FN} = \dfrac{TP}{TP + FN} = \dfrac{450}{450 + 50} = 0.9$お客さんが多く、接客に集中するため、猫でないものを誤って猫と推測する量を減らしたい今日は特別に高い魚を仕入れ、猫がきたら取りこぼしなく猫であると推測するようにしたいこの機械学習モデルが推測したクラスを分布に表すと以下のようにFP とFN が一切存在しないグラフになりますが、繰り返しになりますがこれは現実的にほぼありえない分布です。このように戦略を考慮して閾値を選択し、2 値分類機械学習モデルの特徴と付き合っていく必要があるのです。移動した後のFalse Positive Rate とTrue Positive Rate はROC曲線で表すと以下のようになります。大部分は正しく推測できていできていますが、一部機械学習の推測値が閾値より低いため実際には猫であるのに猫ではないと結果(FN)が出されていたり、一方で機械学習の推測値が閾値より高いため実際には猫ではないのに猫であると結果(FP)が出されていたりします。まずは現実的にはほぼありえないのですが、全ての猫を正しく猫と推測して全ての猫ではないものを正しく猫ではないと推測する機械学習モデルのROC 曲線・AUC を図示すると以下のようになります。ここで少しコーヒーブレイクとして、現実的には無いかもしれない特殊なROC 曲線とAUC をご紹介します。このように閾値を変更するということは、改善される点もありますがそれに伴う副作用も伴ってくるのです。先程の閾値を境に、左右に綺麗に山形な曲線は見る影もありません。これをROC 曲線でプロットしてみると次のようになります。ここでは前の記事の内容にも沿って猫を判別する機械学習を例に話を進めていきます。実際の機械学習では質の良いデータが集められなかった、教師データも完璧であるとは限らない、モデルも適切であるとは限らない等の要因により最初に示したような綺麗なROC 曲線になることはそうそうありません。 では実際どのようなROC 曲線が出てくるのか…例えば以下のようなROC 曲線と分布が出てきたりします。例えば虎猫鮮魚店では、この機械学習モデルを導入するうえで以下のようなビジネス戦略をたてたとします。閾値を0.7 まで上げた結果、閾値の線が右へ移動しました。閾値付近の分布を拡大してみます。
ROC曲線における理想的な点は、真陽性率が高いかつ偽陽性率が低い左上に近い点です。左上に近いほど、※AUCが0.5を下回る場合は、ランダムな推定よりも性能が劣るとみなされるよく分からない分野ですが、噛み砕いて書いてくれてありがとうございます。夢がかないますように。だからこそ適切な指標を見るために活用されるのが、実際のクラスと予測したクラスの関係を示した下記の混同行列です。続いて、機械学習の性能評価に使える適合率-再現率曲線とは別のツールがROC曲線です。ROCとは(Receiver Operating Characteristics Curve)の略で、日本語にすると「受信者動作特性曲線」となって、もう・・・ナニコレ?って感じの名前ですよね(´Д` )改めて、ROCは全てのしきい値(threshold)を考慮した時の真陽性率と偽陽性率の組み合わせをプロットしたものなので、作動ポイントを達成できるモデルを視覚的に確認、判断できますよね。一つの数値だけで分類器毎に適当率-再現率曲線を表現できるというのは簡単に比較ができてとっても便利ですよね!しかし、次に適合率-再現率曲線(PR曲線)を見てみると、この分類器にはもっと右上に近づけられるということで改善の余地が十分にあることが明らかになります。という疑問が出てくるんですが、この方法について調べていったところこんな文章を見つけました。ここまで「適合率-再現率曲線」と「ROC曲線」という二つの曲線が出てきて、なぜなら、例えば100個のデータがあって90個が陽性、10個が陰性である場合、適当に「全てのデータを陽性だ!」としたら正解率は90%になりますが陰性に対する予測を全て外しているのでこれではちゃんと予測できているとは言えないからです。この例からわかるように、正解率だけを見ていてはモデルの性能評価として不十分です。※図中のクロマルの箇所:threshold zeroは、しきい値がモデルのデフォルトの点(しきい値=0)を示しています。また、陽性か陰性かの判断が完全にランダムで行われている(全く予測していない)場合には、ROCが対角線となりAUCは0.5となります。【平均適合率】SVC:0.666、ランダムフォレスト:0.662ただAUCはモデルのデフォルトのしきい値を用いないので、AUCが高いモデルを用いて有用なクラス分類を行うには、上の例のようにしきい値を調整していくことが必要な場合があるので注意がいりそうです。「年齢差は15歳以上離れててもいいかしら」「身長は180cm無くてもいいかしら」・・・・などとして基準を下げていったならば、その女性から見て「結婚したい」と思える世の中の男性(陽性)の数は増えていきます。一方で、「結婚したくない」と思う男性(陰性)の数は減っていきますよね。例えば、前述したように大量の紫色の点(陰性)から少量の黄色の点(陽性)だけを分類する場合は、SVCとランダムフォレストによる平均適合率を算出してみると、次のようにほとんど同じ結果になりました。なんとかこんな風にまとまりましたが、今回の内容は非常に専門的で何度も理解に苦しみました。整理してみたものの、今は書籍やWebから情報を集めながら理論を理解していっているだけなのでこれからは実践が必要になります。本コンテンツを書いて情報を整理していく以外にも、機械学習のコンペティションであるKaggle等を通じて自らデータ解析に取り組む時間をどんどん作ってきたいです。今回は、機械学習の性能評価として有効な「適合率-再現率曲線」、「平均適合率」、「ROC曲線」、「AUC」について整理してきました。ここまでを振り返って見ると、上で準備したデータを学習データとテストデータに分割後、機械学習アルゴリズム(SVC)を用いてクラス分類を行った結果について、適合率(precision )をX軸、再現率(recall)をY軸にした適合率-再現率曲線を描くと下記のようになりました。しかしモデルの性能評価は超大事で、どのくらい大事かと言えば、、、AI(人工知能)って「なにそれ美味しいの?」ってレベルだった僕が、AIエンジニアを目指してステップを踏んだり踏まれたりしている記事を書いてます。よかったら読んでみてください(実話)。ぐらい大事です。この工程を省いてしまえば手間暇かけて作ったジャガイモ使った料理も毒があるから食べれませんよね。これと同じように性能評価の工程を省いてしまえばROCは、中華民国 the Republic of China の略では無いのでみなさんお気をつけください。調べて理解したことを引き続きまとめていきます。F値からはわからない以下の二点を適合率-再現率曲線から確認できるということです。最初は正直「性能評価は混同行列だけじゃダメなのかなあ」ぐらいに思ってたんですが、今回理解を進めていくに連れてその認識が非常に甘かったことを痛感しました。ROC曲線の縦軸(真陽性率)、横軸(偽陽性率)は0~1の範囲の値なのでAUCのスコアは常に0 〜 1の範囲になります。まずROC曲線とAUCスコアを見ると、下図のように理想とする左上に近づく曲線となっているため、分類器が中々性能が高いと思いがちです。使用したソースコード(Python)をここから掲載していきますが、読み飛ばしても内容が理解できるようにしています。必要な方だけご参考にしてください。この内容については色々と思うところがあるかと思いますがまあそれは置いといて、、、さて、ここで新たに別の偏ったデータセットを用意して、SVCのしきい値を変化させながら二値分類を行ってみましょう。この時の正解率(accuracy) とAUCを求めてみると、以下の結果になりました。完全に陽性か陰性かの予測が正確に的中している時、つまり真陽性率が1かつ偽陽性率が0になる場合は次のようにAUCは最良値の1になります。いつもニコニコしてると言われ、現に生まれて初めてのあだ名は「ニコニコマン」。子供時代は笑いすぎで自然と腹筋がシックスパックに。笑った顔と苦しい顔をよく勘違いされるのが悩み。就寝前の瞑想が日課。出会い系、婚活サイトへの登録、友人の紹介などを通じて色んな男性に会ったものの、中々「結婚したい」と思える男性が見つからなかったので「相手に求める私の基準に問題があるのかしら?」と思い悩んで基準の見直しを検討したとしましょう。「F値を見てたら適合率-再現率曲線は描かなくても良いんじゃないの?」って僕は最初思ってたんですよね。小中と囲碁に熱中していた僕は囲碁AIがプロ棋士に勝利したニュースに衝撃を受け、興奮を抑え切れず会社を辞める。プログラミング未経験からAIエンジニアになるべく独学して運良くAI開発会社に拾われた後約1ヶ月で実力不足で左遷され今はAIZINE編集員に。「だけど私なりますよ、AI(機械学習)エンジニアに!!」実問題を解く時には、適合率を重視するのか再現率を重視するのかを考えて、最低限保証したい方の値を決めてからチューニングするのが望ましい方法です。一つずつ理解を積み上げていきたいので以前整理した機械学習の性能評価に使える混同行列から復習していきます。(混同行列についてすでに理解している方は本章は読み飛ばしてください)密かに「男性に求める10の条件」を書き記していたとします。こんな感じで・・・(職場の女性社員に書いていただきました)これはどういうことかと言うと、例えばこんなイメージに似ているかもしれません。AI(機械学習)の場合は、「これ陽性?陰性?」とクラス分類の判断基準となる値を「しきい値」と呼び、例えばデータから算出されたしきい値が「0.5以上ならこれは陽性、0.5未満ならこれは陰性」のようにして次々にクラスを予測していきます。ここからはデータセットを準備して、実際にクラス分類を行いながら理解を深めていきます。一生懸命自分が努力したことへの結果が出た時には嬉しいものですよね!時間をかけて精度の高いAI(機械学習)のモデルをつくる取り組みもその一つですが、つくったモデルは性能を評価することが大事でそのためのツールに混同行列や適合率-再現率曲線、ROC曲線、AUC等があります。再現率:実際に陽性であるものを陽性だと予測できる割合を示す指標なので、優れたクラス分類ができる機械学習のモデルを得るには適合率も再現率も両方高い値を示すことが理想的なため、先ほどの適合率-再現率曲線の図では曲線が右上(適合率=1、再現率=1)に近づけば近づくほど良いというわけです。縦軸を真陽性率、横軸を偽陽性率としてROC曲線を描くと次のようになりました。4000個のデータ(紫)と500個のデータ(黄)を準備して二つに分類していきます。 プログラム初心者がPython(パイソン)入門前に知ってほしいことまとめ. $False\ Positive\ Rate=\dfrac{FP}{FP + TN} = \dfrac{60}{60 + 440} = 0.12$$Recall, True Positive Rate=\dfrac{TP}{TP + FN} = \dfrac{TP}{TP + FN} = \dfrac{450}{450 + 50} = 0.9$お客さんが多く、接客に集中するため、猫でないものを誤って猫と推測する量を減らしたい今日は特別に高い魚を仕入れ、猫がきたら取りこぼしなく猫であると推測するようにしたいこの機械学習モデルが推測したクラスを分布に表すと以下のようにFP とFN が一切存在しないグラフになりますが、繰り返しになりますがこれは現実的にほぼありえない分布です。このように戦略を考慮して閾値を選択し、2 値分類機械学習モデルの特徴と付き合っていく必要があるのです。移動した後のFalse Positive Rate とTrue Positive Rate はROC曲線で表すと以下のようになります。大部分は正しく推測できていできていますが、一部機械学習の推測値が閾値より低いため実際には猫であるのに猫ではないと結果(FN)が出されていたり、一方で機械学習の推測値が閾値より高いため実際には猫ではないのに猫であると結果(FP)が出されていたりします。まずは現実的にはほぼありえないのですが、全ての猫を正しく猫と推測して全ての猫ではないものを正しく猫ではないと推測する機械学習モデルのROC 曲線・AUC を図示すると以下のようになります。ここで少しコーヒーブレイクとして、現実的には無いかもしれない特殊なROC 曲線とAUC をご紹介します。このように閾値を変更するということは、改善される点もありますがそれに伴う副作用も伴ってくるのです。先程の閾値を境に、左右に綺麗に山形な曲線は見る影もありません。これをROC 曲線でプロットしてみると次のようになります。ここでは前の記事の内容にも沿って猫を判別する機械学習を例に話を進めていきます。実際の機械学習では質の良いデータが集められなかった、教師データも完璧であるとは限らない、モデルも適切であるとは限らない等の要因により最初に示したような綺麗なROC 曲線になることはそうそうありません。 では実際どのようなROC 曲線が出てくるのか…例えば以下のようなROC 曲線と分布が出てきたりします。例えば虎猫鮮魚店では、この機械学習モデルを導入するうえで以下のようなビジネス戦略をたてたとします。閾値を0.7 まで上げた結果、閾値の線が右へ移動しました。閾値付近の分布を拡大してみます。