# -*- coding: utf-8 -*-
"""
Created on Mon Sep 14 13:43:24 2020
@author: yazılım
"""
"""
Batuhan
"""
import numpy as num
import csv
import math
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import mean_squared_error, r2_score, accuracy_score
import numpy as np
"""
1-)
"""
df = pd.read_csv("Grand-slams-men-2013.csv",sep=",")
df =df[['ACE.1', 'ACE.2', 'Result']]
#okunamayan değerleri siliyorum
df = df.dropna()
df
"""
2-)
"""
y = df[["Result"]]
X = df.drop(["Result"], axis = 1)
X_train, X_test, y_train, y_test = train_test_split(X,
y,
test_size=0.30,
random_state=42)
#Hepsinin skoruna bakıyorum
liste=[]
kernel_icerik=["linear","poly","rbf"]
sayac=0
while 1:
if sayac !=3:
svm_model = SVC(gamma="auto",kernel = kernel_icerik[sayac] ).fit(X_train, y_train)
y_pred = svm_model.predict(X_test)
accuracy_score(y_test, y_pred)
print("%s skoru: %s"%(kernel_icerik[sayac],accuracy_score(y_test, y_pred)))
liste_eklemesi=("%s skoru: %s"%(kernel_icerik[sayac],accuracy_score(y_test, y_pred)))
liste.append(liste_eklemesi)
sayac=sayac+1
else:
break
# en iyi sonuç hangisinde çıkar onu anlamak için gridsearchCV yapıyorum
svm = SVC()
svm_params = {"gamma": ["auto","scale","auto_deprecated"], "kernel": ["linear","rbf","poly"]}
svm_cv_model = GridSearchCV(svm, svm_params, cv = 10, n_jobs = -1, verbose = 2).fit(X_train, y_train)
svm_cv_model.best_score_
svm_cv_model.best_params_
print("en iyi gamma değeri:%s, en iyi kernel:%s "%(svm_cv_model.best_params_["gamma"],svm_cv_model.best_params_["kernel"]))
# en uygun sonucu bu verecek
svm_tuned = SVC(gamma=svm_cv_model.best_params_["gamma"], kernel = svm_cv_model.best_params_["kernel"]).fit(X_train, y_train)
y_pred = svm_tuned.predict(X_test)
accuracy_score(y_test, y_pred)
for i in liste:
print(i)
print("en iyi sonuç skoru: %s"% accuracy_score(y_test, y_pred))
"""
TAHMİN
"""
oyuncu = pd.read_csv("Grand-slams-men-2013.csv",sep=",")
df
liste_metodlu_linear=[]
liste_metodlu_poly=[]
liste_metodlu_rbf=[]
kernel_icerik=["linear","poly","rbf"]
linear_1_kazandi=[]
linear_0_kazandi=[]
sayac1=0
sayac2=1
svm_model_linear = SVC(gamma="auto",kernel = "linear" ).fit(X_train, y_train)
while 1:
if sayac2 != 240:
get= df[sayac1:sayac2]
x1=list(get["ACE.1"])[0]
x2=list(get["ACE.2"])[0]
oyuncu_sec= oyuncu[sayac1:sayac2]
oyuncu1=list(oyuncu_sec['Player1'])[0]
oyuncu2=list(oyuncu_sec['Player2'])[0]
x_degerler = np.array([[str(x1),str(x2)]])
#print("x_yeni: {}".format(x_degerler.shape))
prediction = svm_model_linear.predict(x_degerler)
#print("tahmin: {}".format(prediction))
#print("tahmin sonucu: {}".format(prediction))
print("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0]))
if prediction[0] == 1:
linear_1_kazandi.append(prediction[0])
elif prediction[0] == 0:
linear_0_kazandi.append(prediction[0])
liste_metodlu_linear.append(("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0])))
sayac1=sayac1+1
sayac2=sayac2+1
else:
break
sayac1=0
sayac2=1
svm_model_poly = SVC(gamma="auto",kernel = "poly" ).fit(X_train, y_train)
while 1:
if sayac2 != 240:
get= df[sayac1:sayac2]
x1=list(get["ACE.1"])[0]
x2=list(get["ACE.2"])[0]
oyuncu_sec= oyuncu[sayac1:sayac2]
oyuncu1=list(oyuncu_sec['Player1'])[0]
oyuncu2=list(oyuncu_sec['Player2'])[0]
x_degerler = np.array([[str(x1),str(x2)]])
#print("x_yeni: {}".format(x_degerler.shape))
prediction = svm_model_poly.predict(x_degerler)
#print("tahmin: {}".format(prediction))
#print("tahmin sonucu: {}".format(prediction))
print("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0]))
liste_metodlu_poly.append(("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0])))
sayac1=sayac1+1
sayac2=sayac2+1
else:
break
sayac1=0
sayac2=1
svm_model_rbf = SVC(gamma="auto",kernel = "rbf" ).fit(X_train, y_train)
while 1:
if sayac2 != 240:
get= df[sayac1:sayac2]
x1=list(get["ACE.1"])[0]
x2=list(get["ACE.2"])[0]
oyuncu_sec= oyuncu[sayac1:sayac2]
oyuncu1=list(oyuncu_sec['Player1'])[0]
oyuncu2=list(oyuncu_sec['Player2'])[0]
x_degerler = np.array([[str(x1),str(x2)]])
#print("x_yeni: {}".format(x_degerler.shape))
prediction = svm_model_rbf.predict(x_degerler)
#print("tahmin: {}".format(prediction))
#print("tahmin sonucu: {}".format(prediction))
print("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0]))
liste_metodlu_rbf.append(("player 1:%s, player 2:%s, result:%s"%(oyuncu1,oyuncu2,prediction[0])))
sayac1=sayac1+1
sayac2=sayac2+1
else:
break
while 1:
secim=int(input("1-) linear,2-) poly,3-) rbf,4-) çıkış:"))
if secim==1:
for i in liste_metodlu_linear:
print(i)
elif secim==2:
for i in liste_metodlu_poly:
print(i)
elif secim==3:
for i in liste_metodlu_rbf:
print(i)
elif secim==4:
break