パワポケ10 主砲の性能を乱数値を説明変数として重回帰分析してみた

パワポケ10裏サクセス バトルディッガー編の主砲の性能は0-1の乱数値24個分によって決定されます。

 

本記事では、主砲の性能(攻撃、命中、素早さ、弾数の変動値)を目的変数、武器の性能決定に使った24個の乱数値を説明変数とした重回帰分析(※今回は線形回帰)を行い、主砲の性能の決まり方や強い主砲をゲットするための乱数列の探し方を模索します。

今回はデータ数31で解析を行いました。

データについて

データの取得

起動時間と乱数消費数を把握したうえでパワポケ10 バトルディッガー編で武器を拾い、その性能を攻撃, 命中, 素早さ, 弾数の順に記載し、そのときの乱数24個分を下のように記録します。

23,12,3,7

45129 ★★ 木下 0.9855840343024195
45130 ★★ 藤本 0.8425441831778898
45131 ★★ 久保 0.9433834361503411
45132 ★★ 木下 0.9848549521457987
45133 ★★ 中川 0.5633512247505073
45134 ★★ 山口 0.24633605235551492
45135 ★★ 増田 0.8971863377044914
45136 ★★ 今井 0.8139465673218459
45137 ★★ 菅原 0.9389593532319124
45138 ★★ 谷口 0.7887563999503688
45139 ★★ 石田 0.6696396463048779
45140 ★★ 野口 0.99569119172431
45141 ★★ 千葉 0.9548581187300527
45142 ★★ 小山 0.9039617198855315
45143 ★★ 丸山 0.8010160127048829
45144 ★★ 大西 0.17479840814157938
45145 ★★ 石川 0.35724311668595615
45146 ★★ 岡田 0.4069564390072425
45147 ★★ 杉山 0.8896133470442243
45148 ★★ 岩崎 0.9723365079640414
45149 ★★ 中川 0.5671096314192896
45150 ★★ 上野 0.8777229925988091
45151 ★★ 山本 0.0695411777855829
45152 ★★ 野口 0.9920747427558051

乱数24個については、【改良版】パワポケの内部乱数観測器をPythonで実装してみたのプログラム出力をコピペしたものです。

 

これでデータが1つ分。このセットをあと30回分行えば、データ数は31になります。

 

ただ、このままだと手前の★やオート命名の名前など、データ解析に余計な部分があるのでそれを取り除くべく、下の項の「データクレンジング」をします。

データクレンジング

データ解析ができる書式等に統一します。

データ分析の前処理となる作業です。(データクリーニングとも呼びます)

 

1:乱数24個分のうち、余計な部分を取り除く

0-1の乱数値24個分だけにするべく、左側の★やオート命名の名前を削除します。やり方は例えば、

