b06502078 謝承軒

library(dplyr, warn.conflicts = FALSE)
library(ggplot2)
library(magrittr)
library(e1071)
library(scales)
library(reshape2)
library(stats)
library(jpeg)
library(factoextra)
## Welcome! Related Books: `Practical Guide To Cluster Analysis in R` at https://goo.gl/13EFCZ

PART 1 part about PL(英格蘭超級足球聯賽)

分析各種進攻數據與聯賽排名的相關性

pl = read.csv("C:/Users/admin/Desktop/R/pl.csv")
plCor<-cor(pl[,c(1:7)])
plMelt<-melt(plCor,varnames = c("x","y"),value.name = "Correlation")
plMelt<-plMelt[order(plMelt$Correlation),]
ggplot(plMelt,aes(x=x,y=y))+
  geom_tile(aes(fill=Correlation))+
  scale_fill_gradient2(low="red",mid="white",high="darkblue",guide=guide_colorbar(ticks=FALSE,barheight=10),limits=c(-1,1))+
  theme_minimal()+
  labs(x=NULL,y=NULL)

RANK = 聯賽排名 SCORE = 得分 ASIST = 助攻

SHOT = 射門 SHOT ON TARGET = 射正(朝球門射出的球)

SQUARE PASS = 橫傳 CORNER KICK = 角球

可看出 傳球多寡對於勝負的結果影響不大 甚至可以說是極低

PART 2 part about samsung gaming

分析今年英雄聯盟世界冠軍隊隊伍數據

這支隊伍於團隊表現上面是目前五個聯賽裡最優秀的

SSG = read.csv("C:/Users/admin/Desktop/R/SSG.csv")
SSGCor<-cor(SSG[,c(1:4,6:8)])
SSGMelt<-melt(SSGCor,varnames = c("x","y"),value.name = "Correlation")
SSGMelt<-SSGMelt[order(SSGMelt$Correlation),]
ggplot(SSGMelt,aes(x=x,y=y))+
  geom_tile(aes(fill=Correlation))+
  scale_fill_gradient2(low="red",mid="white",high="darkblue",guide=guide_colorbar(ticks=FALSE,barheight=10),limits=c(-1,1))+
  theme_minimal()+
  labs(x=NULL,y=NULL)

大致上各項數據都符合邏輯

可以看出這個遊戲的擊殺助攻與死亡並沒有太大的相關性(畢竟dota遊戲)

而這支隊伍由於團隊溝通(隊友配合)較佳 因此擊殺與助攻相關性頗大

由普遍來說最為直觀的數據 擊殺死亡助攻(kda)判斷比賽勝負

sec 1

由擊殺與死亡判斷

train_data1 <- SSG[1:22,c(1,2,4)]
test_data1 <- SSG[23:37, c(2,4)]
svm_fit1 = svm(as.factor(W.L) ~ ., data = train_data1, 
             kernel = "polynomial", 
             cost = 20, scale = FALSE)
plot(svm_fit1, train_data1)

SSG_predicted1 <- predict(svm_fit1, test_data1)
result1 = table(SSG_predicted1,SSG[23:37,1])
print(result1)
##               
## SSG_predicted1 0 1
##              0 3 5
##              1 0 7

準確率為0.667 偏低

sec 2

加入時間因素 由分鐘擊殺與死亡判斷

train_data2 <- SSG[1:22,c(1,6,8)]
test_data2 <- SSG[23:37, c(6,8)]
svm_fit2 = svm(as.factor(W.L) ~ ., data = train_data2, 
             kernel = "polynomial", 
             cost = 20, scale = FALSE)
plot(svm_fit2, train_data2)

SSG_predicted2 <- predict(svm_fit2, test_data2)
result2 = table(SSG_predicted2,SSG[23:37,1])
print(result2)
##               
## SSG_predicted2  0  1
##              0  3  1
##              1  0 11

準確率為 0.933

sec 3

由分鐘擊殺與死亡判斷 並將training data增加

train_data3 <- SSG[1:27,c(1,6,8)]
test_data3 <- SSG[28:37, c(6,8)]
svm_fit3 = svm(as.factor(W.L) ~ ., data = train_data3, 
             kernel = "polynomial", 
             cost = 20, scale = FALSE)
plot(svm_fit3, train_data3)

SSG_predicted3 <- predict(svm_fit3, test_data3)
result3 = table(SSG_predicted3,SSG[28:37,1])
print(result3)
##               
## SSG_predicted3 0 1
##              0 1 0
##              1 0 9

準確率為 1

應調高數據數量研究其可用性

但因網路上沒有已經統計好的數據

因此上述用來測試的數據為我一個一個紀錄的 一時之間沒辦法紀錄太多

未來可以以此為基礎 研究一個模組分析比賽勝負