Pythonコードと図で分かる平均値と標準偏差の違い――「統計」とはデータから価値ある情報を抜き出すこと:「AI」エンジニアになるための「基礎数学」再入門(3)(1/2 ページ)
AIに欠かせない数学を、プログラミング言語Pythonを使って高校生の学習範囲から学び直す連載。今回から具体的に数学を学びます。統計とは、統計量とは何かを数学記号や数式、Pythonコード、図を交えて解説します。
AIに欠かせない数学を、プログラミング言語Pythonを使って高校生の学習範囲から学び直す本連載『「AI」エンジニアになるための「基礎数学」再入門』。
初回は、「AIエンジニア」になるために数学を学び直す意義や心構え、連載で学ぶ範囲についてお話ししました。また前回は、「世の中にはどのようなデータがあるのか?」という部分を主に取り上げました。今回は、「それらデータをどう活用していくのか?」「活用するためにはどのような下準備が必要なのか?」というテーマを主軸としており、その基礎的な部分を解説します。
統計とは
「統計」とは、読んで字のごとく「統(す)べて計る」ことを意味しています。
「統べる」とは、表1のように100行あるデータを「合計」するなどして、数字を1つにまとめるイメージです。
i | 顧客ID | M月の購入金額 | M+1月の購入金額 |
---|---|---|---|
1 | C001 | 1000 | 1500 |
2 | C002 | 800 | 700 |
…… | …… | …… | …… |
100 | C100 | 500 | 1300 |
「計る」とは、1つにまとめた数値から「平均値」(後述)を算出するなどして、表2のように何かしらの意味や解釈につながる価値ある情報を抜き出すイメージです。
M月の購入金額の平均値 | M+1月の購入金額の平均値 | |
---|---|---|
900 | 1000 |
このようなことは意識せずとも、皆さんは日頃から呼吸をするように「統計」に触れながら生活をしているのではないでしょうか。
例えば、表1のデータを渡されて「先月と今月で顧客の購買傾向にどのような変化があったか調査してください」という依頼があったとします。ここで、「顧客C001はXXXです。顧客C002はXXXです……」と100人分の変化を述べることは非常識ではありませんか。
むしろ、表2のように平均値などを計算したりして「この1カ月で購入金額の平均値は+100円の変化がありました。購買傾向は活性化していると考えられます」と帰結させることの方が常識的な気がします。
このように、人間の情報処理能力にとって過剰な量の情報(表1のようなデータ)から、なるべく必要な情報を落とさないように情報を抜き出す(数値や関数として)ことでデータの特徴を知る。それこそが「統計」という行為の目的です。そして、「どのように情報を抜き出すと価値ある情報が抜き出せるのか?」という考えの下にさまざまな研究がなされ、「統計学」という学問が誕生し、発展してきました。
本稿の範囲は、ひとまずは統計学の基本的な部分にとどまりますが、連載を通じて理解を深めていくと、「情報の性質を知ること」を応用して「未知の情報を知ること(推測)」も行えるようになります。そしてまさに、それらの比較的高度で計算が煩雑な範囲を機械(コンピュータ)にやらせる技術が「機械学習」と呼ばれるものです。
機械学習は、現在「AI(人工知能)」と呼ばれるシステムのほとんどに組み込まれているアルゴリズムといえます。「それなくしてはAIではない」という見方もあります。よって、統計学は機械学習ないしはAIを語るには不可欠なものだといえるでしょう。
定義を理解するために必要な数学記号
主な統計量の定義を知るために必要な数学記号の知識を紹介します。
単独の数字(「スカラー」と呼びます)であることを意味します。Pythonで言えばint型やfloat型の変数がこれに当たります。
「数列」(あるいは「ベクトル」)を意味します。これを見たら、1列に数字が配列されているものを思い浮かべてください。例えば、数列「x」で表1の「M月の購入金額」の列を表現するならば、下記のようになります。
また数列は、一般的に下記のように表記します。
ここでスカラー「xi」(数列「x」の「要素」と呼びます)の添え字のiは「1番目の要素、2番目の要素、……」を表現しているので、下記のように、数列「x」の要素の値と対応します。
本稿の範囲では必要ありませんが、ついでに行列の記号も紹介しておきます。これを見たら、複数行、複数列にスカラーが配列されたものを思い浮かべてください。なお一般的な(mn)行列は、下記のようになります。
また、複数の「数列」が1行(あるいは1列)に配列されているという捉え方もできます。
今回の要素である数列をスカラーに展開すると、要素がスカラーの行列と一致することがお分かりでしょうか。
数列の「平均値」を意味します。先ほどの数列「x」をそのまま使うと、表2では下記のようになります。平均値の定義については後述します。
数列の要素を合計することを指示する記号で、とても頻繁に目にする記号です。Excelの「SUM関数」と言えば親近感が湧く方も多いでしょう。基本的には、下記のように、記号の下に「何番目の要素から合計するか」と、上に「何番目の要素まで合計するか」を書き足して記述します。
これは「1番目からn番目までの要素を合計する」という意味の記述です。よって、1番目から100番目までの要素を合計したければ、下記のように記述します。
関連記事
- 数学ができると「数学ができないエンジニアはダメだ」の効果が計れる
数学ができるとエンジニアとして活躍できるのか、むしろ数学ができないとエンジニア失格なのか?――「エンジニアに数学の知識は必要か?」を、数学オタクが論理的に解説します。 - Pythonの文法、基礎の基礎
今回は、Pythonの制御構造と、リスト/タプル/辞書/集合という4つのデータ型について超速で見ていく。 - Pythonで機械学習/Deep Learningを始めるなら知っておきたいライブラリ/ツール7選
最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。初回は、筆者が実業務で有用としているライブラリ/ツールを7つ紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.