学習用データ作成
【内部主要記事】
【本文】
ランダムなアルファベット小文字のリスト=学習用データ 作成。
学習用データ作成に当たって使用した関数interpretはこの本を参考にしました。
- 作者: R.ケントディヴィグ,R.Kent Dybvig,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/05
- メディア: 単行本
- 購入: 2人 クリック: 71回
- この商品を含むブログ (20件) を見る
以下、学習用データ作成プログラム
;; 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)
結果(ランダムなので毎回異なる)
*1
<<<この部分を求める>>>
データは10回の対話モデルです。GPでこの10回の対話を再現できる個体を探し、11回目の<<<この部分を求める>>>のところを出力します。これを対話における返答とみなします。
次は、各個体がこのデータにどの程度適合するかをレーベンシュタイン距離を用いて求めます。
*1:#\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