【遊戯王デュエルリンクス】合体魔神招来で竜崎祭り40ハイスコア
デッキレシピ
結果
Twitter提供のRパッケージ{AnomalyDetection}で日経平均株価の異常検知
データセット
日経平均株価のデータは、以下のサイトからダウンロードしました。2007年以降のデータをダウンロードし、結合して一つのcsvファイルを作ります。
http://k-db.com/indices/I101/1h
日付の列の処理
ダウンロード時点では"2007/01/01"のような形式で日付が入っていました。
rで日付を処理するには、決まった形式になっている方が都合が良さそうだったので、この時点でExcelの機能で整形しました。
パッケージのインストール
install.packages("devtools") devtools::install_github("twitter/AnomalyDetection") library(AnomalyDetection)
実行
パッケージとデータセットの読み込み
library(AnomalyDetection) df = read.csv("nikkei_index.csv") data = data.frame(as.POSIXlt(df[,1]),df[,4]) # 終値を利用 plot(data, xlab = "date", ylab = "ending price")
異常検知
res <- AnomalyDetectionTs(data, max_anoms=0.02, direction='both', plot=TRUE) res
本来ならば、$anomsに異常と判定された行が抽出されるのですが、今回は全て異常ではないという判定だったようです。
確かにプロット結果を見ても、ある程度自然な推移のようにも捉えられます。
【遊戯王デュエルリンクス】ワンチャン!?エクゾディア
デッキレシピ
なかなか勝率が上がらないので調整中です。
使い方
「ワンチャン!?」の効果で、四肢パーツを集めます。
【遊戯王デュエルリンクス】メテブラオートの初期手札で融合できる確率をPythonで計算 最適なデッキレシピの推定
遊戯王デュエルリンクス*1におけるレベル上げ*2などで「メテブラオート」*3を使っていますが、スキル「バランス」*4がないキャラクターだと、少なからず手札事故で融合できないまま敗北することがあります。今回は、ランダムで配布される初期手札で融合できる確率を計算することで、できる限り手札事故が起こらないデッキレシピを推定します。
現在のデッキレシピ
下図が、現在のデッキレシピです。感触として融合のための魔法カード*5が引けずに融合できないことが多いので、「バランス」を使用する場合よりも「融合」「フュージョン・ゲート」「融合賢者」の合計枚数を増やしています*6。
ただし今回、例外的に「青竜の召喚士」*7はデッキの安定化のために3枚固定で入れることにします。また「サンダードラゴン」*8は当然3枚入れるのが良いため、3枚で固定します。
現在のデッキレシピにおいて初期手札で融合できる確率
デッキレシピの定義
# deck_list deck_list = [] FUSION_CARD_NUM = 6 # 融合のための魔法カード THUNDER_DRAGON_NUM = 3 # サンダードラゴン RED_EYES_NUM = 3 # レッドアイズ METEO_DRAGON_NUM = 2 # メテオドラゴン SUMMONER_NUM = 3 # 青竜の召喚士 FUSION_SUPPORT_NUM = 3 # 融合呪印生物(指定された融合素材の片方の代わりにできるカード) card_list = {"FUSION_CARD": FUSION_CARD_NUM, "THUNDER_DRAGON": THUNDER_DRAGON_NUM, "RED_EYES": RED_EYES_NUM, "METEO_DRAGON": METEO_DRAGON_NUM, "SUMMONER": SUMMONER_NUM, "FUSION_SUPPORT": FUSION_SUPPORT_NUM} def deck_list_init(): for card in card_list: for i in range(card_list[card]): deck_list.append(card)
初期手札の配布
先攻の場合は初期手札が4枚、後攻の場合は5枚です。先攻か後攻かはランダムで決定します。
def first_hand_init(): if np.random.rand() > 0.5: first_hand_num = 4 else: first_hand_num = 5 return random.sample(deck_list, first_hand_num)
融合できるか否かの判定
def can_fusion(first_hand): if "FUSION_CARD" not in first_hand: return False elif "THUNDER_DRAGON" in first_hand: return True elif "RED_EYES" in first_hand: if ("METEO_DRAGON" in first_hand) or ("FUSION_SUPPORT" in first_hand): return True else: return False elif "METEO_DRAGON" in first_hand: if ("RED_EYES" in first_hand) or ("FUSION_SUPPORT" in first_hand): return True else: return False else: return False
N回デュエルし、初期手札で融合できる確率を計算
def duel(): deck_list_init() first_hand = first_hand_init() return can_fusion(first_hand) def calc_prob(): DUEL_NUM = 100000 duel_result = [] for duel_index in range(DUEL_NUM): duel_result.append(duel()) print("Fusion Success Probability:" + str(sum(duel_result)/DUEL_NUM)) calc_prob()
出力
現在のデッキレシピにおいて、初期手札で融合できる確率は約59%でした。乱数を使っているので、多少の数値は変動します。
Fusion Success Probability:0.59219
デッキレシピの調整
続いて、上記の「デッキレシピの定義」に当たる部分をいろいろ変えながら、確率の変化を探索します。ここでもコードを書こうかと思ったのですが、あまりパターンがなく何を増減するかが若干複雑でコードを書く方がむしろ大変かと思ったので、手作業で判断しました。
最初に、融合のための魔法カードの枚数を4~9枚で変動させてみました。上述したように「青竜の召喚士」と「サンダードラゴン」は3枚固定し、その他のカードをバランスを考えながら減らしています。
FUSION_CARD_NUM | 4 | 5 | 6 | 7 | 8 | 9 |
THUNDER_DRAGON_NUM | 3 | 3 | 3 | 3 | 3 | 3 |
RED_EYES_NUM | 3 | 3 | 3 | 2 | 2 | 2 |
METEO_DRAGON_NUM | 3 | 3 | 2 | 2 | 2 | 2 |
SUMMONER_NUM | 3 | 3 | 3 | 3 | 3 | 3 |
FUSION_SUPPORT_NUM | 4 | 3 | 3 | 3 | 2 | 1 |
Fusion Success Probability | 0.507 | 0.561 | 0.592 | 0.601 | 0.604 | 0.591 |
表の一番下の列の結果から、融合のための魔法カードの数は7、8枚が良さそうだと分かります。そこで、融合のための魔法カードの数が7、8枚のパターンを詳細に調べてみます。
FUSION_CARD_NUM | 7 | 7 | 7 | 8 | 8 | 8 | 8 |
THUNDER_DRAGON_NUM | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
RED_EYES_NUM | 3 | 3 | 2 | 3 | 3 | 2 | 2 |
METEO_DRAGON_NUM | 3 | 2 | 2 | 3 | 2 | 2 | 1 |
SUMMONER_NUM | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
FUSION_SUPPORT_NUM | 1 | 2 | 3 | 0 | 1 | 2 | 3 |
Fusion Success Probability | 0.591 | 0.602 | 0.601 | 0.572 | 0.591 | 0.604 | 0.590 |
この結果、表の右から2番目の列の組み合わせが最も確率が高そうだという結果が出ました。
おわりに
こういう結果が得られたのは良いのですが、僕は「フュージョン・ゲート」を2枚、「融合賢者」を1枚しか持っていないので、自分で計算した最適なデッキレシピが組めません……。あと1枚ずつ手に入れたい(┐「ε:)_
【遊戯王デュエルリンクス】モンスター5枚のバランスデッキ
スキル「バランス」によって、初手に必ずモンスター1枚が来ることを前提にしたデッキ。プレイングの上手さに応じて勝率が変動する印象。プレイヤースキルが試される感じで、使っていて楽しい。
【遊戯王デュエルリンクス】合体魔神招来でモクバ40ハイスコア
デッキレシピ
最初にゲート・ガーディアンを出し、後はデッキを0枚にする。
【論文メモ】Extractive Summarization by Maximizing Semantic Volume
論文名
Dani Yogatama, Fei Liu, Noah A. Smith: Extractive Summarization by Maximizing Semantic Volume, The 2015 Conference on Empirical Methods on Natural Language Processing(EMNLP 2015), 2015.09.
どんなもの?
文章要約タスクにおいて、文章中の各文を特徴空間に埋め込み、文の集合で作られる容量を最大化するように文を選択する手法を提案している。
先行研究と比べてどこがすごい?
特定のデータセットにおいて、先行研究よりも高い性能を示した。
技術や手法のキモはどこ?
特徴空間内の容量を、文章要約に向けた新しい目的関数に設定している点。
どうやって有効だと検証した?
特定のデータセットにおいて、先行研究と提案手法を用いて性能を評価した。
議論はある?
実行時間に関する言及あり。提案手法はsingular value decomposition (SVD)を計算するため、前処理に時間がかかる。
次に読むべき論文は?
―――