Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created August 27, 2020 10:56
Show Gist options
  • Save codecademydev/9ea00830fdd1c61fc3df1dcbbedf852e to your computer and use it in GitHub Desktop.
Save codecademydev/9ea00830fdd1c61fc3df1dcbbedf852e to your computer and use it in GitHub Desktop.
Codecademy export
import codecademylib3_seaborn
import matplotlib.pyplot as plt
import numpy as np
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from svm_visualization import draw_boundary
from players import aaron_judge, jose_altuve, david_ortiz
def find_opt_SVC_paremeters(training_data, training_set, validation_data, validation_set):
gamma_p = 30
C_p = 30
opt_gamma = 0
opt_c = 0
max_gamma_score = []
max_c_score = []
for i in range(1, gamma_p):
gamma_p-=1
classifier = SVC(gamma=gamma_p, C=C_p)
classifier.fit(training_data, training_set)
max_gamma_score.append(classifier.score(validation_data, validation_set))
opt_gamma = 29-np.argmax(max_gamma_score)
for j in range(1, 30):
C_p-=1
classifier = SVC(gamma=opt_gamma, C=C_p)
classifier.fit(training_data, training_set)
max_c_score.append(classifier.score(validation_data, validation_set))
opt_c = 29-np.argmax(max_c_score)
return opt_gamma, opt_c
def SVM_prediction_machine(dataset, athlete_name):
fig, ax = plt.subplots()
dataset['type'] = dataset['type'].map({'S':1, 'B':0})
dataset = dataset.dropna(subset = ['plate_x', 'plate_z', 'type'])
plt.scatter(x = dataset['plate_x'], y = dataset['plate_z'], c = dataset['type'], cmap = plt.cm.coolwarm, alpha = 0.5)
plt.xlabel('plate_x')
plt.ylabel('plate_z')
training_set, validation_set = train_test_split(dataset, random_state=1)
training_features = training_set[['plate_x', 'plate_z', 'strikes']]
validation_features = validation_set[['plate_x', 'plate_z', 'strikes']]
opt_gamma, opt_c = find_opt_SVC_paremeters(training_features, training_set['type'], validation_features, validation_set['type'])
print(athlete_name)
print('gamma -', opt_gamma, 'C -', opt_c, sep=' ')
classifier = SVC(gamma=opt_gamma, C=opt_c)
classifier.fit(training_features, training_set['type'])
print('model_score -', classifier.score(validation_features, validation_set['type']), sep=' ')
#draw_boundary(ax, classifier)
#plt.show()
return
SVM_prediction_machine(aaron_judge, 'aaron_judge')
SVM_prediction_machine(jose_altuve, 'jose_altuve')
SVM_prediction_machine(david_ortiz, 'david_ortiz')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment