iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 15
0
AI & Data

GA Note - 基因演算法的世界系列 第 15

【Day15】GA with you - R Package mcga R套件mcga (2)

延續昨天的壯舉吧~~
(明明沒幹嘛)
今天放颱風假噎~~~
但是更新還是得做滴
超害怕哪天自己忘記更新
就慘烈失敗...


今天繼續介紹 mcga 寶寶
對於使用上有不懂的都歡迎底下留言告訴我


mcga套件

R Documetation : https://www.rdocumentation.org/packages/mcga

番外篇

昨天發完之後就覺得哪邊少介紹了
就是在用範例程式的時候
會發現 print(m$population[1,])
這是啥鬼????
m 好像有印象 剛剛上面跑的結果
population 這個也有印象 (畢竟已經到了Day15 前面不知道出現幾萬遍了)
那只有這些資訊可以知道嗎???
NO~ NO~ NO~
還有更多小秘密你不知道而已
當你在R Console中輸入 m
你會發現你的頁面爆棚的多啊
我把我的結果分享給大家
(相信有些人只是看看而已,但是可能需要滑一下版面呦~~)

> m
$population
               [,1]         [,2]     [,3]         [,4]         [,5]
  [1,] 3.958119e-01 1.549891e+01 777.0356 7.777070e+03 7.777600e+04
  [2,] 3.801869e-01 1.549892e+01 777.0356 7.777066e+03 7.777600e+04
  [3,] 3.802479e-01 1.549892e+01 777.0356 7.777074e+03 7.777600e+04
  [4,] 3.801874e-01 1.549892e+01 777.0356 7.777074e+03 7.777600e+04
  [5,] 3.801869e-01 1.549891e+01 777.0356 7.777070e+03 7.777600e+04
  [6,] 3.801869e-01 1.549891e+01 777.0356 7.777070e+03 7.777600e+04
  [7,] 3.802479e-01 1.549891e+01 777.0356 7.777078e+03 7.777600e+04
  [8,] 3.801259e-01 1.549891e+01 777.0356 7.777078e+03 7.777600e+04
  [9,] 3.958119e-01 1.549695e+01 777.0356 7.777078e+03 7.777600e+04
 [10,] 3.801874e-01 1.549891e+01 777.0356 7.777066e+03 7.777594e+04
...
[190,] 3.802479e-01 1.499891e+01 777.0356 7.521070e+03 7.777600e+04
[191,] 3.802484e-01 1.499891e+01 777.0356 7.521066e+03 7.777600e+04
[192,] 3.801263e-01 1.499891e+01 777.0356 7.521066e+03 7.777600e+04
[193,] 3.802479e-01 1.450086e+01 776.9106 7.521074e+03 7.777600e+04
[194,] 3.958729e-01 1.499891e+01 777.0356 7.777074e+03 8.187200e+04
[195,] 3.801874e-01 1.499891e+01 776.9106 7.777074e+03 7.368000e+04
[196,] 3.958119e-01 1.499891e+01 777.0356 1.186687e-01 7.777600e+04
[197,] 3.801869e-01 9.829689e+05 777.0356 7.777074e+03 7.777600e+04
[198,] 3.801874e-01 1.499891e+01 777.0356 5.096778e+08 7.777600e+04
[199,] 3.801869e-01 1.499695e+01 777.0356 7.777074e+03 5.097128e+09
[200,] 3.958119e-01 9.829689e+05 777.0356 7.777078e+03 5.097128e+09

$costs
  [1] 3.827006e+03 3.827211e+03 3.827211e+03 3.827212e+03 3.827213e+03 3.827213e+03
  [7] 3.827213e+03 3.827215e+03 3.827247e+03 3.827341e+03 3.827453e+03 3.827498e+03
 [13] 3.888755e+03 3.888756e+03 3.888756e+03 3.888756e+03 3.888756e+03 3.888756e+03
 [19] 3.888756e+03 3.888757e+03 3.888757e+03 3.888757e+03 3.888757e+03 3.888757e+03
 ...
