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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据分析实战-PUBG数据集EDA

發布時間:2024/4/11 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据分析实战-PUBG数据集EDA 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PUBG Dataset EDA

簡介

本項目對絕地求生玩家比賽記錄數據集進行分析,主要為數據探索(EDA),基本無建模過程。使用的數據集來自Kaggle,下載地址給出。

環境配置

基于Python3,需要的第三方包在requirements.txt給出。

數據獲取

根據上面的鏈接即可下載數據集,數據量較大,習慣NoteBook的可以直接在Kaggle Kernel上運行,具體操作見之前博客。

數據集下載解壓后得到如下四個文件。

  • erangel.png
    • 絕地海島艾倫格地圖(便于Kaggle玩家熱點圖繪制)
  • mirangel.jpg
    • 熱情沙漠米拉瑪地圖(便于Kaggle玩家熱點圖繪制)
    • 雨林地圖沒有數據(em,,,我也是玩過的人)
  • aggregate.zip
    • 玩家比賽統計數據
  • deaths.zip
    • 玩家被擊殺數據
    • 本次分析會設計到上述的兩類數據。(由于數據量大,原數據集數據量切分為多個部分,對兩類數據只分析第一部分即agg_match_stats_0.csv和kill_match_stats_final_0.csv)

對數據集中的數據文件進行初步探索,顯示大致文件分布內容如下。

數據探索分析(EDA)

csv文件屬性列出如下。

  • agg_match_stats_i.csv文件屬性(按照csv文件表頭順序)
    • date:對局時間
    • game_size:游戲規模(隊伍數量)
    • match_id:對局id
    • match_mode:對局模式(第一人稱還是第三人稱)
    • party_size:組隊模式(單人賽、雙人賽、四人賽)
    • player_assists:助攻次數
    • player_dbno:擊倒人數
    • player_dist_ride:載具移動距離
    • player_dist_walk:行走距離
    • player_dmg:傷害數值
    • player_kills:擊殺人數
    • player_name:玩家名稱
    • player_survive_time:玩家生存時間
    • team_id:隊伍id
    • team_placement:隊伍排名
  • kill_match_stats_final_i.csv文件屬性
    • killed_by:死亡方式
    • killer_name:擊殺者名字
    • killer_placement:擊殺者排名
    • killer_position_x:擊殺者位置x坐標
    • killer_position_y:擊殺者位置y坐標
    • map:地圖
    • match_id:比賽id
    • time:存活時間
    • victim_name:被擊殺者名字
    • victim_placement:被擊殺者排名
    • victim_position_x:被擊殺者位置x坐標
    • victim_position_y:被擊殺者位置y坐標

簡單進行數據展示如下。

  • 共有13849287條記錄。
  • 共有13426348條記錄。

空值

對空值記錄查看,其中20249存在空值,均為玩家名稱,不影響建模。

df_data_aggregate[df_data_aggregate.isnull().values == True].drop_duplicates() df_data_deaths[df_data_deaths.isnull().values == True].drop_duplicates()

使用下述代碼對空值記錄刪除。

df_data_aggregate.drop_duplicates(inplace=True) df_data_deaths.drop_duplicates(inplace=True)

屬性構造

補充吃雞列,并顯示擊殺數與吃雞概率的關系。

plt.figure(figsize=(20, 8)) plt.subplot(1, 2, 1) # 剔除擊殺數不合理的玩家 df_data_aggregate.loc[df_data_aggregate['player_kills'] < 50, ['player_kills', 'won']].groupby('player_kills')['won'].mean().plot() plt.xlabel('kill number') plt.ylabel("probability of No1") plt.subplot(1, 2, 2) df_data_aggregate.loc[df_data_aggregate['player_kills'] < 50, ['player_kills', 'won']].groupby('player_kills')['won'].mean().plot.bar() plt.xlabel('kill number') plt.ylabel("probability of No1")

探索分析

查看不同模式吃雞率。各模式吃雞率還是比較接近的,這說明這個游戲幾種模式設計都是比較合理的。

v = df_data_aggregate.groupby('party_size')['player_kills'].mean() plt.bar(v.index, v.values) for x, y in zip(v.index, v.values):plt.text(x, y, "{:.2f}".format(y)) plt.show()

查看載具移動距離與吃雞率。(嗯,不是在吃雞,就是在吃雞的路上。)

df_ride = df_data_aggregate.loc[df_data_aggregate['player_dist_ride']<20000, ['player_dist_ride', 'won']] labels=["0k-1k", "1k-2k", "2k-3k", "3k-4k","4k-5k", "5k-6k", "6k-7k", "7k-8k", "8k-9k", "9k-10k"] df_ride['drive'] = pd.cut(df_ride['player_dist_ride'], 10, labels=labels) df_ride.groupby('drive').won.mean().plot.bar(rot=45, figsize=(12, 8)) plt.xlabel("drive dis") plt.ylabel("prop of No1")

對玩家死亡數據集的初探。

落地成盒在哪里,統計存活時間段的玩家的死亡地點。

其他如最后毒圈縮在哪里,思路類似。

補充說明

EDA思路參考“Alfred數據室”,代碼實現不同。具體數據集地址給出(20G),不可能上傳,故Github只有背景圖與NoteBook文件。具體代碼見我的Github,歡迎star或者fork。

總結

以上是生活随笔為你收集整理的数据分析实战-PUBG数据集EDA的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。