Processing math: 26%

2012年11月23日金曜日

ヒストグラム

 ビジネスとしてサービスを提供する場合、顧客個人の行動を知る必要はあまりありません。もちろん、顧客が10人しか居なくて、それぞれの顧客への販売額が1千万円とかならば、顧客個人の行動が重要になるでしょう。しかし、単価が何千円とか、何百円とかの商品やサービスを販売するならば、顧客の数は多くなり、一人ひとりの行動を把握することは事実上できません。そこで、集団としての行動パターンを統計的に把握することになります。
 例えば、あるコンビニで挽きたてコーヒーの販売額(一週間)は顧客毎に調べると、下表のようになったとします。すべての顧客の購買記録はポイントカードの導入によって残されていると仮定します。顧客は全部で1000人ですね(あくまで仮の人数です)。顧客は、一週間にいくらコーヒーを買っているでしょうか。まず、横軸に顧客番号をとって、縦軸に売上額をプロットしてみます。顧客毎に売上額をプロットしてみても、400円以上の売上げがある顧客は少ないということはわかりますが、売上額が300円以下の顧客の状況がどうなっているかはよくわかりません。それに、どのくらいの顧客がコーヒーにいくら使っているのかもわかりません。
 そこで、売上額に対する顧客の数を集計します。これは、ヒストグラムと呼ばれます。これで、週当たりコーヒーをいくら購入しているかの様子が知れます。これを見ると、700人を超す顧客が100円、もしくは200円ということがわかります。このコンビニではコーヒーを100円で販売していますから、一人1杯か2杯ということです。3杯以上飲む人は少ないのですが、500円購入している顧客が多いのはどうしてでしょうか。実は、このコンビニではコーヒー1杯に対して1つスタンプが付いて、5つスタンプが貯まると、コーヒー1杯がタダになるというサービスを実施しています。400円購入した人はあともう1杯、300円購入した人はもう2杯飲んで、タダのコーヒーにありつこうと考えたとしても不思議ではありません。

顧客と売上額

顧客に対する売上額

売上額に対する顧客数

2012年11月13日火曜日

データのバラツキ

 何かデータを集めたとして、その数値が色々な値を取っていれば、バラツキが存在していることになります。一見無意味なバラツキの中にも、有用な情報が潜んでいるかも知れません。このバラツキの様子を調べるのが、データ分析です。
 今、男性女性をそれぞれ100人集めてきて、コインを投げてもらいました。男性女性には背の高い人もいれば、低い人もいて、背の高さはばらばらでしょう。また、コインは「表」と「裏」にばらつくでしょう。この場合、男女間の背の高さには差が現れると予想されますが、コインの「表」が出る割合は男女間で大きな差が生じるとは考えにくいです。男女間の差に対して、背の高さは有益な情報を与えますが、「表」の割合にあまり意味は無いでしょう。
 男女の身長の分布がわかっていたとすれば、165cmの人が男か女か、どちらの確率が高いかは予想がつきます。一方、コインの「表」か「裏」かの確率は、それぞれ12になるでしょう。これを知ったとして、その情報量(の期待値)はI=Σni=1pilogpi=12log1212log12=1となります。これは不確定な状況を確定するのに必要な平均情報量と考えることができ、この不確定度を表す量がエントロピーです。もし、表だけ、あるいは裏だけしか出ないコインがあったとして、この場合のエントロピーは0になります。表(あるいは裏)が出ることが決まっていますから、不確定度は0です。表か裏か、どちらが出るかわからない場合に、不確定度が最大になります。
 上記の話は常識的に考えるとそうなるというだけで、数値で表されたわけではありません。しかし、どんな値がどんな割合で生じているかわかれば、その様子が把握できたと言って良いでしょう。バラツキの様子は、分布と呼ばれます。分布を調べるには、図にしてみれば一目瞭然です。
男女の身長の分布
男女の裏表の分布

2012年11月8日木曜日

正規分布

 100人の人が集まったとき、背の高さが全員全く同じということはあり得ません。確率的な言い方をすれば、その確率は相当低いと言えます。普通は、背の高い人もいれば、低い人もいて、背の高さはばらばらでしょう。実際に測って、分布図にしてみると、以下のようになりました。 図:背の高さの分布

 横軸に身長を、縦軸に度数をとりました。バラツキはありますが、170cm付近に集中している分布になっていることが見て取れます。近似曲線を引けば、赤線のようになるでしょう。実は、この赤線は正規分布になっています。自然現象や社会現象など、複雑な現象は、この正規分布で近似できると言われています。  正規分布は、平均と分散が決まれば、分布が決まります。平均をμ、分散をσ2とすれば、正規分布を表す関するf(x)は、次式のようになります。
