分析結果の評価の仕方
これまで、データの前処理、アルゴリズム選択、分析手順について見てきました。次に、具体的に何かの分析をした結果をどのように評価するのか、ということについて説明しましょう。
ある検査で、病気に罹患しているか判別するモデルを、得られた知見を活かして作成したと想像してください。10000サンプルのデータを予測モデルに適用した予測結果と、実際の罹患の有無(正解)を突き合わせて、図1のような評価データが得られました。表に記載された「陽性(Positive)」という用語にはなんとなく良いイメージが、「陰性(Negative)」にはなんとなく悪いイメージがあり、つい病気の場合を陰性と考えてしまいがちですが、着目している現象が発現(この場合は病気に罹患)している状態が「陽性」、発現していない状態が「陰性」なので気をつけてください。つまり、罹患していないと予測した(予測が陰性)データのうち、本当に罹患してなかった(正解が陰性)サンプルが9900あるということで、99%のデータを正しく判別することができたと結論付けたとしましょう。これは良い分析結果と判断して問題ないでしょうか?ここではこのような分析結果の評価方法について考えていきます。
評価に用いる指標
評価指標としてよく使われるものに「精度(Accuracy)」があります。精度は、
精度 = 正解数÷データ数
と、定義されます。モデルの性能の良しあしを、精度の良しあしと言ってしまうことがありますが、本稿では、この意味で精度という言葉を用います。
以下のような式で示される誤差率も、評価指標としてよく用いられます。
誤差率 = 1 - 精度
図1の評価結果は精度99%です。一見、良い結果が得られたように思われますが、これには一つ問題があります。それは、予測結果が全て陰性であり、陽性であると判別したデータが一つもないことです。本当に罹患していた患者について、誰一人として罹患しているという予測ができなかったことになり、その点からも予測結果の利用には大きな問題があるといえるでしょう。今回のように、データのラベルに偏りがある場合(不均衡データ)、精度を評価指標として用いると、このように、常に数の多い方のラベルを予測結果として返す予測モデルができあがってしまうことがあります(※注:不均衡データは予測モデルの学習そのものが難しいという問題もあります)。
このような問題に対処するため、混同行列(Confusion matrix)というものを考えます。図2のようなテーブルを混同行列と呼びます。正解ラベルが陽性か、陰性かということに対し、それらを陽性と予測したか、陰性と予測したかで予測結果を、
- 真陽性(True positive: TP):陽性のものを正しく陽性と予測
- 偽陰性(False negative: FN):陽性のものを誤って陰性と予測
- 真陰性(True negative: TN):陰性のものを正しく陰性と予測
- 偽陽性(False positive: FP):陰性のものを誤って陽性と予測
のように区別します。そして、
- 真陽性率(True positive rate):陽性のものを正しく予測できた割合(ヒット率)= TP/(TP+FN)
- 偽陽性率(False positive rate):陰性のうち誤って陽性と予測した割合(誤報率)= FP/(FP+TN)
と、いう評価指標を考えます。
図1の例で考えると精度は99%ですが、真陽性率が0%、偽陽性率が0%であり、真陽性率が低いのは問題である、と判断することが可能となります。
評価指標はこの他にも、
- 適合率(Precision):陽性と予測したものの正解率 = TP/(TP+FP)
- 再現率(Recall):陽性のうち正しく予測できた率 = TP/(TP+FN)
- F値:適合率と再現率の調和平均=2(Precision・ Recall)/(Precision+Recall)
と、いったものもよく用いられます(図1の例ではいずれも0となります)。
ここまでは、分類問題の評価指標を取り上げてきました。回帰問題の予測指標としては、
などや、MSEの平方根をとったRoot mean squared error(RMSE) もよく用いられます。