EXCELの関数で以下を入力して先頭の9文字を削除します。(参考:https://www.offinet.com/news/entry_62325.html

=RIGHT(A1,LEN(A1)-9)

その次に数字のみを取り出すべく、例えば以下を入力します。(セルの位置に注意)

=LOOKUP(10^17,RIGHT(F1,COLUMN(1:1))*1)

あとはドラッグで全31個の乱数データに適用すると、データ解析に必要な0-1の乱数値24個分が31セット取得できます。

2:主砲データをCSVから攻撃、命中、素早さ、弾数へ

23,12,3,7とコンマで区切られているものを、攻撃、命中、素早さ、弾数とします。

データ取得段階で空白区切りや改行で対応しておいた方がよかったかもしれませんが、コンマ区切りの数値(CSV)なら対応可です。(方法はググればたくさんある)

3:データを行列の形にする

結合、転置、ラベル付けetcをします。

最終的にデータを下のようにします。

攻撃	命中	素早さ	弾数		No1	    No2	    No3	    No4	    No5    	No6	    No7    	No8    	No9    	No10    	No11    	No12    	No13    	No14    	No15    	No16    	No17    	No18    	No19    	No20    	No21    	No22    	No23    	No24
23	12	3	7		0.985584034	0.842544183	0.943383436	0.984854952	0.563351225	0.246336052	0.897186338	0.813946567	0.938959353	0.7887564	0.669639646	0.995691192	0.954858119	0.90396172	0.801016013	0.174798408	0.357243117	0.406956439	0.889613347	0.972336508	0.567109631	0.877722993	0.069541178	0.992074743
19	13	0	9		0.758625791	0.935228492	0.812879155	0.831614063	0.968332075	0.116843011	0.826392693	0.932970501	0.960169551	0.989519064	0.47806211	0.24761399	0.910527395	0.83805494	0.891113743	0.181678404	0.393547654	0.764804076	0.82030015	0.908102419	0.081393393	0.104959721	0.083277584	0.435253447
21	13	1	11		0.88912043	0.852777668	0.800923473	0.712547879	0.698768016	0.996054359	0.989635897	0.480576158	0.851623839	0.816763957	0.825075326	0.967765702	0.945383818	0.809793446	0.994361975	0.920195984	0.950608579	0.940512661	0.719344327	0.758670939	0.65181531	0.215622103	0.62508959	0.872317711
18	11	3	11		0.637153321	0.977479434	0.593716613	0.913966783	0.840628065	0.324827919	0.791550258	0.937460818	0.698115459	0.568236017	0.810019468	0.973517055	0.954537214	0.004052705	0.938321597	0.434481089	0.882909255	0.941305233	0.965163559	0.988615222	0.908605556	0.926265903	0.861722381	0.924902998
20	13	1	11		0.791550258	0.937460818	0.698115459	0.568236017	0.810019468	0.973517055	0.954537214	0.004052705	0.938321597	0.434481089	0.882909255	0.941305233	0.965163559	0.988615222	0.908605556	0.926265903	0.861722381	0.924902998	0.633659624	0.979250677	0.028323954	0.41327617	0.583144188	0.783956143
22	11	2	11		0.949717826	0.943037656	0.842717349	0.653717632	0.767300974	0.901668221	0.698533176	0.906037968	0.707427286	0.876616384	0.715196811	0.981435495	0.99290326	0.82638243	0.538565479	0.804074257	0.998452416	0.958712051	0.877492644	0.770149854	0.852115711	0.490443002	0.283584027	0.572685238
23	12	0	7		0.936600246	0.945879995	0.98368707	0.926024422	0.154486633	0.51225213	0.936663909	0.995397485	0.615173426	0.75927354	0.699245752	0.926797663	0.995851799	0.973862924	0.240697496	0.118531777	0.453430483	0.031663286	0.677366346	0.613776438	0.09118533	0.00497658	0.451155717	0.331397985
22	11	2	10		0.88921673	0.926090729	0.888152483	0.960487755	0.918591852	0.970725049	0.680453776	0.999227827	0.909823947	0.92924956	0.843798476	0.439579005	0.999913554	0.64641606	0.904359853	0.907761175	0.825759752	0.729149762	0.971376455	0.835256206	0.563672582	0.077244528	0.521207307	0.58658353
23	13	1	10		0.895260007	0.683091633	0.932018126	0.789934987	0.99398473	0.933837005	0.995878396	0.910628646	0.835764372	0.810004825	0.733427503	0.965292362	0.938689607	0.956131572	0.779900677	0.975199913	0.490405715	0.817113046	0.623773556	0.880413408	0.09097949	0.858890624	0.436110813	0.069943266
23	13	0	11		0.97619436	0.877197789	0.788781947	0.976926526	0.92128982	0.962540269	0.941686617	0.961247816	0.595888294	0.531106084	0.914221246	0.895990496	0.874829303	0.860889252	0.9425245	0.689806676	0.949499149	0.946609629	0.297524137	0.310966601	0.882457453	0.676040279	0.15553956	0.628277491
22	13	2	11		0.959293502	0.368014021	0.969864316	0.560717621	0.928883483	0.823654717	0.942713418	0.71127684	0.978360853	0.854327713	0.525069641	0.956620224	0.993101821	0.921506575	0.845295378	0.965244338	0.679635495	0.135720318	0.871048657	0.140721851	0.900849584	0.926528338	0.754636624	0.57112753
23	11	1	9		0.951363351	0.889168203	0.951365813	0.806060993	0.901657889	0.984697274	0.695505547	0.959546544	0.931140089	0.814389539	0.871581091	0.989776516	0.777281511	0.658151374	0.735250634	0.902243774	0.914047956	0.894739026	0.316015526	0.990608407	0.865400425	0.953872605	0.971944451	0.901251883
22	12	2	9		0.995969457	0.870568746	0.884285144	0.900790074	0.722401704	0.886398423	0.908795596	0.975505534	0.796635201	0.748037524	0.744202119	0.998866808	0.937035274	0.7331667	0.544171413	0.846571293	0.697769559	0.877551788	0.993811111	0.667540867	0.855086563	0.602419561	0.68818379	0.604835552
24	12	2	8		0.972757279	0.92050427	0.952994774	0.823424122	0.982042461	0.573266869	0.939391098	0.853215859	0.940192109	0.919157386	0.050197307	0.697082455	0.946564748	0.944538053	0.907683418	0.473594296	0.507832481	0.189185018	0.87069216	0.951998901	0.269508362	0.069834	0.564983643	0.558252841
22	14	2	10		0.97503935	0.998434193	0.901383583	0.819843925	0.44669898	0.79194731	0.999419833	0.990829501	0.864790749	0.056649548	0.373570761	0.947126622	0.957708264	0.940771927	0.823150503	0.217920101	0.497523156	0.702287432	0.971978896	0.559487382	0.081799318	0.505808107	0.166495915	0.935616118
24	14	2	10		0.986874119	0.95833412	0.970880371	0.727472538	0.371050543	0.929919881	0.96949424	0.921441664	0.948092857	0.035067578	0.511370009	0.982112038	0.979759095	0.884764375	0.862702921	0.676165956	0.857331185	0.575184715	0.932502678	0.745896177	0.621475451	0.840202202	0.419673683	0.547314046
24	14	0	11		0.953893551	0.988262621	0.998576988	0.781587104	0.0058768	0.934257027	0.992551247	0.985606938	0.90657612	0.226712176	0.004768058	0.946583556	0.91711382	0.923361529	0.933782347	0.913973521	0.999886451	0.525046196	0.197101751	0.962575038	0.325789415	0.823105364	0.307509983	0.697947534
22	13	1	10		0.968423768	0.931473549	0.727272149	0.998878435	0.028321275	0.833204185	0.982522927	0.992550284	0.849862412	0.787135004	0.323934368	0.913852237	0.953901472	0.917508816	0.863524881	0.73701319	0.058122219	0.768545676	0.09976075	0.889439	0.991234533	0.998184738	0.738002924	0.604885848
22	14	1	10		0.927052833	0.889377148	0.864791969	0.931568314	0.937965309	0.90322225	0.975736288	0.808673014	0.983422132	0.88737183	0.88757032	0.980502981	0.933704032	0.856475694	0.840336451	0.531468978	0.725597451	0.922605468	0.992800498	0.695660018	0.008712009	0.633949103	0.317567453	0.520020795
22	14	0	9		0.91353797	0.998908674	0.932017945	0.806103952	0.883986377	0.730686768	0.942822322	0.989452066	0.99799804	0.446618273	0.559112428	0.99265315	0.793238249	0.943618263	0.977328156	0.730018174	0.777276526	0.532249166	0.33069436	0.744819113	0.206314103	0.253110654	0.964241053	0.266828247
22	14	-1	10		0.938954019	0.942968817	0.911396505	0.827647511	0.566373224	0.930178357	0.997784525	0.895598527	0.986477252	0.435484271	0.889747807	0.971687273	0.948248454	0.869186293	0.923908301	0.856031338	0.435549482	0.781420197	0.201659642	0.780966663	0.320340302	0.644489259	0.475970639	0.402167942
23	14	0	10		0.987763189	0.913308586	0.936873652	0.910702515	0.774955048	0.936769909	0.977043379	0.86846402	0.994636082	0.94538674	0.873121508	0.99909793	0.921934765	0.99893127	0.701249835	0.515995329	0.547362948	0.775739266	0.203642014	0.791182667	0.874052924	0.293958602	0.58539437	0.636263485
21	14	1	8		0.968857282	0.980546209	0.707825725	0.964217601	0.173758677	0.7730296	0.945081614	0.907583001	0.99279611	0.473832787	0.546573909	0.984563175	0.994950943	0.692142428	0.963970349	0.204818338	0.20709809	0.413879542	0.968096562	0.790530906	0.280317	0.36579605	0.212927756	0.161456773
23	13	1	8		0.911286289	0.927458262	0.992329442	0.78090246	0.519353203	0.95168787	0.857435352	0.861616919	0.945164747	0.207840639	0.946744912	0.975818786	0.920949555	0.921006627	0.850533739	0.411179274	0.0087363	0.514003812	0.925314484	0.163673666	0.685324295	0.753502874	0.072967547	0.454872718
25	3	0	4		0.996393405	0.99602635	0.998722863	0.992159514	0.963951432	0.159816245	0.221699002	0.694763046	0.962359051	0.162271978	0.075173332	0.573198051	0.476128168	0.504643532	0.760021119	0.656288125	0.606749827	0.130915467	0.030342971	0.410215496	0.481548927	0.582142944	0.970244777	0.421092771
-2	6	4	3		0.255747616	0.003585931	0.033175664	0.133757061	0.1213389	0.589915627	0.636872728	0.863857151	0.946341346	0.267904003	0.515601775	0.367481568	0.114094359	0.541937662	0.967275516	0.162701545	0.483446162	0.175348854	0.948181887	0.987206696	0.99650285	0.987050098	0.949442654	0.993088475
13	1	1	12		0.636872728	0.863857151	0.946341346	0.267904003	0.515601775	0.367481568	0.114094359	0.541937662	0.967275516	0.162701545	0.483446162	0.175348854	0.948181887	0.987206696	0.99650285	0.987050098	0.949442654	0.993088475	0.224033442	0.435215745	0.562831256	0.965351592	0.726080704	0.922261149
10	9	2	12		0.946341346	0.267904003	0.515601775	0.367481568	0.114094359	0.541937662	0.967275516	0.162701545	0.483446162	0.175348854	0.948181887	0.987206696	0.99650285	0.987050098	0.949442654	0.993088475	0.224033442	0.435215745	0.562831256	0.965351592	0.726080704	0.922261149	0.520559689	0.840416889
19	13	2	9		0.643834749	0.984126435	0.933840396	0.888171007	0.983522445	0.943103509	0.920409329	0.697328889	0.919339285	0.945869127	0.822756085	0.989561431	0.861106607	0.807910724	0.931033136	0.803308818	0.301664843	0.761332989	0.850230569	0.765513513	0.941402658	0.823973727	0.823961919	0.264145053
23	12	2	10		0.986596023	0.842593027	0.983581946	0.892109875	0.218026474	0.958914911	0.981004053	0.775772095	0.562486476	0.956487549	0.859383961	0.642280227	0.951218249	0.969124063	0.682162649	0.166619271	0.751799612	0.805619271	0.725868518	0.929478131	0.724097012	0.901452934	0.993949179	0.17937445
23	14	2	7		0.934855187	0.894803258	0.888812665	0.6166314	0.671750455	0.972233124	0.978756109	0.832557457	0.768553668	0.890822668	0.911815927	0.987184073	0.663202384	0.481042787	0.91980917	0.657352514	0.910126181	0.325814195	0.824477354	0.7742386	0.864702188	0.624156109	0.661675885	0.356747678

このデータをもとに分析をします。

重回帰分析

攻撃、命中、素早さ、弾数についてEXCELで重回帰分析をします。

やり方や参考サイトは

エクセルによる重回帰分析の仕方

Excel による重回帰分析

【秒で使える】重回帰分析をエクセルの分析ツールでやってみよう

Excelで重回帰分析(1)

あたりを参考にしてください。

結果

24個の乱数値のうち、経験上攻撃が1-6番目、命中が7-12番目、弾数が13-18番目、素早さが19-24番目のものを使っている説が有力なので、その前後の乱数値を説明変数として分析しました。

攻撃

B18, B20の値を見ると、1, 3番目の乱数の大きさが特に攻撃力決定に大きく寄与していることが分かります。

分散分析表の見方の参考は例えばこちら(https://www.netyear.net/idea/data20180117.html

命中

7番目の乱数値が大きく命中アップに寄与しています。

8, 9番目も有意に命中アップに貢献か。(p値や下限95%と上限95%の範囲を見ればOK)

弾数

13番目が大きく貢献、14-18番目も貢献しているようです。(有意かというとまだ微妙なものもある)

素早さ

19番目の貢献度が大きく、20-24番目も同じく素早さアップに貢献。

弾数と同じ感じの構成パターンですね。

再び乱数探索へ

分析結果から、係数の値を重みとした重み付き和を特徴量として一定以上の基準を満たす乱数値を探索(筆者の「パワポケ 乱数」タグのついた記事などを参照)をし、その乱数で武器を生成してみます。

結果

攻撃、命中、素早さ、弾数の順番です。(現時点で総合的に最高の性能のものは23,13,3,10)

23,6,3,11
20,8,3,10
20,14,2,11
19,13,2,10
24,12,2,11
22,13,2,10
20,14,3,10
22,14,3,10
21,12,2,11
21,13,2,11
22,12,2,9

最初の方は乱数探索(メタヒューリスティック)をするときの足切りが甘すぎたりする場面もあったりしましたが、おおむね高い水準の武器を生成できています。(特に弾数)

本記事執筆時点で総合的に最高である23,13,3,10を超えるためには

説明変数を変えて再度分析

適切な乱数値を説明変数へ追加、削除をして分析を繰り返すことで汎化性能の向上や過学習の回避を図ります。

1-24番目の乱数値で決まるのは99.9%確定なのでそれすべてでやるか、あるいは経験的な値(攻撃が1-6番目、命中が7-12番目、弾数が13-18番目、素早さが19-24番目)のみでやるかなど。

データの質、量の向上

乱数値を記録している主砲は高性能のものばっかりです。(乱数調整等をしないと現在の乱数値の把握が困難、記録およびデータ収集もできないため)

つまり、「ランダムにサンプリングしている」状態ではないということです。

できれば悪性能や普通の性能など幅広く、ランダムにデータを取りたいところでした。

F値が十分小さいので今のままでも問題ないかもしれないですが・・・

乱数探索時のパラメータ変更

上の説明変数に係数を重みづけした和の値(=目的変数)が一定以上を満たす乱数値を出力、という形で乱数探索をしていますが、その一定の基準(足切り)を厳しくする方法です。

乱数探索で足切りを厳しくするのは、現実的な探索時間や乱数調整時間を維持するのが困難なので過度にするのは難しそうなので、できればこれは最終手段にとどめたいところ。

最後に

重回帰分析で求めた係数を重みづけの値とした乱数探索によって通常時では滅多にお目にかかれない性能のものができることを確認しました。24,12,2,11や22,14,3,10ものならまだ現行の最高値23,13,3,10と張り合えるレベル。

単体のパラメータだけならそれ以上のものはいくつもありますが、総合的に超えるには今回の結果をもとに前項などの改善を続けていくことがまだ必要そうです。

 

特に強い主砲をゲットするための乱数はパワポケ10 強い主砲をゲットするための乱数まとめにあります。

23,13,3,10を超えるものを見つけた方はコメントお待ちしております。

コメント

タイトルとURLをコピーしました