データ活用に統計と機械学習を使うとどう嬉しいのか?注意点は?

このエントリーをはてなブックマークに追加

データ活用に統計と機械学習を使うとどう嬉しいのか?注意点は?

目次

  • 導入
  • 切り口は2つ!予測とシミュレーション
  • 落とし穴はなにか?
  • バイアスとバリアンスとは
  • まとめ

導入

こんにちは。データデザイン部でデータサイエンティストの役割を担っている高橋です。
今回は、データ活用の手段として用いられる2つのアプローチをどう使い分けていけばよいか、紹介したいと思います。
また、これらの2つのアプローチに共通する落とし穴を紹介し、どう対処していけばよいか解説します。

切り口は2つ!予測とシミュレーション

データ活用を行うという文脈では、データの蓄積や可視化部分といった基本的なIT活用の次に、人手でやっていることをコンピュータにやらせたいという考えがあると思います。

その中の代表的なものに予測とシミュレーションがあります。

【予測】
複数のパラメータから特定の変数が取りうる値を想定して提示する

【シミュレーション】
予測で取り扱った各パラメータを調整すると、特定の変数がどの程度変化するか確認する

この2つは「データ分析」という単語を使って表現されてしまいがちですが、実現していく上で大きな違いがあります。
予測だけであれば統計的なアプローチでも、機械学習を用いたアプローチでも可能です。
しかし、シミュレーションを行いたい場合、統計的なアプローチを取る必要があります。

上図の通り、統計的なアプローチでは、データを説明することに主眼が置かれており、データを説明できることで予測も行えるといった側面があります。
ビジネス上のメリットは予測結果に対してなぜそのような結果になったのかという説明が可能であることや、その説明をもとに、社内外に説明できることが挙げられます。

一方で機械学習は説明性を犠牲にして複雑な予測モデルを作り、様々なテクニックを用いることで、予測精度を高めていこうという側面が強いです。

これらは共通する部分も多く、分析の興味関心が異なるだけです。
よってどちらが良いという話ではなく、ビジネスにおいては課題に対して適切に選択、組み合わせる必要があります。

ここでは私が普段から扱っている不動産のデータを例にとって解説していきたいと思います。

統計学によるアプローチ

例えば、ある程度の物件データが収集できているとします。
このデータには各物件に対して、物件の価格と、専有面積や建築後年数といった不動産の特性に関するデータが含まれています。
そして、このデータの新しい物件の不動産の特性群から、物件価格を予測するモデルを構築します。このようなモデルのことを、回帰モデルといいます。
線形回帰モデルでは、不動産の特性一つ一つに対して、”何らかの係数”が存在し、それらを足し合わせる事によって物件価格を表現します。
ここでは一つ一つ取り上げることはしませんが、”何らかの係数”を求める手法もいくつか存在します。

こちらは推定手法ごとのプロットを行った図です。
線形回帰モデル(+重み)ですが、非線形なデータを一本の線で表現できていることがわかります。
ただしモデルの推定法によって、学習した関数の形状に多少の差異が存在します。

過小定式化バイアス

回帰モデルの典型的な応用例として、各不動産の特性が不動産価格に与える影響を検討するというものがあります。
例えば、専有面積が1㎡あがると物件の価格はいくら上昇するか、といったことがわかるようになります。

しかし、不動産価格に影響する特性をすべてデータとして取得するのは、 現実には困難ですよね。
一般的な不動産取引のポータルサイトを見ても、専有面積、建築後年数、最寄り駅までの徒歩分数といったデータは確認できるものの、物件にどのような建材が使用されているか、ベランダからの眺望、公園までの距離や病院までの距離といったデータについては存在しないことが大半だと思います。

この場合、仮に不動産価格が本当に線形回帰モデルから生成されている場合であっても、 入手できなかった特性の存在によって、線形回帰モデルの回帰係数の推定量にバイアスが生じる可能性があります。
これを過少定式化バイアスと呼びます。
入手できなかった特性が価格に強く影響している場合や、入手できなかった特性と入手できた特性の間に強い相関がある場合、過少定式化バイアスが発生する懸念が強くなります。

