Why Nostr? What is Njump?
2025-01-26 11:02:14

UGO on Nostr: ...

この命令で本当にANFISを使った階層的ファジィ推論システムを作ってくれるだろうか。。。

以下のようなカラムを持つデータがあります。csvファイルとして提供されています。
0 gameId int ゲームID
1 blueFirstBlood int ゲームの最初のキル。青チームが最初のキルを行った場合は1、それ以外の場合は0
2 blueKills int 青チームによって殺された敵の数
3 blueDeaths int 青チームの死亡者数
4 blueAssists int 青チームのキルアシストの数
5 blueEliteMonsters int 青チームによって殺されたエリートモンスターの数(ドラゴンとヘラルド)
6 blueDragons int 青チームによって殺されたドラゴンの数
7 blueTotalGold int 青チームの得たゴールド合計
8 blueTotalExperience int 青チームの得た経験値合計
9 blueWins int 目的変数(青チームが勝った場合は1、それ以外の場合は0。)

これに対して、階層的ファジィ推論を用いて、blueWinsの予測をしたいです。

それぞれのファジィ推論モジュールには、ANFISを使う予定です。
以下のような構成にするつもりです。

モジュールは以下の4つ存在します。
1.青チームの能力推定モジュール
2.青チームの戦況判定モジュール
3.青チームの勝率推定モジュール

1の入力としては、
・blueFirstBlood(メンバーシップ関数の形状は三角形。メンバーシップ関数は2つ。先制した、か先制されたかの2つ。)
・blueAssists(メンバーシップ関数の形状は三角形。メンバーシップ関数は2つ。少ないか多いかの2つ。)
・blueEliteMonsters(メンバーシップ関数の形状は三角形。メンバーシップ関数は2つ。少ないか多いかの2つ。)
です。

1の出力は1次元で、[0,1]の範囲内とします。この出力は、青チームの能力を表し、0に近づくほど能力がなく、1に近づくほど能力があるということです。
(メンバーシップ関数の形状は三角形、個数は3つ。低い、まあまあ、高いの3つ。)

また、1の初期ファジィルールは以下の通りです。
1.blueAssistsが多く、blueEliteMonstersが多く、blueFirstBloodが先制した、ならば、青チームの能力は高い。
2.blueAssistsが少なく、blueEliteMonstersが少なく、blueFirstBloodが先制された、ならば、青チームの能力は低い。


2の入力としては、
・(blueKills-blueDeaths)(メンバーシップ関数の形状は三角形。メンバーシップ関数は3つ。負け、互角、勝ちの3つ。)
・blueTotalGold(メンバーシップ関数の形状は三角形。メンバーシップ関数は2つ。少ない、多いの2つ。)
・blueTotalExperience(メンバーシップ関数の形状は三角形。メンバーシップ関数は2つ。少ない、多いの2つ。)

です。

2の出力は1次元で、[0,1]の範囲内とします。これは、青チームの戦況を表し、0に近づくほど戦況不利で、1に近づくほど戦況有利ということです。
(メンバーシップ関数の形状は三角形、個数は3つ。不利、互角、有利の3つ。)

また、2の初期ファジィルールは以下の通りです。
1.blueKills-blueDeathsが勝ちで、blueTotalGoldが多く、blueTotalExperienceが多いなら、戦況は有利
2.blueKills-blueDeathsが負けで、blueTotalGoldが少なく、blueTotalExperienceが少ないなら、戦況は不利
3.blueKills-blueDeathsが互角で、blueTotalGoldが少なく、blueTotalExperienceが多いなら、戦況は互角
4.blueKills-blueDeathsが互角で、blueTotalGoldが多く、blueTotalExperienceが少ないなら、戦況は互角


3の入力としては、
・1の出力(青チームの能力)
・2の出力(青チームの戦況)
です。
3の出力は1次元で、[0,1]の範囲内とします。これは、青チームの勝敗を表し、0に近づくほど敗北に近く、1に近づくほど勝利に近いということです。
(メンバーシップ関数の形状は3角形、個数は3つ。負け、互角、勝ちの3つです。)

また、3の初期ファジィルールは以下の通りです。
1.青チームの能力が高く、青チームの戦況が有利ならば、勝利
2.青チームの能力が高く、青チームの戦況が不利ならば、互角
3.青チームの能力がまあまあで、青チームの戦況が互角ならば、互角
4.青チームの能力が低く、青チームの戦況が有利ならば、互角
5.青チームの能力が低く、青チームの戦況が不利ならば、敗北


このような構成のANFISをファジィ推論モジュールとして使い、
trainというコマンドを与えられると、指定したcsvファイルから上記データを読み込んで各ANFISの学習を行い、
runというコマンドを与えられると、指定したcsvファイルから、blueWins以外のデータを読み込み、それぞれのデータに応じたblueWinsの値を推定し、四捨五入する
ようなプログラムを実装してください。





Author Public Key
npub1yvu4hns6rrl9ladau9fle4r7e5wdvmngv6zdl5k0e0vl4lfstjesxtv74p