【Animal Crossing】Kaggleのあつまれ どうぶつの森データセットで遊んでみた

Kaggle
しぃたけ
しぃたけ

あつ森未プレイの自分が、あつ森のデータを解析したので記録します。

背景

最近、Nintendoから発売されている「あつまれ どうぶつの森」が大人気なようで、周りでプレイしている方がたくさんおられます。定額給付金で買ったという方も多いのではないでしょうか?

ちなみに自分は全くプレイしておりません。

Switchすら持ってません。



そんなこんなで、周りの会話についていけなくて困っていたところ、Kaggleでこんなデータセットを発見しました。

Animal Crossing New Horizons Catalog
A comprehensive inventory of ACNH items, villagers, clothing, fish/bugs etc


会話についていけてなかった自分も、このデータを解析したらあつ森のことを知った風に話せるかと思い、解析してみました。

自分みたいにあつ森の話についてこれない方で知ったかぶりしたい方、ぜひご覧ください。



データセット

データセット内容

あつ森内で取得できるアイテムについてのデータとなっていて、全30テーブル存在します。

データの内容は、例えばfish(魚)のデータテーブルであれば

魚の種類、売値、取得できる(釣れる?)場所、時間などの情報が載っています。



解析するデータ

30種類のデータテーブルを全て解析するのは時間かかるので、今回は「houseware(家庭用品)」のデータを対象に解析しようと思います。

選定理由は、n数、カラム数がほかに比べて多かったため解析し甲斐があると考えたためです。(n数=3275、カラム数=32)

データの内容

データの内容としては、

ベッド、ランプなどの家具のデータが中心で、各項目に対しての 塗装のバリエーション、売値、買値、サイズ、入手場所 などのデータがそろってます。

詳細に書こうとおもいましたが、量が多いので生データをご確認ください。

解析① Buy(買値)の解析

データの観察

まずは、データのインポートをしていきます。

データを観察すると、アイテムごとではなく、色違い、模様違いのアイテムも1つのアイテムとして登録されています。

目的変数には、「Buy(買値)」のデータを用いて、値段が高いアイテムと安いアイテムを決める要素について調べてみたいと思います。

目的変数の加工

まずは、目的変数のBuyのヒストグラムを作って分布を確認します。

また、前項のテーブルを見てみると、目的変数のBuyの中に、「NFS」というデータが含まれていることがわかります。

これは「Not For Sale」の略で非売品を表すものであるので、省いてからヒストグラムを作成します。

Buyのヒストグラム

ヒストグラムを見ると、0~10000 円(金額の単位あってるかは不明)のレンジに大きな山があり、それ以降の金額が高いエリアにもぽつぽつデータが存在するような分布となってます。

分布が正規分布していないので、エリアを区切るビニングの処理で、0~10000の価格が安いエリアと、10000以降の価格が高いエリアに分割していきます。

出力結果

「Buy-bin」のカラムが追加され、価格が高い、安いエリアに分割されました。

欠損値の補間

欠損値を確認します。

「Body Title」「Miles Price」はほとんどの値が欠損値だったので、特徴量から外します。

欠損値があるデータで特徴量には使えそうなの「Pattern」「Pattern Title」「Kit Cost」の欠損値を埋めていきます。

欠損値の補間終了しました。

特徴量と、目的変数を設定して、ラベルエンコーディングで離散化いきます。

目的変数は、前項で作成した「Buy-bin」を利用します。選んだ特徴量は下記の通りです。

特徴量作成終了です。

feature importance

選んだ特徴量のどれが効いているか、feature importanceを利用して確認します。

feature importance

「Sell(売値)」の影響度が極端に高く、「Kit Cost」「HHA Concept 1」などが続いています。

「Sell(売値)」については「Buy(買値)」によって決まっている値な気がしますが、視覚化して確認してみましょう。

Buyと特徴量の関係

最後に、目的変数の「Buy」と重要度の高かった6つの特徴量との関係をグラフ化していきます。

グラフ化の方法ですが、int,floatの数値データの場合は、2変量の線形グラフで表し、object変数の場合は平均値のグラフ化する方法で図示します。(本来なら分布、分散なども同時に知りたいので平均値だけでは不十分ですが、簡単のためこうします。)

「Sell」については、予想通り「Buy」と1対1の関係でした。買値の4分の1が売値になるという設定みたいですね。

次に影響度が高かった「Kit Cost」は、値が0のものを除けばほとんどBuyの値とKitCostの値が比例関係にあります。(KitCostの欠損値を0で補間してしまったのがよくなかったみたいです。)

残りは、HHA Concept 1の「music」、Sizeの「1.5×1.5」、HHA Concept 2の「expensive」「zen-sytle」などの特徴を持っているとBuyの値が高くなる傾向があるみたいです。


解析② Sell(売値)の解析

「Buy」の値は、非売品のデータが多く含まれていた事を考慮し、次は「Sell(売値)」を目的変数に解析を実施します。

先ほどの解析でSellとBuyの値は、線形で表される関係であるとわかっているので、Sellの方がデータ数が多いのであれば、より精度の高い解析が期待できます。

目的変数の加工

まずはSellの分布の確認をします。

Sellのヒストグラム

片側に偏った分布になっているので、対数変換を実施します。

Sell_logのヒストグラム

正規分布とは言えませんが、こちらを目的変数にfeature importanceを計算していきます。

feature importance

前項の「Sell_log」を目的変数にfeature importanceを計算します。

やってることは「Buy」編の内容と変わらないので説明は割愛します。

Sell feature importance

影響度が視覚化されました。

Sellと特徴量の関係

最後にfeature importanceが高かった特徴量と、Sellの関係を視覚化していきます。

Sell と特徴量の関係

前回の解析と異なる部分は、「Tag」の要素の影響度が一番高く、その中の「Toy」のラベルの売値が一番高くなっているという部分です。

この要因を調べてみると、housewareの中で一番高い「robot hero」というアイテムが平均値を大きく引き上げていることが原因でした。

robot heroは Kit Cost=50 、size = 3×3 なので、ほかの特徴量にも影響を与えていることがわかります。(Kit Cost、Sizeのグラフ参照。)

つまり、あつ森の家庭用品中で「robot hero」が一番高価なアイテムであるということがわかりました。これで友人にどや顔できそうです。


まとめ

あつ森素人の自分がデータ解析を通じて、下記の気づきを得ました。

  • houseware(家庭用品)の中で、「hero robot」がダントツで高価なアイテムである。
  • あつ森の知識が少し増えた。



皆さんはこんなアホなことせずに、普通にゲームをプレイしてください。

コメント

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