Bonne chance pour ce soir ~ Aujourd'hui poulet jeu de poulet avec quelques amis, a traversé toutes sortes de mourir, se moquaient de 100 sortes de poulet à mourir sur les filles, comme la mort d'un poing brandissant, saut en parachute chute sur le toit bord est tombé à sa mort, en jouant dans le poulet est mort montagnes russes montrent la technologie automobile, étant coéquipiers avec des cocktails Molotov ont brûlé. C'est un jeu pour moi de me faire connaître le jeu, ainsi que de façon originale de mourir. Mais le jeu de go de jeu, ont encore de faire semblant que je suis accro à l'apprentissage, donc aujourd'hui en utilisant jeu de poulet données réelles pour voir comment améliorer vos chances de manger du poulet.
Ensuite, nous faisons l'analyse des données avec l'âme R et Python pour répondre aux questions suivantes?
D'abord, regardez les données:
Où sauter dangereux?
Pour moi, cela a été les joueurs de conscience comme Gou, après de nombreux atterrissage dans la rivière douloureuse expérience, je résolus de ne pas choisir de sauter ce bâtiment dense P ville urbaine, appartenant à appauvrir les pauvres, mais les questions d'assurance-vie. Donc, à la fin nous avons décidé de regarder les statistiques qui place plus susceptibles de tomber dans la rivière? Nous sélectionnons pour l'analyse visuelle des anciens joueurs placent 100 secondes de la mort. Carte des plantes Passion du désert, Picado, villas, le plus dangereux, gare relativement sûr de Ybor City, les centrales thermiques. P île Jedi dans la ville, les bases militaires, les écoles, les hôpitaux, les centrales nucléaires, abri antiaérien sont zone de danger absolu. matériau riche en G est en fait le port relativement sûr.
1import numpy comme np
2import matplotlib.pyplot comme plt
pandas géants de 3import comme pd
Seaborn de 4import comme sns
Le imread d'importation 5from
matplotlib.cm de 6import en cm
7
Les données conduisent en partie 8 #
9deaths1 = pd.read_csv ( "décès / kill_match_stats_final_0.csv")
10deaths2 = pd.read_csv ( "décès / kill_match_stats_final_1.csv")
11
12deaths = pd.concat ( )
13
14 # 5 avant l'impression, la variable comprendre
15print (deaths.head (), '\ n', len (décès))
16
Deux carte # 17
18miramar = décès
19erangel = décès
20
21 # 100 secondes avant le début de la heatmap de mort
22position_data =
23Aux position dans position_data:
24 miramar = Miramar .Appliquer (lambda x: x * 1000/800000)
25 = miramar miramar
26
27 erangel = Erangel .Appliquer (lambda x: x * 4096/800000)
28 erangel = erangel
29
30n = 50000
31mira_sample = miramar .sample (n)
32eran_sample = erangel .sample (n)
33
thermodynamique figure 34 # miramar
35bg = imread ( "miramar.jpg")
36fig, Ax = plt.subplots (1,1, figsize = (15,15))
37ax.imshow (bg)
38sns.kdeplot (mira_sample , mira_sample , n_levels = 100, cmap = cm.Reds, alpha = 0,9)
39
40 # erangel heatmap
41bg = imread ( "erangel.jpg")
42fig, Ax = plt.subplots (1,1, figsize = (15,15))
43ax.imshow (bg)
44sns.kdeplot (eran_sample , eran_sample , n_levels = 100, cmap = cm.Reds, alpha = 0,9)
Gou avant ou sécher?
Je vais encore sortir et Gou à la fin est l'ennemi imprudemment dans la pièce? Parce que la taille du jeu ici est pas la même chose, ici sélectionner le nombre de participants est supérieur à 90, les données de jeu, puis filtrer le poulet team_placement d'équipe et le succès final des données de l'équipe:
1, la première équipe à calculer le nombre moyen de poulet pour tuer l'ennemi, ici exclut les quatre modes de données de jeu, car le nombre de trop grande disparité entre l'équipe moyenne en raison du nombre devient vide de sens;
2, nous considérons le dernier membre survivant d'un certain nombre d'ennemis à tuer chaque groupe par le poulet statistique du groupe, mais ici trouvé variable de temps de survie statistique est le temps de survie ultime conformément au dossier de l'équipe, de sorte que l'idée de l'échec;
3, les statistiques finales pour chaque équipe dans le poulet tuer le plus grand nombre de nombre de statistiques, à l'exclusion des données ici seul mode de joueur, car le nombre de mode solo est de tuer le plus grand nombre dans chaque groupe. Et enfin effectivement constaté qu'il ya nombre de kills jusqu'à 60, il y a doute si bée. Poulet ou si vous voulez aller à l'adresse au tir pratique, avec juste Gou ne suffit pas.
1Bibliothèque (dplyr)
2library (tidyverse)
3library (data.table)
4library (ggplot2)
5pubg_full < - fread ( "../ agg_match_stats.csv")
6 # nombre d'ennemis à tuer moyenne de l'équipe de poulet
7attach (pubg_full)
8pubg_winner < - pubg_full% > % Filtre (team_placement == 1 & party_size < 4 & game_size > 90)
9detach (pubg_full)
10team_killed < - total (pubg_winner player_kills de $, par = liste (pubg_winner $ match_id, pubg_winner $ team_id), FUN = "moyenne")
11team_killed $ death_num < - plafond (team_killed $ x)
12ggplot (données = team_killed) + geom_bar (mapping = aes (x = death_num, y = ..count ..), color = "steelblue") +
13 XLIM (0,70) + laboratoires (title = "Nombre de mort que l'équipe PUBG Winner Killed", x = "Nombre de mort")
14
# 15 dernière équipe poulet survivant tuer le nombre de joueurs
16pubg_winner < - pubg_full% > % Filtre (pubg_full $ team_placement == 1)% > % Group_by (match_id, team_id)
17attach (pubg_winner)
18team_leader < - agrégat (player_survive_time ~ player_kills, data = pubg_winner, FUN = "max")
19detach (pubg_winner)
20
# 21 équipe de poulet tuer le plus grand nombre d'ennemis
22pubg_winner < - pubg_full% > % Filtre (pubg_full $ team_placement == 1 & pubg_full $ party_size > 1)
23attach (pubg_winner)
24team_leader < - agrégat (player_kills, par = list (match_id, team_id), FUN = "max")
25detach (pubg_winner)
26ggplot (données = team_leader) + geom_bar (mapping = aes (x = x, y = ..count ..), color = "steelblue") +
27 XLIM (0,70) + laboratoires (title = "Nombre de décès qui PUBG Vainqueur Killed", x = "Nombre de mort")
28
Quel genre d'arme pour tuer plus de joueurs?
Bonne chance de choisir une bonne arme lorsque vous hésitiez à choisir lequel? Du point de vue de la carte, M416 et SCAR est une bonne arme, mais peut aussi relativement facile ramasser des armes, nous avons reconnu Kar98k est un bon fusil peut être Abattu, parce que le classement par comparaison, c'est parce que cette arme dans le jeu relativement rare mais il a aussi besoin de frapper la force de l'ennemi, comme est venu me chercher 98k aussi équipé du miroir 8 fois, mais ne couvrent pas les joueurs se réchauffent à une minute ne mérite pas.
Classé n ° 1 arme assassiner
2death_causes = décès . Value_counts ()
3
4sns.set_context ( 'parler')
5fig = plt.figure (figsize = (30, 10))
6ax = sns.barplot (x = death_causes.index, y = )
7ax.set_title ( 'Taux de décès Causes')
8ax.set_xticklabels (death_causes.index, rotation = 90)
9
Top 10 des armes classées # 20
11rank = 20
12fig = plt.figure (figsize = (20, 10))
13ax = sns.barplot (x = death_causes rang .Index, y = )
14ax.set_title ( 'Taux de décès Causes')
15ax.set_xticklabels (death_causes.index, rotation = 90)
16
Carte n ° 17 pour prendre deux séparés
18f, axes = plt.subplots (1, 2, figsize = (30, 10))
19axes .set_title ( 'Causes Taux de mortalité: Erangel (Top {}). Format (grade))
20axes .set_title ( 'Mort Causes Taux: Miramar (Top {}). Format (grade))
21
22counts_er = erangel . Value_counts ()
23counts_mr = miramar . Value_counts ()
24
25sns.barplot (x = counts_er .Index, y = , hache = axes )
26sns.barplot (x = counts_mr .Index, y = , hache = axes )
27axes .set_ylim ((0, 0,20))
28axes .set_xticklabels (counts_er.index, rotation = 90)
29axes .set_ylim ((0, 0,20))
30axes .set_xticklabels (counts_mr.index, rotation = 90)
31
# 32 relations poulet et armes
33win = décès
34win_causes = gagner . Value_counts ()
35
36sns.set_context ( 'parler')
37fig = plt.figure (figsize = (20, 10))
38ax = sns.barplot (x = win_causes .index, y = )
39ax.set_title ( «Taux de décès Causes de Win)
40ax.set_xticklabels (win_causes.index, rotation = 90)
coéquipiers si je aider à manger du poulet?
Parfois, un inattentif renversé, mais heureusement, je suis monté rapidement à ses coéquipiers pour me sauver. Ici choisir les équipes qui réussissent de poulet, les membres de l'équipe ont finalement accepté la probabilité 1 personne a trouvé où le poulet est de 29%, de sorte que passes pour ses coéquipiers est très important (et ne me appelez pas un coéquipiers de porc, et je peux choisir de ne pas vous faire économiser .) Mais il y a encore neuf fois pour sauver les coéquipiers, vous êtes aussi un talent.
1Bibliothèque (dplyr)
2library (tidyverse)
3library (data.table)
4library (ggplot2)
5pubg_full < - fread ( "E: /aggregate/agg_match_stats_0.csv")
6attach (pubg_full)
7pubg_winner < - pubg_full% > % Filtre (team_placement == 1)
8detach (pubg_full)
9ggplot (données = pubg_winner) + geom_bar (mapping = aes (x = player_assists, y = ..count ..), fill = "# E69F00") +
10 XLIM (0,10) + (laboratoires title = "Nombre de joueur assisté", x = "Nombre de mort")
11ggplot (données = pubg_winner) + geom_bar (mapping = aes (x = player_assists, y = ..prop ..), fill = "# 56B4E9") +
12 XLIM (0,10) + (laboratoires title = "Nombre de joueur assisté", x = "Nombre de mort")
De mes ennemis plus le plus dangereux?
Killer_position des variables de données et calcul de victim_position distance euclidienne, voir la distance en ligne droite entre les deux avec la distribution d'un accidenté, montrant une évidente distribution asymétrique vers la droite, il semble, le besoin d'observer toujours l'ennemi à proximité, afin de ne pas éliminer tous Je ne sais pas où l'ennemi.
1 # code python pour: assassiner et de la relation à distance
mathématiques 2import
3DEF get_dist (df): fonction # distance
4 dist =
5 pour la ligne en df.itertuples ():
6 = sous-ensemble (row.killer_position_x - row.victim_position_x) ** 2 + (row.killer_position_y - row.victim_position_y) ** 2
7 si sous-ensemble > 0:
8 dist.append (Math.sqrt (sous-ensemble) / 100)
9 autres:
10 dist.append (0)
11 retour dist
12
13df_dist = pd.DataFrame.from_dict ({ 'dist (m)': get_dist (erangel)})
14df_dist.index = erangel.index
15
16erangel_dist = pd.concat ( , Axis = 1)
17
18df_dist = pd.DataFrame.from_dict ({ 'dist (m)': get_dist (miramar)})
19df_dist.index = miramar.index
20
21miramar_dist = pd.concat ( , Axis = 1)
22
23f, axes = plt.subplots (1, 2, figsize = (30, 10))
24plot_dist = 150
25
26axes .set_title ( 'engagement Dist :. Erangel')
27axes .set_title ( 'engagement Dist. Miramar')
28
29plot_dist_er = erangel_dist
30plot_dist_mr = miramar_dist
31
32sns.distplot (plot_dist_er , ax = axes )
33sns.distplot (plot_dist_mr , ax = axes )
Plus les gens de l'équipe je vivre plus longtemps?
Party_size données variables dans l'analyse de survie, on peut voir dans le même taux de survie, quatre fois plus élevé que l'équipe de survie des deux équipes, puis le mode solo, donc la force en nombre cette phrase n'est pas déraisonnable.
Que vous voyagiez à vivre plus longtemps?
Cause de l'analyse de la mort a constaté qu'il ya beaucoup de joueurs sont morts Bluezone, naïf de penser que tout le monde sera en mesure de ramasser des bandages a couru poison. données variables Player_dist_ride dans l'analyse de la survie, on peut voir dans le même taux de survie, il y a des joueurs expérimentés ont conduit le temps de survie que les joueurs seulement de marche, vous utilisez les jambes seul, mais toxiques.
Plus îles Master I vivent plus longtemps?
variables Game_size pour l'analyse de la survie ou le petit gibier trouvé plus facile de survivre.
1 # codes du langage R sont les suivants:
2library (magrittr)
3library (dplyr)
4library (survie)
5library (tidyverse)
6library (data.table)
7library (ggplot2)
8library (survminer)
9pubg_full < - fread ( "../ agg_match_stats.csv")
Les données prétraiter # 10, désignés comme les variables de classification variable continue
11pubg_sub < - pubg_full% > %
12 filtre (player_survive_time < 2100)% > %
13 muter (moteur = ifelse (player_dist_ride > 0, 1, 0))% > %
14 muter (taille = ifelse (game_size < 33, 1, ifelse (game_size > = 33 & game_size < 66,2,3)))
# 15 Créer une cible de survie
16surv_object < - Levé (temps = pubg_sub $ player_survive_time)
17fit1 < - survfit (~ surv_object party_size, data = pubg_sub)
survie Visualisation # 18
19ggsurvplot (FIT1, data = pubg_sub, pval = TRUE, xlab = « Temps de lecture "Surv.median.line =" hv »,
20 legend.labs = c ( "SOLO", "DUO", "EFFECTIF"), ggtheme = theme_light (), risk.table = "pourcentage")
21fit2 < - survfit (~ surv_object lecteur, data = pubg_sub)
22ggsurvplot (FIT2, data = pubg_sub, pval = TRUE, xlab = « Temps de lecture "Surv.median.line =" hv »,
23 legend.labs = c ( "marche", "marche et entraînement"), ggtheme = theme_light (), risk.table = "pourcentage")
24fit3 < - survfit (~ surv_object taille, data = pubg_sub)
25ggsurvplot (Flt3, data = pubg_sub, pval = TRUE, xlab = « Temps de lecture "Surv.median.line =" hv »,
26 legend.labs = c ( "petit", "moyen", "grand"), ggtheme = theme_light (), risk.table = "pourcentage")
Enfin, il y a des endroits anneau de poison qui pourrait survenir?
Gou d'avoir la capacité d'être en mesure de faire face à mon dernier, comment prédire la bague finale du médicament dans quelle position. données Agg_match_stats de la table pour trouver le numéro d'une équipe, puis suivez les groupes match_id pour connaître la valeur maximale de player_survive_time de l'intérieur de paquets de données, puis en conséquence pour correspondre à la table kill_match_stats_final dans les données, les données contenues dans la seconde mort doit avoir lieu, la cartographie passion trouvé anneau poison du désert beaucoup plus concentré une grande probabilité Picado, San Martin et jardin. île Jedi est plus aléatoire, mais encore être en mesure de voir la base militaire locale et les montagnes sont plus susceptibles d'être le dernier anneau de la drogue.
# 1 dernière position anneau de médicament
2import matplotlib.pyplot comme plt
pandas géants de 3import comme pd
Seaborn de 4import comme sns
Le imread d'importation 5from
matplotlib.cm de 6import en cm
7
Les données conduisent en partie 8 #
9deaths = pd.read_csv ( "décès / kill_match_stats_final_0.csv")
Importer des données agrégées 10 #
11aggregate = pd.read_csv ( "agrégat / agg_match_stats_0.csv")
12print (aggregate.head ())
# 13 pour trouver l'emplacement des trois derniers décès
14
15team_win = agrégat # top équipe classée
16 # pour savoir tous les matchs la première équipe à vivre plus longtemps que le joueur
. 17grouped = team_win.groupby ( 'match_id') appliquer (lambda t: t )
18
19deaths_solo = décès
20deaths_solo_er = deaths_solo
21deaths_solo_mr = deaths_solo
22
23df_second_er = deaths_solo_er == 2)>. Dropna ()
24df_second_mr = deaths_solo_mr == 2)>. Dropna ()
25print (df_second_er)
26
27position_data =
28Pour position dans position_data:
29 df_second_mr = Df_second_mr .Appliquer (lambda x: x * 1000/800000)
30 df_second_mr = df_second_mr
31
32 df_second_er = Df_second_er .Appliquer (lambda x: x * 4096/800000)
33 df_second_er = df_second_er
34
35df_second_er = df_second_er
Figure 36 # erangel thermodynamique
37sns.set_context ( 'parler')
38bg = imread ( "erangel.jpg")
39fig, Ax = plt.subplots (1,1, figsize = (15,15))
40ax.imshow (bg)
41sns.kdeplot (df_second_er , df_second_er , cmap = cm.Blues, alpha = 0,7, ombre = Vrai)
42
43 # miramar heatmap
44bg = imread ( "miramar.jpg")
45fig, Ax = plt.subplots (1,1, figsize = (15,15))
46ax.imshow (bg)
47sns.kdeplot (df_second_mr , df_second_mr , cmap = cm.Blues, alpha = 0,8, ombre = Vrai)
Obtenir l'adresse de données: https: //www.kaggle.com/skihikingkevin/pubg-match-deaths#aggregate.zip.
Cet article a passé beaucoup d'efforts, pouces vers le haut, l'approbation et le soutien sont transmis à l'auteur.
Enfin, je vous souhaite à tous:
Avertissement: Cet article est administré par une personne autorisée à apprendre transférée de l'analyse des données, les auteurs: sauce à la carotte.
« amis » Appel à communications
RPSC n ° respecter le concept du public « et dix millions de personnes la croissance totale de la technologie, » non seulement aux « geeks gros titres », colonne « Chatteris » pour la première fois une description technique unique point de vue de la personne qui se soucie industrie de la technologie, la mise au point de l'événement, plus « titres techniques » colonne, et la scène dans la profondeur de l'application de l'industrie de la technologie chaude d'interprétation, de sorte que tous les développeurs de suivre les tendances technologiques, demeurent sens vigilant de la technologie de l'odorat, les tendances de l'industrie, la technologie est la connaissance plus complète.
Si vous avez de nouvelles idées dans des articles de haute qualité ou des événements de l'industrie chaud, les tendances technologiques idées ou application pratique de la profondeur des programmes de scène, veuillez contacter la soumission RPSC, Contact: lettre Micro (de guorui_1118, s'il vous plaît noter le nom + contribution + emplois des entreprises), boîte aux lettres (guorui@csdn.net).