2006-08-19
■[GP][scheme]学習用データ作成

【内部主要記事】
【本文】
ランダムなアルファベット小文字のリスト=学習用データ 作成。
学習用データ作成に当たって使用した関数interpretはこの本を参考にしました。
- 作者: R.ケントディヴィグ,R.Kent Dybvig,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 2人 クリック: 55回
- この商品を含むブログ (17件) を見る
以下、学習用データ作成プログラム
;; http://d.hatena.ne.jp/ufo23/20060802
(load "./random-tree.scm")
;; 書籍「プログラミング言語SCHEME」参照
;; ここでは、ランダムに作成されたプログラムを実行するのに使用
;; (applyやevalではうまくいかなかったため)
(load "./interpret.scm")
;; リストの平坦化
;; http://d.hatena.ne.jp/ufo23/20060812/1155376475
(define (flatten ls)
(cond ((null? ls) '())
((pair? ls)
(append (flatten (car ls)) (flatten (cdr ls))))
(else (list ls))))
;; 学習用データ作成
(define make-study-data
(lambda (data-num)
(let loop ((n 0) (sd '()))
(cond ((>= n data-num) sd)
(else (set! sd
(cons
(flatten
(interpret
(create-individual-program
allowable-depth
top-node-p
full-p)))
sd))
(loop (+ n 1) sd))))))
実行(学習用データ作成)
gosh> (make-study-data 10)
結果(ランダムなので毎回異なる)
((#\d)
(#\z #\f #\k #\s #\x #\i #\e #\n)
(#\t)
(#\l #\t #\v #\c #\v #\h #\w #\n #\t #\l #\x #\n #\v #\k #\p #\l #\k)
(#\p #\r #\p #\y #\g #\g #\k #\m #\h)
(#\j)
(#\c #\f #\x #\v #\l #\k #\e #\p #\s)
(#\s #\t #\l #\h #\d #\b #\y #\e #\w #\v #\n #\b #\v #\t #\v)
(#\z)
(#\h))
<<<この部分を求める>>>
データは10回の対話モデルです。GPでこの10回の対話を再現できる個体を探し、11回目の<<<この部分を求める>>>のところを出力します。これを対話における返答とみなします。
次は、各個体がこのデータにどの程度適合するかをレーベンシュタイン距離を用いて求めます。
コメントを書く
トラックバック - http://d.hatena.ne.jp/ufo23/20060819/1155983206
リンク元
- 8 http://computerchu.seesaa.net/article/22875706.html
- 7 http://d.hatena.ne.jp/keyworddiary/Scheme
- 6 http://d.hatena.ne.jp/asin/4894712261
- 5 http://ime.nu/d.hatena.ne.jp/ufo23/20060729
- 4 http://d.hatena.ne.jp/keyword/遺伝的アルゴリズム
- 4 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-26,GGLJ:ja&q=逆ポーランド型
- 3 http://d.hatena.ne.jp/keyword/Gauche
- 3 http://d.hatena.ne.jp/keyworddiary/Gauche
- 3 http://d.hatena.ne.jp/ufo23
- 3 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=AvX&q=Rによるランダムデータ作成&start=10&sa=N

