はじめに
コンピュータでのデータ分析といっても多種多様で、画像や音声、映像、文章などを対象にする場合もあれば、売上値や検査値などの数値を分析する場合もあります。最近では、AIによってさまざまなデータが扱いやすくなり、利用者にとって分かりやすく結果を提示できるようになっています。
その反面、分析の過程についてはわかりにくくなり、エンジニアはデータを抽象化しイメージできる能力、つまり、頭の中でおおよそのデータを示す図が描ける力が今後求められていくでしょう。そこで、本連載では、数式からデータ特性をイメージできるようになることを目指して、中学・高校で学ぶ基礎数学を説明したいと思います。
対象
- 数学が苦手と感じている、もしくは復習したいと思っているエンジニア
- データ分析を始めたいと思っているエンジニア
- データビジュアライゼーション(データのグラフ化)を行うエンジニア
データを見る流れ
「データを抽象化しイメージする」もしくは「数式からデータ特性をイメージできる」といってもどういうことなのか、よく分からないかもしれません。そこでまずは、具体的な例として「複数の店舗を持つ企業の販売を改善する過程」を用いて、分析の流れを説明したいと思います。
データ分析の流れ
データを分析する場合、まずは、データ間の関係を見つける必要があります。
例えば、売上と顧客の年齢の調査結果であれば、簡単にグラフ化し傾向を確認できます。この場合、2つに関係性がある前提で、データ分析していることになります。
しかし、一般的なデータ分析においては、「売上に関する属性の何か」と「顧客に関する属性の何か」に関係性があるか、あるとしたらどのような傾向かを発見することが求められます。ここで言う「属性の何か」とは、「店舗ごとの購入単価」「1日の購入額合計」「年齢」「自宅までの距離」といった情報はもちろん、「天気」などの直接的に関係がないものも含まれます。
そして、図1のように集められるデータをできるだけ集め、それらの関係と傾向を探し結果を提案するまでを、システム側に求められることもよくあります。

入出力は人が確認できますが、その途中データの状況がわからないと、結果が正しいのか判断できません。画像や動画認識では、コンピュータ内で扱いやすく計算した結果の値からその特徴を見ることを「コンピュータビジョン(CV)」と言います。多くの数値分析において、そのコンピュータビジョンに相当するのが「数式」です。
データの特徴を探す
例えば、「使った金額(Y軸)」と「自宅までの距離(X軸)」のデータを調べたときに、図2の結果になったとします。

この例では、直観的に「2つの比例直線が引ける」ことが見て取れます。ですが、この関係を計算によって見つけたい場合は、どうすればよいでしょうか。ここでの変数は「距離」しかないので、比例関係である「y = ax + b」で示せるはずです。平均値を用いると、図3のようになります。

この結果を用いて販促キャンペーンを行うと、店舗の近くから来る顧客では成功しても、遠方の単価が高い顧客は逃してしまうかもしれません。
コンピュータでデータを見る場合の課題
コンピュータ上でデータを扱う場合、このように異なる複数のルールを扱うのは大変です。また、複数のルールを見つけたとしても、実際に特定の値に対する結果が2つ以上になる場合、その後の扱い方も難しくなります。そのため、ルールを1つに限定した方が判断がしやすいでしょう。
一方、それだけでは人間の感覚と異なることもあります。またルールが見つからないと、そもそもの目的が達成できません。その場合、軸となる項目の取り方が間違っていることを疑う必要があります。その際、人がさまざまなデータから関係を探すやり方と、コンピュータの計算によって関係を探す場合での違いを、図4のように意識する必要があります。

例えば、人間は曖昧な全体情報から個別の関係を探せますが、コンピュータはあいまいな関係を扱うことができないため、常に具体的な数値と明確なルールが必要です。このルールは高度になればなるほど複雑化していきますが、いかなる場合も明確な論理(ロジック)が存在します。そこでコンピュータが扱っているデータ感覚をつかむには論理的な数学の考え方に慣れる事が役立ちます。
数式から見える仮説
先ほどのデータの関係は図5のように2つの一次関数の直線が引けます。

人間から見た場合、2つ線が引けるということは、係数aには2つの場合があるという考え方をするはずです。しかし、それではこの2つの値に一次関数の関係は成立しません。ここで改めて、一次関数、つまり「y = ax + b」の意味を見直してみます。

この一次関数を「連続した数値データ」だとみなしていると気がつきにくいのですが、「xはaと関係が深く、bとは無関係である」ことも意味しています。数学上、掛け算(割り算)は「関係性」が高いことを示し、足し算(引き算)はその関係性が低いことを示します。
そして、掛け算は扱いやすいということを学ぶために、中学数学以来「因数分解」を幾度となくやってきたことを思いだしてください。「因数分解」とは読んで字のごとく、要「因」の「数」に「分解」することです。つまり、掛け算の中に要因が複数存在する可能性があり、その特徴が消えずに残っていることを意味しています。
つまり、図7のように「ax」の「x」が純粋な「店舗から自宅までの距離」という要因を示す変数ではなく、まだ隠れた因子が含まれている可能性が高いと言う事を意味していることになります。

データ分析の難しさと今後について
さて、ここからその隠れた因子を見つけるには……と進めたいところですが、難解でもあります。大学などで学ぶ「解析学」の知識が必要であり、高校数学より高度になってきます。
一方、そういった難しい学問を知らなくても、コンピュータでは総当たりや、人の経験則でルールを予測できます。つまり、専門知識を知らなくてもその他の因子を探すことができるのです。例えば、先ほどの例では「夏物セール」と「冬物セール」を行った時の結果などの情報があれば、「季節」という要因が隠れていることがわかります。
今後、AIサービスなどがより使いやすく普及していけば、このような高度な類推を要求される部分はAIに置き換わる可能性もあります。そして、その結果を用いてどのような表現、もしくは結論を導くのかが今後、より多くのエンジニアに求められるようになるのかもしれません。
本連載で目指すこと
さて、前置きが長くなってしまいましたが、本連載で目指すのは、数式からデータ特性をイメージできるようになることです。つまり、数式から具体的な図をイメージ出来るようになれば、その途中経過が完全にわからなくても全体像をイメージしやすくなるはずです。中学や高校の数学では、一般的に数式から結果を求めるケースが多かったはずです。そのため、値(データ)から見た時の数式という視点を求められる機会はあまりなかったかもしれませんが、この連載の中で徐々に身につけていきましょう。