例えば専有面積と最寄り駅までの徒歩分数の関係です。
専有面積が増加すると物件の価格も増加する、駅から離れると(不便なので)物件の価格は減少すると一般的には考えられますよね。
しかし、駅から離れると広い土地が確保しやすくなり、必然と専有面積が広い物件が多くなりそうですよね。
このような関係の場合、(実際にはなかなか無いですが)専有面積か最寄り駅までの徒歩分数を考慮しないモデルを設定してしまうと大きな影響がありそうです。

このような過少定式化バイアスを防ぐためには、価格に強く影響していると思われる不動産特性を事前に見極め、それらを適切にモデルに組み込むことが求められます。

機械学習によるアプローチ

機械学習によるアプローチではパラメータ推定を解析的にできませんが、複雑なモデルを表現し、モデルの予測力の向上に寄与します。
ある程度ではありますが、上記の線形回帰モデルを様々な観点から拡張する形で、アルゴリズムによってモデルの改善を図ります。
これが先程紹介した図の、ドメイン知識があまり必要ないと表現している部分に該当します。

しかし、機械学習モデルは高い表現力を持つ反面、その学習は難しくなります。
そのため、数多くの学習法やテクニックが日々開発されています。
特に機械学習を用いて、複雑なモデルを構築する場合、これから説明するような落とし穴を理解し、穴に落ちないように適切に対処する力が求められます。

落とし穴はなにか?

過学習

機械学習では複雑なモデルを表現することができますが、その表現力の高さから過学習とよばれる問題も引き起こします。

ここで、サンプルサイズに比べて圧倒的に複雑なモデルを採用したとしましょう。
このようにモデルが過剰に柔軟な場合、得られたデータをすべて“丸暗記”できてしまう可能性があります。
もしデータを丸暗記したならば、データに対する予測誤差は0(答えをすべて知っている状態)となります。

しかしながら、モデルの学習における目的の1つは、これから取得されるデータに関して、良い予測をすることですよね。
上記で示したような“丸暗記”したモデルは、この目的に適しているとは限りません。
例を上げると過去問では100点が取れるのに、本番の試験では30点しかとれないといったことが起こってしまいます。
このような状態を、過学習と呼びます。

下の図は線形回帰モデルの学習において、複雑すぎるモデル(過剰に高次の多項式にした場合)の例になります。
ここでははじめに紹介した線形回帰モデルを考え、係数の推定には最小二乗法を用いています。
今回は多項式の次数を1, 3, 10, 50 の 4 通りで試してみました。

この例では、次数が50のときは回帰曲線がデータの近傍を通るために過剰に蛇行しています。
その結果、新しくデータが得られた際に実際にはあり得なさそうな値をモデルが予測してしまっていることがわかります。
これは過学習の典型的な例ですね。

過学習を避ける方法としては、データを学習用と検証用に分割する方法が考えられます。
つまり、学習用データで学習したモデルの精度を検証用データを用いて確認するということを複数回繰り返します。
また、正則化と呼ばれる手法も有効です。
線形回帰モデルのような情報量規準が容易に計算できるモデルならば、それを用いて変数選択を行うこともできます。
過学習の原因は過剰に複雑なモデルにしていることですので、シンプルなモデルにしていこうという発想です。
例えば今回の場合であれば、変数選択によって多項式基底関数の次数を適切に削減することで、過学習を回避できます。

バイアスとバリアンス

ここでは過学習が起こる原因について、予測のバイアスとバリアンスの観点から確認してみましょう。
もしこの世に存在するすべての不動産のデータを持っていれば、すべての物件に対して予測誤差が最も小さくなるような理想的なモデルを作ることができそうですね。
しかし実際に入手可能なデータは、自社で取引のあった物件のみといった一部のデータに関するものだけで、このような一部のデータから、データとして取得できなかった物件の価格についても予測誤差の小さい関数を学習したいはずです。