f(x)=12πσ2exp{(xμ)22σ2}
πは円周率で、expは指数関数を表します。平均0、分散1の正規分布は、標準正規分布と呼ばれます。
 横軸は身長を何cm間隔かで区切って、その範囲の身長の人の数が縦軸になっています。人数が多くなっている身長の範囲では、その身長の人が存在しやすいことを示しています。つまり、身長の範囲に対する人数は、その起こりやすさと考えることができます。実は、この身長の範囲に対する人数で表される面積は、確率になります。身長の範囲を限りなく小さくしていったとき、この確率は確率密度になります。このとき、正規分布の赤線は確率密度関数と呼ばれます。
 確率変数Xが連続的な値をとり、αの範囲にあれば、その確率は次式で表されます。
\begin{equation} P(\alpha \leqq X \leqq \beta) = \int ^{\beta} _{\alpha} f(x) dx \end{equation} f(x)は、Xの確率密度関数です。

2012年11月5日月曜日

平均と分散

 データの代表値は、例えば、平均値でしょう。今、人が100人居て、身長を測ったとします。この集団の特徴を表す代表的な値として、身長の平均値は有用でしょう。100人の身長をx_1x_2、...、x_{100}とおけば、平均値\bar{x}は次式であらわされます。
\begin{equation} \bar{x} = \frac{x_1 +x_2 +...+x_{100}}{100} \end{equation}
 でも、身長の平均値が175cmだったとして、100人全員の身長が偶然175cmだったのと、身長が100cmの人が半数、250cmの人が半数だったのとでは、意味合いが異なります。つまり、平均値だけでは情報として不十分であり、どのようにばらついているかが重要な情報になります。ばらつき具合を示す量として、分散があります。分散は、各データが平均値からどの程度ずれているかの平均を示します。分散\sigma^2は、次式で表されます。
\begin{equation} \sigma^2 = \frac{(x_1 -\bar{x})^2 +(x_2 -\bar{x})^2 +...+(x_{100} -\bar{x})^2}{100} \end{equation}
 人数を一般化して、n個の数値データが得られたとすれば、その平均と分散は、次式であらわされます。
\begin{equation} \bar{x} = \frac{x_1 +x_2 +...+x_{n}}{n} \end{equation}
\begin{equation} \sigma^2 = \frac{(x_1 -\bar{x})^2 +(x_2 -\bar{x})^2 +...+(x_{n} -\bar{x})^2}{n} \end{equation}

2012年11月1日木曜日

識別部

 識別部は、パターンがどのクラスに属するかをその特徴に基づいて判別します。このとき、パターンの特徴が識別辞書と照合されます。もし、識別辞書に、パターンの特徴の組み合わせが全て格納されていて、その組み合わせに対してクラスのラベルが割り当てられていれば、パターンは識別辞書の中のどれかに一致するはずです。そのパターンに付けられたクラスのラベルから、パターンを識別することができるでしょう。
 でも、このやり方、本当に実現できるのでしょうか。パターンの特徴の組み合わせは膨大な数になりますから、個々のパターンにクラスのラベルを割り当てる作業には膨大な時間がかかります。記憶容量だって必要です。「前処理部:パターン化の方法は重要」のところで、数字「2」のパターン化に10 \times 10のメッシュを使いました。特徴の組み合わせは2^{100}通りありますから、全てのパターンを識別辞書に格納することは現実的ではありません。
 そこで、代表的なお手本となるパターンだけ格納しておきます。つまり、そのクラスに属するパターンの典型例となる特徴の組み合わせを記憶しておくわけです。このようなパターンを、プロトタイプといいます。クラスはm種類あって、それぞれ\omega_1\omega_2...\omega_mと表します。プロトタイプは各クラスに一つずつ用意されたとして、図1のように{\mathbb p_1}{\mathbb p_2}...{\mathbb p_m}とします。特徴空間上で近接しているパターン同士はその特徴が似ているという意味ですから、同じクラスに属すると考えてよいでしょう。
図1:特徴空間上のクラスとプロトタイプ

 さて、識別したいパターンの特徴ベクトルが{\mathbb x}だったとして、この{\mathbb x}がどのクラスに識別されるか判定するのが識別部の役割です。{\mathbb x}{\mathbb p_i}との距離の近いクラス\omega_iに識別する方法(最近傍法)などがありますが、これは後に詳しく説明します。
 もう一つ、重要な問題があります。それは、プロトタイプをどう決めたらよいかということです。プロトタイプは、代表的なお手本となるパターンと書きました。手書き文字ならば、習字の先生が書いた模範がお手本になるかも知れません。しかし、文字認識ではどの人が書いた「あ」でも、「あ」と認識されるのが重要であり、美しさは必要ありません。そのため、通常は多くの人が書いた文字の平均(あるいは重心)をお手本とします。