ビッグ データ Bishe がビッグ データを共有 - オンライン ゲーム データの分析と視覚化

1. データセットの説明

モバイルゲーム「バーバリアンエイジ」のユーザーデータで、トレーニングセットとテストセットの2つのデータファイルがあります。2 つの間にデータの交差はなく、合計サイズは 861 M、合計レコード数は 3,116,941 で、109 個のフィールドが含まれます。

2. データ処理

データ処理: 2 つのデータ ファイルをマージし、分析に使用されるフィールドのみを取得します。次に、データを mysql に書き込みます。

分析に使用されるフィールドのみが取得されます。フィールドが多すぎるため、不要なフィールドを削除するとメモリが大幅に節約され、効率が向上します。

## 合并数据文件 
dir = r"C:\Users\Administrator\Desktop\AgeOfBarbarians"
data_list = []
for path in os.listdir(dir):
    path = os.path.join(dir, path)
    data = pd.read_csv(path)
    data = data[
        ['user_id', 'register_time', 'pvp_battle_count', 'pvp_lanch_count', 'pvp_win_count', 'pve_battle_count',
         'pve_lanch_count', 'pve_win_count', 'avg_online_minutes', 'pay_price', 'pay_count']
    ]
    data_list.append(data)
data = pd.concat(data_list)

## 输出处理 
# 没有重复值
# print(data[data.duplicated()])

# 没有缺失值
# print(data.isnull().sum())

## 数据保存 
# 保存清洗后的数据 mysql
engine = create_engine('mysql://root:[email protected]:3306/test?charset=utf8')
data.to_sql('age_of_barbarians', con=engine, index=False, if_exists='append')

画像-20201230152058798

データベースをインポートした後、フィールド タイプを変更して精度の問題を解決します。

alter table age_of_barbarians modify register_time timestamp(0);
alter table age_of_barbarians modify avg_online_minutes float(10, 2);
alter table age_of_barbarians modify pay_price float(10, 2);

画像-20201230153430246

3. データ分析の可視化

3.1 新しいユーザーを追加する

総ユーザー数は3,116,941人。

レコードの総数はユーザー データと一致しており、use_id を一意の ID として使用できることを示しています。したがって、後続のユーザー統計に個別の値を追加する必要はありません。

画像-20201230154232372

このうちPUは60,988人で1.96%を占める

PU (有料ユーザー): 有料ユーザーの総数

画像-20201230162906441

DNU の状況は以下の通りで、このゲームのトラフィック誘致活動によるものと思われる登録のピークが 2 つあることがわかります。

DNU (Daily New Users): ゲームに毎日新しくログインしたユーザーの数、つまり毎日の新規ユーザーの数。

画像-20201230170002894

時間当たりの登録ユーザー数は以下の通りで、新規ユーザー登録のピークは夕方21時であることが分かります。

画像-20201230170339951

3.2 ユーザーのアクティビティ

平均オンライン時間から判断すると、有料ユーザーの平均オンライン時間は 2 時間にもなり、全体の平均オンライン時間をはるかに上回っています。

画像-20201230172026634

3.3 ユーザーの消費状況

APA (アクティブな支払いアカウント): アクティブな支払いユーザーの数。

ARPU (ユーザーあたりの平均収益): ユーザーあたりの平均収益。

ARPPU (有料ユーザーあたりの平均収益): 有料ユーザーあたりの平均収益。

PUR (Pay User Rate): APA/AU を通じて計算できる支払い比率。

-- APA(Active Payment Account):活跃付费用户数。
select count(1) as APA from age_of_barbarians where pay_price > 0 and avg_online_minutes > 0; -- 60987

-- ARPU(Average Revenue Per User) :平均每用户收入。
select sum(pay_price)/sum(case when avg_online_minutes > 0 then 1 else 0 end) from age_of_barbarians;  -- 0.582407

-- ARPPU (Average Revenue Per Paying User): 平均每付费用户收入。
select sum(pay_price)/sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end)  from age_of_barbarians; -- 29.190265

-- PUR(Pay User Rate):付费比率,可通过 APA/AU 计算得出。
select sum(case when avg_online_minutes > 0 and pay_price > 0 then 1 else 0 end) / sum(case when avg_online_minutes > 0 then 1 else 0 end)
from age_of_barbarians;  -- 0.02

-- 付费用户人数,付费总额,付费总次数,平均每人付费,平均每人付费次数,平均每次付费
select  count(1) as pu,  -- 60988
        sum(pay_price) as sum_pay_price,  -- 1780226.7
        avg(pay_price) as avg_pay_price,  -- 29.189786
        sum(pay_count) as sum_pay_count,  -- 193030
        avg(pay_count) as avg_pay_count,  -- 3.165
        sum(pay_price) / sum(pay_count) as each_pay_price -- 9.222539
from age_of_barbarians
where pay_price > 0;

上記の統計結果から、これら 6 万人を超える有料ユーザーが合計 178 万元を費やし、一人当たりの平均消費額は 29 元であることがわかります。

ユーザーあたりの平均収益は0.58元、有料ユーザーあたりの平均収益は29.19元、支払い率は2%です。

この支払い比率は比較的低くなければならず、いくつかの初回課金アクティビティを通じて新規ユーザーの支払い意欲を高めることができます。

画像-20201230174654309

3.4 ユーザーのゲーム状況

勝率とゲーム数の観点から見ると、クリプトンゴールドは確かに強くなります。有料ユーザーの平均勝率は 71.13% で、無課金ユーザーの 38.03% を大きく上回っています。もちろん、これも同様です。なぜなら、有料ユーザーの平均プレイゲーム数は一般ユーザーよりもはるかに多いため、肝が多ければ多いほど強いのです。

ゲームタイプの観点から見ると、PVE の平均勝率は 90.1% に達しており、難易度はまだ比較的低く、ゲーム体験は依然として非常に優れており、エントリーレベルの難易度設定に適していることを示しています。

画像-20201231100513252

画像-20201231103330520

4 ついに

おすすめ

転載: blog.csdn.net/caxiou/article/details/135059944