前回は、100人の学生のスコアを求めて、スコアの昇順に3つのグループに振り分ける方法を試した。振り分け方は、単純に、3つのグループに属する学生の少ないほうからである。前回の終わりに、各インデックスの平均値を考慮したものを考えてみると書いたが、その前に、一つ確認しておかなければならないことを忘れていたので、今回はその確認をしようと思う。

何を確認し忘れたかというと、全体のパターン数だ。もし、全体のパターン数が少なければ、全体のパターンから計算して平均的な分類方法を導き出せばよい。

しかし、先に結論を述べると、この方法では無理である。これを高校で習う数学の「組み合わせ」と「対数」を用いて確認してみる。

組み合わせの記法として、C(10,2)=10*9/2*1=45とし、対数logは底10の常用対数であるとする。

前回と同様に、具体例として、100人の学生を3つのクラスに分ける場合について見ていく。
この場合、全体のパターン数は

  1. 最初に100人の学生のうち、34人を選んでグループ1とし、
  2. 残った66人の学生のうち、33人をグループ2とし、
  3. さらに残った33人の学生をグループ3とし、
  4. グループ2とグループ3は区別されないことを考慮

すれば求めることができる。つまり、全体のパターン数TはC(100,34)×C(66,33)×C(33,33)÷2通りである。
これを実際に求めても良いのだか、イメージがつきにくいので、全体のパターン数の桁数を求めてみる。
log(C(100,34)×C(66,33)×C(33,33)÷2)
=log(C(100,34))+log(C(66,33))+log(C(33,33))-log(2)
≒26.76+18.85+0-0.30
=45.31
よって
45log10<log(T)<46log10
となるが、常用対数は単調増加なので、
10^45<T<10^46
が成り立つ。ゆえに、Tは46桁の数値であることが分かる。

言い換えると、全体のパターン数は、1000000000000000000000000000000000000000000000より大きいのである。

仮に、1秒間に100万パターン計算できたとして、これを日数に直すと約2.89×10^35日かかるのである。

全体のパターン数を調べ上げれば、真の分類方法が分かるのであるが、現実的な時間内で求めることは現状不可能なので、真の分類方法に近い、より精度の高い分類方法を実験的に考察して行こうと思う。

関連する記事

  • Ubuntuに日本語係り受け解析器CaboChaをインストールする手順Ubuntuに日本語係り受け解析器CaboChaをインストールする手順 日本語のテキストデータを解析する際に、係り受けを抽出したいときがある。係り受けを行うことができるフリーのソフトウェアの一つにCaboChaがある。CaboChaは, Support Vector […]
  • MySQL データベース内のカラム数を確認する方法MySQL データベース内のカラム数を確認する方法 MySQLまたはMariaDBのデータベース内のカラム数を確認する方法をお伝えします。 サンプルデータベースを次のように準備します。 # データベース作成 CREATE DATABASE sample_database; # データベース指定 use sample_database; # テーブル作成 CREATE TABLE […]
  • R言語 CRAN Task View:統計遺伝学R言語 CRAN Task View:統計遺伝学 CRAN Task View: Statistical Geneticsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Giovanni Montana Contact: g.montana at […]
  • 顧客満足度調査から重要な改善点を導く方法顧客満足度調査から重要な改善点を導く方法 顧客満足度調査とは、顧客に対して提供している商品やサービスに対して、顧客がどれだけ満足しているか、または不満を持っているか、満足している点はどこか、不満を持っている点はどこかなどをアンケートなどにより調査することだ。 顧客満足度調査の結果は、各項目ごとに平均値を出したり、棒グラフやレーダーチャートにすることが多い。 もし、あなたが顧客満足度調査の結果を見て、「ある […]
  • TensorFlow チュートリアルMNIST For Beginnersを試してみるTensorFlow チュートリアルMNIST For Beginnersを試してみる TensorFlowのチュートリアルMNIST For ML Beginnersを試してみる。 プログラミングの世界では、最初に「Hello World」と表示される非常に小さいプログラムを書くことが伝統となっている。 機械学習では、この「Hello […]
平均的に分類する方法の考察(2)