日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

游戏数据分析-玩家战力分析

發(fā)布時(shí)間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏数据分析-玩家战力分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

## 條件

這是我分析的條件,不同情況就舉一反三吧

1.游戲環(huán)境:
很標(biāo)準(zhǔn)的放置卡牌體系,如afk

2.養(yǎng)成資源:
英雄+裝備【飾品符文等等】

3.相對(duì)靠譜的數(shù)值體系:
對(duì)應(yīng)的數(shù)值策劃都已經(jīng)給了戰(zhàn)力,戰(zhàn)力在一定意義上能夠描述養(yǎng)成程度
對(duì)應(yīng)的運(yùn)營(yíng)給了vip標(biāo)準(zhǔn),vip等級(jí)在一定程度上能夠反映玩家的付費(fèi)程度

4.確定同天同渠道同服用戶對(duì)比

分析目的

  • 主要是為了看不同vip下玩家的養(yǎng)成程度,在一個(gè)標(biāo)準(zhǔn)的放置卡牌體系中,玩家的戰(zhàn)力和養(yǎng)成程度是線性正相關(guān)的
  • 如果系統(tǒng)策劃把某些關(guān)卡、副本、功能和戰(zhàn)力掛鉤了,那分析【付費(fèi)-戰(zhàn)力】,是非常有必要的
  • 如果數(shù)據(jù)反映出的戰(zhàn)力表現(xiàn)得失常,我們不能馬上就斷定游戲生態(tài)失常,還需要進(jìn)一步找原因,也可能是樣本太小導(dǎo)致的
  • 最終如果發(fā)現(xiàn)生態(tài)真的失常,可能系統(tǒng)策劃和數(shù)值策劃需要接入調(diào)整,運(yùn)營(yíng)上也需要采取風(fēng)控運(yùn)營(yíng) 的策略,避免失常的這一部分玩家產(chǎn)生【不充錢也能打氪佬】和【充錢居然不能變強(qiáng)】的體驗(yàn)
  • 當(dāng)然不是非要基于vip維度來(lái)看,等級(jí)、競(jìng)技場(chǎng)段位都可以的,不同維度分析出來(lái)的東西也不同,方法是類似的

數(shù)據(jù)清洗

1.首先肯定要篩選掉噪點(diǎn),這里的噪點(diǎn)通常是英雄品質(zhì)和英雄等級(jí)之類,因?yàn)槟憧隙ú幌氚淹婕叶诜e的狗糧也算進(jìn)來(lái),盡肯能剔除狗糧的影響,才更接近真相

2.等級(jí)過(guò)低的玩家也可能需要提出,比如0-2級(jí)的這種,還在新手期的玩家數(shù)據(jù),你分析了沒(méi)意義,也是噪點(diǎn)

數(shù)據(jù)分析

1.首先做數(shù)據(jù)透視,索引字段就是【vip】,統(tǒng)計(jì)字段是【戰(zhàn)力】,算法就是常規(guī)的描述統(tǒng)計(jì),中位數(shù)、均值、眾數(shù),一鍵三連,我這里用的是pandas的group by,excel玩家就用透視表做,不難的

2.【重點(diǎn)】除了三連,還需要統(tǒng)計(jì)偏度,找出哪個(gè)vip下,玩家戰(zhàn)力分布處于失常狀態(tài)。偏度的定義網(wǎng)上可以搜到,偏度的計(jì)算方法,我這里

偏度>0.5,越大,說(shuō)明這個(gè)vip下的用戶,實(shí)力偏弱的人多
偏度<-0.5,越小,說(shuō)明這個(gè)vip下的用戶,實(shí)力偏強(qiáng)的人多

3.除偏度以外,有時(shí)候也需要看極值,假如出現(xiàn)vip2的戰(zhàn)力極值大于vip5,一定是有問(wèn)題的,中位數(shù)、均值、眾數(shù)也是做輔助判斷的依據(jù)

4.找出失常的vip后,需要通過(guò)極值去找到那個(gè)具體失常的人,看看他的所有數(shù)據(jù),對(duì)比他所在vip下的標(biāo)準(zhǔn)數(shù)據(jù),找出具體失常的點(diǎn),單純戰(zhàn)力分析一定是片面的,因此必須結(jié)合其他數(shù)據(jù)分析結(jié)果一起看,才能接近真相

根據(jù)我的經(jīng)驗(yàn),vip低的人群,戰(zhàn)力偏度通常是小于-0.5,或者服從正態(tài)分布的

我們通常更關(guān)注vip高的這一部分
如果vip高,且偏度遠(yuǎn)大于0.5,說(shuō)明里面小部分氪佬實(shí)力超前,需要關(guān)注這部分人充值金額是否能夠打出這個(gè)實(shí)力【風(fēng)控運(yùn)營(yíng)】
如果vip高,且偏度遠(yuǎn)小于-0.5,說(shuō)明氪佬里面有明顯掉隊(duì)的,需要gs介入帶一帶,或者vip客服安撫【防止大R流失】

源碼示例

直接復(fù)制過(guò)去大概沒(méi)法用的,并且這個(gè)腳本只是項(xiàng)目的一部分,看個(gè)思路吧

