#Dibuat Oleh Muhammad Ullil Fahri
# https://ullilfahri.skb.ovh/
#Import Libaray
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Set Searbon
sns.set(style="white",color_codes=True)
#data
bola = pd.read_csv("../data/databola.csv")
print(bola.head())
#Cek Apakah Ada Missing value
missing = pd.DataFrame(bola)
print("===================")
print(missing.isnull)
print("------------------")
#hting banyak label
label = bola["HASIL"].value_counts()
print(label)
#visualisasi plot Perbandingan Home Dan Draw
sns.jointplot(x="HOME",y="DRAW",data=bola,size=5)
#visualisasi plot Perbandingan Home Dan AWAY
sns.jointplot(x="HOME",y="AWAY",data=bola,size=5)
#visualisasi plot Perbandingan DRAW DAN AWAY
sns.jointplot(x="DRAW",y="AWAY",data=bola,size=5)
sns.boxplot(x="HASIL",y="HOME",data=bola)
#normalisasi data
from sklearn import preprocessing
X = bola[["HOME","AWAY","DRAW"]]
print(X)
X_transform = preprocessing.scale(X)
print(X_transform)
#mULAI pREDIKSI dENGA
Y = bola["HASIL"]
#naive bayes
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
training = gnb.fit(X_transform,Y)
prediksi = gnb.predict(X_transform)
#neurel network
from sklearn.neural_network import MLPClassifier
nn = MLPClassifier(hidden_layer_sizes=(10))
trainingnn = nn.fit(X_transform,Y)
prediksinn = nn.predict(X_transform)
from sklearn.tree import DecisionTreeClassifier
dc = DecisionTreeClassifier()
traingdc = dc.fit(X_transform,Y)
prediksidc = dc.predict(X_transform)
#menghitung akurasi
from sklearn import metrics
akurasi = metrics.accuracy_score(Y,prediksi)
akurasinn = metrics.accuracy_score(Y,prediksinn)
akurasidc = metrics.accuracy_score(Y,prediksidc)
print("Akurasi naive Bayes : ", akurasi * 100 , " %" )
print("Akurasi Neurel Network ", akurasinn * 100 , " %")
print("Akurasi Decision Tree ", akurasidc * 100 , " %")
#Prediksi Dengan Decision Tree Lebih besar.
#Contoh
#Terdapat Pertandingan Antara Totentham Vs Manc.City
#Nilai ODDS Home : 4.00
#Nilai Odds Away : 1.80
#Nilai Odds Draw : 4.00
#TIM Mana Yang Akan menang ?
home=4
away=1.8
draw=4
x_prediksi = [[home,away,draw]]
prediksi1=gnb.predict(x_prediksi)
print("Prediksi Naive Bayes : " , prediksi1 )
prediksi2=nn.predict(x_prediksi)
print("Prediksi Neural Network : ", prediksi2)
prediksi3 = dc.predict(x_prediksi)
print("Prediksi Decision Tree : ", prediksi3)
#output
#H = Home Menang , D = Hasil Draw , A = Away Menang