Pythonコードと図で分かる平均値と標準偏差の違い――「統計」とはデータから価値ある情報を抜き出すこと「AI」エンジニアになるための「基礎数学」再入門(3)(1/2 ページ)

AIに欠かせない数学を、プログラミング言語Pythonを使って高校生の学習範囲から学び直す連載。今回から具体的に数学を学びます。統計とは、統計量とは何かを数学記号や数式、Pythonコード、図を交えて解説します。

» 2019年02月14日 05時00分 公開
[西村圭介東京ITスクール]

 AIに欠かせない数学を、プログラミング言語Pythonを使って高校生の学習範囲から学び直す本連載『「AI」エンジニアになるための「基礎数学」再入門』。

 初回は、「AIエンジニア」になるために数学を学び直す意義や心構え、連載で学ぶ範囲についてお話ししました。また前回は、「世の中にはどのようなデータがあるのか?」という部分を主に取り上げました。今回は、「それらデータをどう活用していくのか?」「活用するためにはどのような下準備が必要なのか?」というテーマを主軸としており、その基礎的な部分を解説します。

統計とは

 「統計」とは、読んで字のごとく「統(す)べて計る」ことを意味しています。

 「統べる」とは、表1のように100行あるデータを「合計」するなどして、数字を1つにまとめるイメージです。

表1 集約前のデータの例
i 顧客ID M月の購入金額 M+1月の購入金額
1 C001 1000 1500
2 C002 800 700
…… …… …… ……
100 C100 500 1300

 「計る」とは、1つにまとめた数値から「平均値」(後述)を算出するなどして、表2のように何かしらの意味や解釈につながる価値ある情報を抜き出すイメージです。

表2 表1のデータを集約した例
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番目までの要素を合計したければ、下記のように記述します。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。