import sanguo.data.gamedata import pandas as pd import numpy as np import datetimedata = pd.read_excel('C:\\Users\\mayn\\Desktop\\三國(guó)\\data\\詼諧三國(guó)-hero.xlsx') hero = sanguo.data.gamedata.herohero_name = hero.loc[:,['英雄ID','英雄名稱']] df = pd.merge(data,hero_name,left_on='hid',right_on='英雄ID',how='left')def vip_zhanli():list1 = []max_zhanli_list = df.groupby('vip')['戰(zhàn)力'].max('戰(zhàn)力').valuesfor i in max_zhanli_list:a = df[df['戰(zhàn)力'] == i]list1.append(a)zhanli_analyse = pd.concat(list1)zhanli_analyse['戰(zhàn)力中位數(shù)'] = df.groupby('vip')['戰(zhàn)力'].median('戰(zhàn)力').valueszhanli_analyse['戰(zhàn)力均值'] = df.groupby('vip')['戰(zhàn)力'].mean('戰(zhàn)力').valueszhanli_analyse['戰(zhàn)力眾數(shù)'] = df.groupby('vip')['戰(zhàn)力'].agg(lambda x: np.mean(pd.Series.mode(x))).values##這個(gè)眾數(shù)算法比較特殊,由于pandas的group by不能算眾數(shù),所以用agg方法,引用 pd.Series.mode() 然后區(qū)眾數(shù)的平均#眾數(shù)暫時(shí)不用了zhanli_analyse['偏度'] = df.groupby('vip')['戰(zhàn)力'].skew().values# (1)Skewness = 0 ,分布形態(tài)與正態(tài)分布偏度相同。# (2)Skewness > 0 ,正偏差數(shù)值較大,為正偏或右偏。長(zhǎng)尾巴拖在右邊,數(shù)據(jù)右端有較多的極端值。# (3)Skewness < 0 ,負(fù)偏差數(shù)值較大,為負(fù)偏或左偏。長(zhǎng)尾巴拖在左邊,數(shù)據(jù)左端有較多的極端值。# (4)數(shù)值的絕對(duì)值越大,表明數(shù)據(jù)分布越不對(duì)稱,偏斜程度大zhanli_analyse = zhanli_analyse.iloc[:,[2,4,12,13,15]]zhanli_analyse.columns = ['vip','最高戰(zhàn)力','戰(zhàn)力中位數(shù)','戰(zhàn)力均值','偏度']return zhanli_analysedef vip_hero(quantile_=0.8):list_ = []for i in np.sort(df['vip'].unique()):## unique()相當(dāng)于sql 里面的distinct ,sort是排序vip_hero_count = pd.pivot_table(df[(df['vip']==i) & (df['星級(jí)']>=2)],index='英雄名稱',values='uid',aggfunc='count')['uid'].reset_index()## 篩選 vip 等于 i, 星級(jí)大于2的英雄,透視表按vip,計(jì)數(shù),重新索引pop_hero = vip_hero_count[vip_hero_count['uid'] >= vip_hero_count['uid'].quantile(quantile_)]pop_hero = pop_hero.copy()## 雖然不知道為什么,但是不copy就報(bào)錯(cuò)pop_hero['vip'] = np.copy(i)order = ['vip','英雄名稱','uid']pop_hero = pop_hero[order]pop_hero.columns = ['vip','英雄名稱','數(shù)量']list_.append(pop_hero)pop_hero_df = pd.concat(list_)return pop_hero_dfdef vip_zhuangbei():df_avg_zhuangbei = df.copy()df_avg_zhuangbei['裝備分'] = df_avg_zhuangbei[['裝備1','裝備2','裝備3','裝備4']].apply(lambda x:x.sum(),axis =1)## 裝備分等于四個(gè)裝備值的平均,只能用apply方法做zhuangbei = df_avg_zhuangbei.groupby('vip')['裝備分'].max('裝備分').reset_index()zhuangbei.columns = ['vip','極限裝備分']zhuangbei['中位數(shù)'] = df_avg_zhuangbei.groupby('vip')['裝備分'].median('裝備分').reset_index()['裝備分'].valueszhuangbei['平均數(shù)'] = df_avg_zhuangbei.groupby('vip')['裝備分'].mean('裝備分').reset_index()['裝備分'].valueszhuangbei['偏度'] = df_avg_zhuangbei.groupby('vip')['裝備分'].skew().reset_index()['裝備分'].valuesreturn zhuangbeidef to_excel():xlsx = pd.ExcelWriter("C:\\Users\\mayn\\Desktop\\三國(guó)\\數(shù)據(jù)分析\\戰(zhàn)力-英雄-裝備-分析%s.xlsx"%str(datetime.date.today()))vip_zhanli().to_excel(xlsx, sheet_name="戰(zhàn)力分析", index=False)vip_hero(quantile_=0.8).to_excel(xlsx, sheet_name="英雄分析", index=False)vip_zhuangbei().to_excel(xlsx, sheet_name="裝備分析", index=False)print("保存完成")xlsx.close()# to_excel("歌手活躍用戶%s.xlsx"%str(datetime.date.today())

總結(jié)

以上是生活随笔為你收集整理的游戏数据分析-玩家战力分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。