-
-
Save codecademydev/9ea00830fdd1c61fc3df1dcbbedf852e to your computer and use it in GitHub Desktop.
Codecademy export
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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