プログラミング講座(111) CSVコンバーター
久しぶりに囲碁の話に戻ります。
9路盤の棋譜を8175局作ったところまでお話しました。この棋譜を Excel で統計処理するために、CSV(コンマで区切られた値)形式に変換するプログラムを作成しました。プログラムID RGR694 で発行しました。
【図108 CSVコンバーター】
作成したCSVファイル (simulated.csv) を Excel で読み込んだのが以下の図です。
【図109 Excel に読み込んだ CSV】
ここから先は Excel の話になります。
Excel のバージョンは 2007 を使っています。読み込んだデータを、このバージョンからの新機能「テーブル」に変換しました。[挿入][テーブル]で変換できます。テーブルに Score (スコア=点数)という欄を追加しました。CSVデータには Result (結果)という欄があり、黒1目勝ちなら B+1、白1目勝ちなら W+1 となっていますが、これを黒1目勝ちなら 1、白1目勝ちなら -1 に変換します。
ここまでデータの準備をして、今度は Excel のグラフ機能で Score 毎の度数分布図を作ってみました。まず、グラフのデータを集計します。Score の範囲を区切って棋譜の数を集計しました。例えば下図の-90< Score <=-80 つまり白89目勝ちから白80目勝ちまでの範囲の棋譜が 36 局ありました。
【図110 データの集計】
この集計には COUNTIFS 関数を使いました。複数の条件でデータの件数を集計できる関数でとても便利です。
ちなみにさきほどの例でセルC4には =COUNTIFS(テーブル1[Score],$A4,テーブル1[Score],$B4) という式を入れてあります。テーブルの参照は範囲を指定せずに欄の名前が使えます。
この集計をグラフにしたのが下図です。まずは全局の度数分布図です。横軸が Score で縦軸が度数(局数)です。Score ±80 付近は相手の石をすべて取って勝った対局のもので、それなりの局数があることがわかります。
【図111 全局の度数分布図】
また、最も黒の勝率が高かった、初手が天元の横(並び)の対局の度数分布が以下のようになりました。全局の分布より少し右にずれているはずです。
【図112 初手天元並びの度数分布図】
この勝率のずれが、偶然によるものか、そうでないかを統計の手法で今後検証していきたいと思います。
| 固定リンク
「囲碁」カテゴリの記事
- ディープラーニング(2017.01.07)
- 最近のコンピュータ囲碁(2016.03.05)
- JavaScript (38) 碁盤にもなる囲碁シミュレーター(2015.10.28)
- フリーソフト紹介:囲碁クエスト(2015.08.26)
- C++ (7) CgfGoBan のインストール(2015.01.17)
「Small Basic」カテゴリの記事
- プログラミング講座 (202) 1次元セルオートマトン(2020.09.20)
- プログラミング講座 (201) パラメーター(2020.09.14)
- プログラミング講座 (200) 3次ベジエ曲線(2020.09.14)
- プログラミング講座 (199) スーパー三角関数?(2020.09.02)
- プログラミング講座 (198) スーパー楕円(2020.09.01)
「Excel」カテゴリの記事
- プログラミング講座(115) t分布による母平均の推定(2013.03.07)
- プログラミング講座(114) 勝敗でみたχ二乗検定(2013.03.03)
- プログラミング講座(113) χ二乗検定(2013.03.03)
- プログラミング講座(111) CSVコンバーター(2013.03.03)
- プログラミング講座(100) 散布図(2012.11.17)
コメント