Pada kasus ini kita akan analysis dan prediksi bagaimana kita agar bisa menang dalam suatu round di game CSGO
Terkadang kita ingin memprediksi data yang bersifat kategorik maka artinya tidak bisa menggunakan model regresi dan solusinya kita bisa menggunakan logistik regresi
Pada dataset ini kita akan menggunakan data Round Winner Classification dari game CSGO yaitu data history per round yang dihasilkan dengan tipe data kategorik dan numerik.
Total data yang ada di dateset ini adalah 96 variabel prediktor dan 1 variabel target dengan 122.410 observasi. Karena data yang ada sangat banyak, kita akan menggunakan sekita 5 persen dari seleruh observasi saja
Dataset ini didapat dari kaggle.com
Tentang data set (diterjemahkan dari bahasa inggris):
Dataset terdiri dari snapshot putaran dari sekitar 700 demo dari permainan turnamen tingkat tinggi pada tahun 2019 dan 2020. Putaran pemanasan dan restart telah difilter, dan untuk putaran live yang tersisa, snapshot putaran telah direkam setiap 20 detik hingga putaran diputuskan.Setelah publikasi awalnya, Ini telah diproses sebelumnya dan diratakan untuk meningkatkan keterbacaan dan memudahkan algoritma untuk diproses. Jumlah total snapshot adalah 122411. Snapshot adalah i.i.d dan harus diperlakukan sebagai titik data individual, bukan sebagai bagian dari kecocokan.
library(knitr)
library(caret)
## Warning: package 'caret' was built under R version 4.1.2
## Loading required package: ggplot2
## Loading required package: lattice
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
read <- read.csv("csgo_round_snapshots.csv")
set.seed(319)
# csgo <- read[0:50,]
data <- sample(nrow(read), nrow(read)*0.05 )
csgo <- read[data,]
csgo
glimpse(csgo)
## Rows: 6,120
## Columns: 97
## $ time_left <dbl> 95.02, 14.95, 34.95, 94.96, 174.91, 94.96~
## $ ct_score <dbl> 15, 11, 5, 7, 16, 8, 7, 7, 6, 14, 4, 0, 1~
## $ t_score <dbl> 14, 7, 6, 9, 15, 9, 5, 13, 0, 11, 4, 6, 1~
## $ map <chr> "de_mirage", "de_mirage", "de_dust2", "de~
## $ bomb_planted <chr> "False", "False", "False", "False", "Fals~
## $ ct_health <dbl> 500, 272, 466, 500, 500, 500, 144, 472, 5~
## $ t_health <dbl> 500, 268, 460, 500, 500, 500, 303, 500, 5~
## $ ct_armor <dbl> 487, 294, 100, 478, 400, 286, 0, 0, 480, ~
## $ t_armor <dbl> 500, 293, 400, 500, 0, 478, 334, 487, 500~
## $ ct_money <dbl> 28350, 600, 11800, 350, 67100, 13200, 385~
## $ t_money <dbl> 1050, 3600, 18600, 1700, 65350, 15700, 60~
## $ ct_helmets <dbl> 5, 1, 0, 4, 3, 2, 0, 0, 5, 3, 3, 1, 3, 1,~
## $ t_helmets <dbl> 5, 3, 5, 3, 0, 5, 4, 5, 5, 5, 5, 4, 0, 4,~
## $ ct_defuse_kits <dbl> 5, 0, 0, 0, 3, 0, 0, 0, 5, 0, 1, 1, 2, 1,~
## $ ct_players_alive <dbl> 5, 3, 5, 5, 5, 5, 2, 5, 5, 5, 4, 4, 3, 5,~
## $ t_players_alive <dbl> 5, 3, 5, 5, 5, 5, 4, 5, 5, 5, 5, 4, 3, 5,~
## $ ct_weapon_ak47 <dbl> 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,~
## $ t_weapon_ak47 <dbl> 5, 2, 0, 0, 0, 2, 1, 2, 4, 4, 0, 0, 0, 3,~
## $ ct_weapon_aug <dbl> 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_aug <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_awp <dbl> 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1,~
## $ t_weapon_awp <dbl> 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1,~
## $ ct_weapon_bizon <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_bizon <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_cz75auto <dbl> 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0,~
## $ t_weapon_cz75auto <dbl> 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0,~
## $ ct_weapon_elite <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_elite <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_famas <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_famas <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_g3sg1 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_g3sg1 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_galilar <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_galilar <dbl> 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_glock <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_glock <dbl> 5, 3, 4, 1, 5, 2, 3, 4, 5, 1, 5, 2, 0, 4,~
## $ ct_weapon_m249 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_m249 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_m4a1s <dbl> 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_m4a1s <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_m4a4 <dbl> 2, 2, 0, 0, 1, 0, 0, 0, 3, 5, 4, 1, 1, 4,~
## $ t_weapon_m4a4 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,~
## $ ct_weapon_mac10 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,~
## $ t_weapon_mac10 <dbl> 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_mag7 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_mag7 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_mp5sd <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_mp5sd <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_mp7 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_mp7 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_mp9 <dbl> 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,~
## $ t_weapon_mp9 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_negev <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_negev <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_nova <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_nova <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_p90 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_p90 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_r8revolver <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_r8revolver <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_sawedoff <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_sawedoff <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_scar20 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_scar20 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_sg553 <dbl> 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,~
## $ t_weapon_sg553 <dbl> 0, 0, 2, 0, 0, 0, 2, 2, 1, 0, 5, 2, 1, 0,~
## $ ct_weapon_ssg08 <dbl> 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_ssg08 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_ump45 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_ump45 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_xm1014 <dbl> 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_xm1014 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_deagle <dbl> 0, 0, 4, 0, 0, 3, 0, 4, 0, 0, 0, 1, 0, 0,~
## $ t_weapon_deagle <dbl> 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 2, 0,~
## $ ct_weapon_fiveseven <dbl> 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_fiveseven <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,~
## $ ct_weapon_usps <dbl> 0, 3, 1, 5, 5, 1, 2, 0, 4, 4, 4, 3, 1, 4,~
## $ t_weapon_usps <dbl> 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,~
## $ ct_weapon_p250 <dbl> 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0,~
## $ t_weapon_p250 <dbl> 0, 0, 1, 2, 0, 1, 1, 1, 0, 2, 0, 1, 0, 0,~
## $ ct_weapon_p2000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,~
## $ t_weapon_p2000 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_weapon_tec9 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_weapon_tec9 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_grenade_hegrenade <dbl> 5, 1, 0, 0, 2, 1, 0, 0, 4, 3, 0, 0, 2, 4,~
## $ t_grenade_hegrenade <dbl> 0, 1, 0, 0, 0, 1, 0, 2, 1, 2, 1, 0, 1, 2,~
## $ ct_grenade_flashbang <dbl> 4, 1, 0, 1, 1, 1, 0, 0, 5, 4, 2, 0, 3, 5,~
## $ t_grenade_flashbang <dbl> 3, 1, 0, 3, 0, 4, 4, 5, 5, 5, 5, 1, 0, 4,~
## $ ct_grenade_smokegrenade <dbl> 2, 0, 0, 4, 1, 0, 0, 0, 5, 4, 1, 0, 3, 5,~
## $ t_grenade_smokegrenade <dbl> 4, 0, 0, 0, 0, 3, 4, 4, 5, 5, 5, 0, 1, 4,~
## $ ct_grenade_incendiarygrenade <dbl> 2, 0, 0, 0, 1, 0, 0, 0, 5, 5, 1, 0, 0, 3,~
## $ t_grenade_incendiarygrenade <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ ct_grenade_molotovgrenade <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_grenade_molotovgrenade <dbl> 3, 2, 0, 0, 0, 5, 1, 5, 5, 5, 3, 0, 0, 2,~
## $ ct_grenade_decoygrenade <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ t_grenade_decoygrenade <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,~
## $ round_winner <chr> "CT", "CT", "T", "CT", "CT", "T", "T", "T~
19 of 97 Variabel.
CT: Counter-Terrorist. T: Terrorist.
time_left Waktu tersisa di babak.
ct_score Skor saat ini untuk tim Counter-Terrorist.
t_score Skor saat ini untuk tim Terrorist.
map Peta saat ini.
bomb_planted Apakah bom telah ditanam atau tidak.
ct_health Jumlah Darah semua pemain Counter-Terrorist.
t_health Jumlah Darah semua pemain Terrorist.
ct_armor Armor total dari semua pemain Counter-Terrorist.
t_armor Armor total dari semua pemain Terrorist.
ct_money Total uang semua pemain Counter-Terrorist.
t_money Total uang semua pemain Terrorist.
ct_helmet Jumlah helm di Counter-Terrorist.
t_helmet Jumlah helm di Terrorist.
ct_defuse_kits Jumlah kit defuse pada team Counter-Terrorist.
ct_players_alive Jumlah pemain yang hidup di Counter-Terrorist.
t_players_alive Jumlah pemain yang hidup di Terrorist.
ct_weapon_ak47 jumlah senjata Ak 47 pada team Counter-Terrorist.
t_senjata_ak47 jumlah senjata Ak 47 pada team Terrorist.
putaran_pemenang Team Pemenang di dalam round.
97 of 97 Variabel.
CT: Counter-Terrorist. T: Terrorist.
time_left Waktu tersisa di babak.
ct_score Skor saat ini untuk tim Counter-Terrorist.
t_score Skor saat ini untuk tim Terrorist.
map Peta saat ini.
bomb_planted Apakah bom telah ditanam atau tidak.
ct_health Jumlah Darah semua pemain Counter-Terrorist.
t_health Jumlah Darah semua pemain Terrorist.
ct_armor Armor total dari semua pemain Counter-Terrorist.
t_armor Armor total dari semua pemain Terrorist.
ct_money Total uang semua pemain Counter-Terrorist.
t_money Total uang semua pemain Terrorist.
ct_helmet Jumlah helm di Counter-Terrorist.
t_helmet Jumlah helm di Terrorist.
ct_defuse_kits Jumlah kit defuse pada team Counter-Terrorist.
ct_players_alive Jumlah pemain yang hidup di Counter-Terrorist.
t_players_alive Jumlah pemain yang hidup di Terrorist.
ct_weapon_ak47 jumlah senjata Ak 47 pada team Counter-Terrorist.
t_senjata_ak47 jumlah senjata Ak 47 pada team Terrorist.
ct_weapon_aug jumlah senjata Aug pada team Counter-Terrorist.
t_weapon_aug jumlah senjata Aug pada team Terrorist.
ct_weapon_awp jumlah senjata AWP pada team Counter-Terrorist.
t_senjata_awp jumlah senjata AWP pada team Terrorist.
ct_weapon_bizon jumlah senjata Bizon pada team Counter-Terrorist.
t_senjata_bizon jumlah senjata Bizon pada team Terrorist.
ct_weapon_cz75auto jumlah senjata CZ-75 Auto pada team Counter-Terrorist.
t_weapon_cz75auto jumlah senjata CZ-75 Auto pada team Terrorist.
ct_weapon_elite jumlah senjata Elite pada team Counter-Terrorist.
t_weapon_elite jumlah senjata Elite pada team Terrorist.
ct_weapon_famas jumlah senjata Famas pada team Counter-Terrorist.
t_weapon_famas jumlah senjata Famas pada team Terrorist.
ct_weapon_g3sg1 jumlah senjata G3SG1 pada team Counter-Terrorist.
t_weapon_g3sg1 jumlah senjata G3SG1 pada team Terrorist.
ct_weapon_galilar jumlah senjata Galil AR pada team Counter-Terrorist.
t_senjata_galilar jumlah senjata Galil AR pada team Terrorist.
ct_weapon_glock jumlah senjata Glock pada team Counter-Terrorist.
t_weapon_glock jumlah senjata Glock pada team Terrorist.
ct_weapon_m249 jumlah senjata M249 pada team Counter-Terrorist.
t_senjata_m249 jumlah senjata M249 pada team Terrorist.
ct_weapon_m4a1s jumlah senjata M4A1S pada team Counter-Terrorist.
t_senjata_m4a1s jumlah senjata M4A1S pada team Terrorist.
ct_weapon_m4a4 jumlah senjata M4A4 pada team Counter-Terrorist.
t_senjata_m4a4 jumlah senjata M4A4 pada team Terrorist.
ct_weapon_mac10 Jumlah senjata MAC10 pada team Counter-Terrorist.
t_weapon_mac10 Jumlah senjata MAC10 pada team Terrorist.
ct_weapon_mag7 Jumlah senjata MAG7 pada team Counter-Terrorist.
t_weapon_mag7 Jumlah senjata MAG7 pada team Terrorist.
ct_weapon_mp5sd Jumlah senjata MP5SD pada team Counter-Terrorist.
t_weapon_mp5sd Jumlah senjata MP5SD pada team Terrorist.
ct_weapon_mp7 Jumlah senjata MP7 pada team Counter-Terrorist.
t_weapon_mp7 Jumlah senjata MP7 pada team Terrorist.
ct_weapon_mp9 Jumlah senjata MP9 pada team Counter-Terrorist.
t_weapon_mp9 Jumlah senjata MP9 pada team Terrorist.
ct_weapon_negev Jumlah senjata NEGEV pada team Counter-Terrorist.
t_weapon_negev Jumlah senjata NEGEV pada team Terrorist.
ct_weapon_nova Jumlah senjata NOVA pada team Counter-Terrorist.
t_weapon_nova Jumlah senjata NOVA pada team Terrorist.
ct_weapon_p90 Jumlah senjata P90 pada team Counter-Terrorist.
t_senjata_p90 Jumlah senjata P90 pada team Terrorist.
ct_weapon_r8revolver Jumlah senjata R8REVOLVER pada team Counter-Terrorist.
t_weapon_r8revolver Jumlah senjata R8REVOLVER pada team Terrorist.
ct_weapon_sawedoff Jumlah senjata SAWEDOFF pada team Counter-Terrorist.
t_weapon_sawedoff Jumlah senjata SAWEDOFF pada team Terrorist.
ct_weapon_scar20 Jumlah senjata SCAR20 pada team Counter-Terrorist.
t_weapon_scar20 Jumlah senjata SCAR20 pada team Terrorist.
ct_weapon_sg553 Jumlah senjata SG553 pada team Counter-Terrorist.
t_weapon_sg553 Jumlah senjata SG553 pada team Terrorist.
ct_weapon_ssg08 Jumlah senjata SSG08 pada team Counter-Terrorist.
t_weapon_ssg08 Jumlah senjata SSG08 pada team Terrorist.
ct_weapon_ump45 Jumlah senjata UMP45 pada team Counter-Terrorist.
t_weapon_ump45 Jumlah senjata UMP45 pada team Terrorist.
ct_weapon_xm1014 Jumlah senjata XM1014 pada team Counter-Terrorist.
t_senjata_xm1014 Jumlah senjata XM1014 pada team Terrorist.
ct_weapon_deagle Jumlah senjata DEAGLE pada team Counter-Terrorist.
t_weapon_deagle Jumlah senjata DEAGLE pada team Terrorist.
ct_weapon_fiveseven Jumlah senjata FIVESEVEN pada team Counter-Terrorist.
t_weapon_fiveseven Jumlah senjata FIVESEVEN pada team Terrorist.
ct_weapon_usps Jumlah senjata USPS pada team Counter-Terrorist.
t_weapon_usps Jumlah senjata USPS pada team Terrorist.
ct_weapon_p250 Jumlah senjata P250 pada team Counter-Terrorist.
t_senjata_p250 Jumlah senjata P250 pada team Terrorist.
ct_weapon_p2000 Jumlah senjata P2000 pada team Counter-Terrorist.
t_senjata_p2000 Jumlah senjata P2000 pada team Terrorist.
ct_weapon_tec9 Jumlah senjata TEC9 pada team Counter-Terrorist.
t_weapon_tec9 Jumlah senjata TEC9 pada team Terrorist.
ct_grenade_hegrenade Jumlah granat HEGRANAT pada team Counter-Terrorist.
t_grenade_hegrenade Jumlah granat HEGRANAT pada team Terrorist.
ct_grenade_flashbang Jumlah granat FLASHBANG pada team Counter-Terrorist.
t_grenade_flashbang Jumlah granat FLASHBANG pada team Terrorist.
ct_grenade_smokegrenade. Jumlah granat SMOKE pada team Counter-Terrorist.
t_grenade_smokegrenade. Jumlah granat SMOKE pada team Terrorist.
ct_grenade_incendiarygrenade. Jumlah granat INCENDIARY pada team Counter-Terrorist.
t_granat_pembakaran granat. Jumlah granat INCENDIARY pada team Terrorist.
ct_grenade_molotovgranat. Jumlah granat MOLOTOV pada team Counter-Terrorist.
t_granat_molotovgranat. Jumlah granat MOLOTOV pada team Terrorist.
ct_grenade_decoygrenade. Jumlah granat DECOY pada team Counter-Terrorist.
t_grenade_decoygrenade. Jumlah granat DECOY pada team Terrorist.
putaran_pemenang Team Pemenang di sebuah round.
Karena belum semua kolom yang tipe datanya sesuai, kita harus sesuaikan dulu
csgo <-
csgo %>%
mutate_at(vars(map, round_winner,bomb_planted), as.factor)
Agar menghasilkan model yang baik kita harus atasi missing value
anyNA(csgo)
## [1] FALSE
Karena tidak ada missing value data tidak perlu di beri treatment
Sebelum melakukan pemodelan, kita perlu melihat terlebih dahulu proporsi dari target variabel yang kita miliki pada kolom target. target = round_winner CT: Counter-Terrorist T: Terrorist
prop.table(table(csgo$round_winner))
##
## CT T
## 0.4813725 0.5186275
table(csgo$round_winner)
##
## CT T
## 2946 3174
Dilihat dari proporsi diatas bisa dikatakan proporsi data balance, sehingga kita tidak perlu balancing data, karena jika data tidak seimbang hasil pemodelan tidak bagus
Sebelum melakukan pemodelan kita harus dipisahkan, Tujuan pemisahan data train(belajar) dan data test(uji) adalah teknik untuk mengevaluasi kinerja machine learning algorithma. Prosedurnya melibatkan pengambilan dataset dan membaginya menjadi dua subset.
Pada kasus ini kita akan memisahkan 80% 20% , 80% untuk data train dan 20% untuk data test
set.seed(319)
index <- sample(x = nrow(csgo), size = nrow(csgo)*0.80 )
train <- csgo[index,]
test <- csgo[-index,]
Jika menggunakan regresi logistik, kita akan menggunakan fungsi glm(), Dalam regresi logistik variabel akan dipilih yang terbaik
model_lr_1 <- glm(formula = round_winner ~.,family = "binomial", data = train)
summary(model_lr_1)
##
## Call:
## glm(formula = round_winner ~ ., family = "binomial", data = train)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -2.9306 -0.7929 0.1300 0.7659 2.6862
##
## Coefficients: (15 not defined because of singularities)
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 8.244e-01 1.319e+00 0.625 0.532042
## time_left 4.803e-03 1.605e-03 2.993 0.002762 **
## ct_score -9.182e-03 1.065e-02 -0.862 0.388755
## t_score 1.213e-03 1.064e-02 0.114 0.909177
## mapde_dust2 -9.862e-01 1.288e+00 -0.766 0.443803
## mapde_inferno -1.130e+00 1.289e+00 -0.877 0.380396
## mapde_mirage -1.257e+00 1.289e+00 -0.975 0.329470
## mapde_nuke -1.303e+00 1.288e+00 -1.012 0.311523
## mapde_overpass -1.221e+00 1.290e+00 -0.946 0.343983
## mapde_train -1.347e+00 1.290e+00 -1.045 0.296198
## mapde_vertigo -1.603e+00 1.292e+00 -1.241 0.214682
## bomb_plantedTrue 8.620e-01 1.835e-01 4.699 2.62e-06 ***
## ct_health -7.477e-03 1.596e-03 -4.686 2.79e-06 ***
## t_health 3.564e-03 1.268e-03 2.811 0.004942 **
## ct_armor -2.684e-03 5.109e-04 -5.255 1.48e-07 ***
## t_armor 2.625e-03 5.807e-04 4.520 6.18e-06 ***
## ct_money -1.941e-05 5.399e-06 -3.596 0.000323 ***
## t_money 1.143e-05 4.657e-06 2.453 0.014157 *
## ct_helmets 7.821e-02 4.534e-02 1.725 0.084501 .
## t_helmets 2.244e-01 8.016e-02 2.799 0.005120 **
## ct_defuse_kits -1.291e-03 4.524e-02 -0.029 0.977228
## ct_players_alive -2.974e-01 3.689e-01 -0.806 0.420126
## t_players_alive 6.982e-01 3.162e-01 2.208 0.027259 *
## ct_weapon_ak47 -4.980e-01 8.806e-02 -5.655 1.56e-08 ***
## t_weapon_ak47 3.760e-01 8.014e-02 4.692 2.70e-06 ***
## ct_weapon_aug -5.300e-01 9.760e-02 -5.430 5.62e-08 ***
## t_weapon_aug 2.942e-01 4.103e-01 0.717 0.473317
## ct_weapon_awp -4.474e-01 8.315e-02 -5.380 7.45e-08 ***
## t_weapon_awp 4.931e-01 1.113e-01 4.430 9.44e-06 ***
## ct_weapon_bizon NA NA NA NA
## t_weapon_bizon NA NA NA NA
## ct_weapon_cz75auto 2.479e-01 3.419e-01 0.725 0.468452
## t_weapon_cz75auto -1.758e-01 3.076e-01 -0.571 0.567714
## ct_weapon_elite 2.481e-01 5.949e-01 0.417 0.676681
## t_weapon_elite -1.790e+00 9.030e-01 -1.983 0.047420 *
## ct_weapon_famas -3.148e-01 1.094e-01 -2.878 0.004001 **
## t_weapon_famas 4.607e-01 6.623e-01 0.696 0.486658
## ct_weapon_g3sg1 NA NA NA NA
## t_weapon_g3sg1 -6.710e-01 1.945e+00 -0.345 0.730111
## ct_weapon_galilar 7.168e-02 3.197e-01 0.224 0.822619
## t_weapon_galilar 2.728e-01 1.174e-01 2.324 0.020104 *
## ct_weapon_glock -4.800e-02 6.320e-01 -0.076 0.939460
## t_weapon_glock -3.036e-01 2.882e-01 -1.053 0.292201
## ct_weapon_m249 NA NA NA NA
## t_weapon_m249 NA NA NA NA
## ct_weapon_m4a1s -5.465e-01 1.532e-01 -3.568 0.000360 ***
## t_weapon_m4a1s 1.004e+00 7.324e-01 1.370 0.170542
## ct_weapon_m4a4 -4.098e-01 6.416e-02 -6.387 1.69e-10 ***
## t_weapon_m4a4 3.907e-01 1.761e-01 2.219 0.026471 *
## ct_weapon_mac10 2.291e-01 3.857e-01 0.594 0.552478
## t_weapon_mac10 2.597e-01 1.374e-01 1.890 0.058808 .
## ct_weapon_mag7 -3.330e-01 7.483e-01 -0.445 0.656269
## t_weapon_mag7 1.184e+01 5.354e+02 0.022 0.982355
## ct_weapon_mp5sd -1.498e+00 1.195e+00 -1.254 0.210007
## t_weapon_mp5sd -1.375e-01 7.889e-01 -0.174 0.861681
## ct_weapon_mp7 1.506e+00 1.103e+00 1.365 0.172136
## t_weapon_mp7 -1.151e+00 8.264e-01 -1.393 0.163503
## ct_weapon_mp9 -4.888e-01 1.024e-01 -4.773 1.82e-06 ***
## t_weapon_mp9 -7.520e-02 6.110e-01 -0.123 0.902053
## ct_weapon_negev NA NA NA NA
## t_weapon_negev NA NA NA NA
## ct_weapon_nova -1.872e+00 1.323e+00 -1.414 0.157244
## t_weapon_nova NA NA NA NA
## ct_weapon_p90 NA NA NA NA
## t_weapon_p90 NA NA NA NA
## ct_weapon_r8revolver NA NA NA NA
## t_weapon_r8revolver NA NA NA NA
## ct_weapon_sawedoff NA NA NA NA
## t_weapon_sawedoff NA NA NA NA
## ct_weapon_scar20 1.257e+01 2.366e+02 0.053 0.957624
## t_weapon_scar20 NA NA NA NA
## ct_weapon_sg553 -4.529e-01 9.395e-02 -4.820 1.43e-06 ***
## t_weapon_sg553 4.041e-01 8.251e-02 4.897 9.73e-07 ***
## ct_weapon_ssg08 -3.497e-01 1.823e-01 -1.919 0.055025 .
## t_weapon_ssg08 3.315e-01 2.876e-01 1.153 0.248968
## ct_weapon_ump45 -2.756e-01 1.670e-01 -1.650 0.098870 .
## t_weapon_ump45 1.658e-01 2.176e-01 0.762 0.445975
## ct_weapon_xm1014 -2.301e-01 4.421e-01 -0.520 0.602760
## t_weapon_xm1014 -1.173e+01 5.354e+02 -0.022 0.982515
## ct_weapon_deagle 1.009e-01 3.342e-01 0.302 0.762831
## t_weapon_deagle -2.180e-01 2.942e-01 -0.741 0.458667
## ct_weapon_fiveseven 1.626e-01 3.555e-01 0.457 0.647485
## t_weapon_fiveseven -8.022e-01 4.718e-01 -1.700 0.089037 .
## ct_weapon_usps 2.635e-01 3.303e-01 0.798 0.425027
## t_weapon_usps 2.215e-02 3.045e-01 0.073 0.942001
## ct_weapon_p250 1.442e-01 3.386e-01 0.426 0.670292
## t_weapon_p250 -2.696e-01 2.969e-01 -0.908 0.363753
## ct_weapon_p2000 2.797e-01 3.397e-01 0.823 0.410317
## t_weapon_p2000 7.693e-01 8.606e-01 0.894 0.371367
## ct_weapon_tec9 -1.351e-02 5.462e-01 -0.025 0.980268
## t_weapon_tec9 3.223e-02 3.457e-01 0.093 0.925718
## ct_grenade_hegrenade -6.803e-02 4.755e-02 -1.431 0.152500
## t_grenade_hegrenade 6.703e-02 5.522e-02 1.214 0.224861
## ct_grenade_flashbang 2.699e-02 4.798e-02 0.563 0.573664
## t_grenade_flashbang -1.207e-01 4.687e-02 -2.575 0.010027 *
## ct_grenade_smokegrenade -9.401e-03 4.703e-02 -0.200 0.841585
## t_grenade_smokegrenade -1.188e-01 4.581e-02 -2.593 0.009516 **
## ct_grenade_incendiarygrenade 1.312e-01 4.833e-02 2.714 0.006640 **
## t_grenade_incendiarygrenade 3.420e-02 2.615e-01 0.131 0.895953
## ct_grenade_molotovgrenade 3.293e-01 1.561e-01 2.110 0.034885 *
## t_grenade_molotovgrenade -8.486e-02 4.458e-02 -1.904 0.056971 .
## ct_grenade_decoygrenade 1.129e-01 2.149e-01 0.525 0.599381
## t_grenade_decoygrenade 8.385e-02 2.166e-01 0.387 0.698715
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 6778.6 on 4895 degrees of freedom
## Residual deviance: 4548.6 on 4808 degrees of freedom
## AIC: 4724.6
##
## Number of Fisher Scoring iterations: 12
Selanjutnya kita akan menggunakan fitur step wise, Tujuannya agar kita bisa mendapakan variabel yang signifikan memberikan dampak ke variabel target, Kita sebaiknya menggunakan ini karna model yang kita buat sebelumnya banyak variabel yang tidak signifikan mempengaruhi variabel target.
model_lr <- step(object = model_lr_1, direction = "backward", trace=F)
Selanjutnya kita akan menggunakan model ini untuk melakukan prediksi
test$prob <- predict(model_lr, type = "response", newdata = test)
Melakukan prediksi dengan model model_lr
test$pred <- factor(ifelse(test$prob > 0.5, "T", "CT" ))
test %>%
select(round_winner, pred, prob, everything())
Melalukan pemilihan category pemenang berdasarkan nilai probability menggunakan fitur if-else
confusionMatrix(test$pred, test$round_winner, positive = "T")
## Confusion Matrix and Statistics
##
## Reference
## Prediction CT T
## CT 425 147
## T 176 476
##
## Accuracy : 0.7361
## 95% CI : (0.7105, 0.7606)
## No Information Rate : 0.509
## P-Value [Acc > NIR] : <2e-16
##
## Kappa : 0.4716
##
## Mcnemar's Test P-Value : 0.1192
##
## Sensitivity : 0.7640
## Specificity : 0.7072
## Pos Pred Value : 0.7301
## Neg Pred Value : 0.7430
## Prevalence : 0.5090
## Detection Rate : 0.3889
## Detection Prevalence : 0.5327
## Balanced Accuracy : 0.7356
##
## 'Positive' Class : T
##
bisa dilihat bahawa nilai Sensitivity 0.77 yang artinya model mampu menebak T menang sebesar 77% ### Interpretation
model_lr$coefficients %>%
data.frame()
Dikarenakan nilai yang ditampilkan adalah nilai Log Of Odds, kita harus mengubahnya ke Odds agar bisa di interpretasikan menggunakan fungsi exp.
exp(model_lr$coefficients) %>%
data.frame()
Nilai odds di atas bisa menjadi bahan untuk interpretasi seperti dibawah
Jika saya memposisikan menjadi seorang T(Teroris) pada game tersebut dan ingin menang dalam sebuah round, Saya harus plant bomb karena 2.3Kali lebih mungkin menang dan menggunakan senjata deagle atau dan mp7 atau dan cz75auto atau dan glock dan menggunakan smokegrenade,flashbang dan molotovgrenade meskipun kalau dilihat dari kebanyakan nilai odds CT (Co unter-Teroris) pada dataset ini lebih memungkinkan untuk menang