ここでバイアスとバリアンスの考え方が出てきます。

【バイアス(偏り)】
多数のモデルを学習させた場合の、それらの予測の平均値を全体としての予測とした場合の悪さ

【バリアンス(ばらつき)】
異なるデータで多数のモデルを学習させた場合の、予測結果のばらつき

バイアスは、例えば専有面積だけといった単純すぎるモデルは実際の価格形成の構造に対してモデルの柔軟性が足りていないので、どの回帰モデルの予測もばらつきはしないものの、正解に近いものにはならなさそうですよね。
そうなると、多数のモデルの平均をとっても予測は悪く、バイアスが大きいことになります。
このことから、複雑なモデルにするとバイアスは減少することがわかります。

また、バリアンスは、複雑なモデルを定義した場合、データを変えると予測結果のばらつきが発生してしまうことです。
これは偶然得られたデータにモデルが必要以上に適合してしまっている状態なので、バリアンスの大きさということは過学習の可能性があるとも言えそうですね。
このことから複雑なモデルにするとバリアンスが増加することがわかります。

上記からバイアスとバリアンスはトレードオフの関係にありそうです。
データの変化に影響されずに良い予測モデルを作るためには、バイアスもバリアンスも適度に小さくなるような、ちょうどいい柔軟性を持つモデルを選ぶことが重要であることがわかりますよね。

また、高いバリアンスは過学習の原因であるので、これを抑制したいですよね。今回は取り扱いませんでしたが、選択肢としてモデルの正則化があります。
データの取得は一度しかできないことが多いので、与えられた 1 セットのデータから適度な複雑さを持ったモデルを選んだり、正則化の強さを適切に調整したりする必要があります。
データを学習用と検証用に分割する方法は、この課題を解決する 1 つの方法です。
これが交差検証と言われている手法です。

バイアスとバリアンスの観点から、より良い予測モデルの作り方を考えてみる

まず、バイアスのみを見れば、複雑なモデルの予測が良さそうでしたよね。
複雑なモデルの問題点はバリアンスが大きいことでしたが、バイアスは小さいので、バリアンスを抑制するために、例えば多数のモデルの平均をとれば、良い予測モデルができそうです。
この考えはすでに実現されていて、アンサンブル学習に分類されるバギングはこのようなアイデアを実現する方法です。
決定木ベースの手法であればランダムフォレストというアルゴリズムが存在していますし、ニューラルネットワークでは過学習を抑制して予測モデルを改善する学習のさせ方としてdropoutが存在します。

また、バイアスを抑制していく事も考えられますよね。
アンサンブル学習にはもう一つブースティングというアイデアが存在しています。
ブースティングは予測モデルを構築し、予測を行った際に間違ってしまうものに対して重み付けを行い、次の予測モデル構築に生かしていくということを繰り返し行っていく方法です。

予測モデルであったとしても、アプローチごとの特性を理解した上で、適切に対処していくことがより良いモデルの構築に貢献することがわかりました。

まとめ

今回はデータ活用に統計と機械学習を使うとどう嬉しいのか?注意点は?というテーマで、統計と機械学習のアプローチが担っている役割を整理してみました。

また、モデルを構築する際の注意点を簡単なプロットを示して解説してみました。

これらのうちどれが優れているという話ではなく、自分たちの興味のある事柄に対してバランス良くどの考え方も適用していくことがデータ活用成功の鍵だと考えています。

お気軽にご相談ください

データ活用からAI開発まで、お客様の事業課題を解決するお手伝いをいたします。
お困りの方はどうぞお気軽にご相談ください。

お問い合わせ・ご相談はこちらから

WRITER
Yusuke Takahashi

データサイエンティスト

高橋   佑典 Yusuke Takahashi

統計と機械学習を活用した構造化データ分析、自然言語処理を担当。デジタルマーケティング業界でのデータ分析プラットフォーム構築支援、不動産業界での価格査定モデルを構築。

最新記事

ページTOPへ