[187] 4.915240e+03 4.977491e+03 5.978970e+03 6.938924e+04 6.939124e+04 6.939125e+04
[193] 6.944926e+04 1.677291e+07 1.678930e+07 6.048377e+07 9.660765e+11 2.597635e+17
[199] 2.597992e+19 2.597992e+19

$popsize
[1] 200

$chsize
[1] 5

$crossprob
[1] 1

$mutateprob
[1] 0.01

$elitism
[1] 1

$minval
[1] 0

$maxval
[1] 1e+09

$maxiter
[1] 2500

從上面漏漏長的結果可以看到
一開始我們所設定的參數
popsizechsizecrossprobmutateprobelitismminvalmaxvalmaxiter
以及populationcost的結果
像是我們想要看到前10筆適應程度的話就可以使用

> m$costs[1:10]
 [1] 3827.006 3827.211 3827.211 3827.212 3827.213 3827.213 3827.213 3827.215 3827.247
[10] 3827.341

知道適應程度卻不知道其對應的染色體
那我們也可以使用下面這個方式才取得

> m$population[1:10,]
           [,1]     [,2]     [,3]     [,4]     [,5]
 [1,] 0.3958119 15.49891 777.0356 7777.070 77776.00
 [2,] 0.3801869 15.49892 777.0356 7777.066 77776.00
 [3,] 0.3802479 15.49892 777.0356 7777.074 77776.00
 [4,] 0.3801874 15.49892 777.0356 7777.074 77776.00
 [5,] 0.3801869 15.49891 777.0356 7777.070 77776.00
 [6,] 0.3801869 15.49891 777.0356 7777.070 77776.00
 [7,] 0.3802479 15.49891 777.0356 7777.078 77776.00
 [8,] 0.3801259 15.49891 777.0356 7777.078 77776.00
 [9,] 0.3958119 15.49695 777.0356 7777.078 77776.00
[10,] 0.3801874 15.49891 777.0356 7777.066 77775.94

但是這樣還是太不直觀了
還要一筆一筆對照
我們就把兩個矩陣合併
這邊一樣希望看到前10筆的適應程度(cost)和其對應的染色體
我們可以使用cbind 來根據column(c)綁住(bind)兩個矩陣
這樣就可以一目瞭然看到相對應的資料
也可以發現越來越趨向某結果

> cbind(m$costs[1:10],m$population[1:10,])
          [,1]      [,2]     [,3]     [,4]     [,5]     [,6]
 [1,] 3827.006 0.3958119 15.49891 777.0356 7777.070 77776.00
 [2,] 3827.211 0.3801869 15.49892 777.0356 7777.066 77776.00
 [3,] 3827.211 0.3802479 15.49892 777.0356 7777.074 77776.00
 [4,] 3827.212 0.3801874 15.49892 777.0356 7777.074 77776.00
 [5,] 3827.213 0.3801869 15.49891 777.0356 7777.070 77776.00
 [6,] 3827.213 0.3801869 15.49891 777.0356 7777.070 77776.00
 [7,] 3827.213 0.3802479 15.49891 777.0356 7777.078 77776.00
 [8,] 3827.215 0.3801259 15.49891 777.0356 7777.078 77776.00
 [9,] 3827.247 0.3958119 15.49695 777.0356 7777.078 77776.00
[10,] 3827.341 0.3801874 15.49891 777.0356 7777.066 77775.94

明天依然會繼續用這個範例講解
到這邊有個小小問題
不知道有沒有人發現了
期待明天有人發現他~~~
如果有發現的朋友們在下方留言
讓我知道其實有人有發現他的問題在哪邊
我們明天見~~~

今天的程式碼依舊會放到Github
Command: click
Result: click


相關資料來源:
R Documetation : https://www.rdocumentation.org/packages/mcga


上一篇
【Day14】GA with you - R Package mcga R套件mcga (1)
下一篇
【Day16】GA with you - R Package mcga R套件mcga (3)
系列文
GA Note - 基因演算法的世界30

尚未有邦友留言

立即登入留言