|
30 | 30 | from sklearn.grid_search import GridSearchCV
|
31 | 31 | from sklearn.metrics import make_scorer,precision_score, recall_score, f1_score
|
32 | 32 | from sklearn.cross_validation import train_test_split
|
33 |
| -y, X, y_test, X_test, labels = ocr_utils.load_E13B(chars_to_train = (48,51) , columns=(9,17), random_state=0) |
34 | 33 |
|
35 |
| -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1) |
| 34 | +if __name__ == '__main__': |
| 35 | + y, X, y_test, X_test, labels = ocr_utils.load_E13B(chars_to_train = (48,51) , columns=(9,17), random_state=0) |
36 | 36 |
|
37 |
| -pipe_svc = Pipeline([('scl', StandardScaler()), |
38 |
| - ('clf', SVC(random_state=1))]) |
| 37 | + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=1) |
39 | 38 |
|
40 |
| -param_range = [0.0001, 0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0] |
| 39 | + pipe_svc = Pipeline([('scl', StandardScaler()), |
| 40 | + ('clf', SVC(random_state=1))]) |
41 | 41 |
|
42 |
| -param_grid = [{'clf__C': param_range, |
43 |
| - 'clf__kernel': ['linear']}, |
44 |
| - {'clf__C': param_range, |
45 |
| - 'clf__gamma': param_range, |
46 |
| - 'clf__kernel': ['rbf']}] |
47 |
| -pipe_svc.fit(X_train, y_train) |
48 |
| -y_pred = pipe_svc.predict(X_test) |
| 42 | + param_range = [0.0001, 0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0] |
49 | 43 |
|
50 |
| -pos_label=y_train[0] |
51 |
| -print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
52 |
| -print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
53 |
| -print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
| 44 | + param_grid = [{'clf__C': param_range, |
| 45 | + 'clf__kernel': ['linear']}, |
| 46 | + {'clf__C': param_range, |
| 47 | + 'clf__gamma': param_range, |
| 48 | + 'clf__kernel': ['rbf']}] |
| 49 | + pipe_svc.fit(X_train, y_train) |
| 50 | + y_pred = pipe_svc.predict(X_test) |
54 | 51 |
|
55 |
| -scorer = make_scorer(f1_score, pos_label=pos_label) |
| 52 | + pos_label=y_train[0] |
| 53 | + print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
| 54 | + print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
| 55 | + print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred, pos_label=pos_label)) |
56 | 56 |
|
57 |
| -c_gamma_range = [0.01, 0.1, 1.0, 10.0] |
| 57 | + scorer = make_scorer(f1_score, pos_label=pos_label) |
58 | 58 |
|
59 |
| -param_grid = [{'clf__C': c_gamma_range, |
60 |
| - 'clf__kernel': ['linear']}, |
61 |
| - {'clf__C': c_gamma_range, |
62 |
| - 'clf__gamma': c_gamma_range, |
63 |
| - 'clf__kernel': ['rbf'],}] |
| 59 | + c_gamma_range = [0.01, 0.1, 1.0, 10.0] |
64 | 60 |
|
65 |
| -gs = GridSearchCV(estimator=pipe_svc, |
66 |
| - param_grid=param_grid, |
67 |
| - scoring=scorer, |
68 |
| - cv=10, |
69 |
| - n_jobs=-1) |
70 |
| -gs = gs.fit(X_train, y_train) |
71 |
| -print('\nGrid Search f1 scoring best score: {}'.format(gs.best_score_)) |
72 |
| -print('Grid Search f1 scoring best params: {}'.format(gs.best_params_)) |
| 61 | + param_grid = [{'clf__C': c_gamma_range, |
| 62 | + 'clf__kernel': ['linear']}, |
| 63 | + {'clf__C': c_gamma_range, |
| 64 | + 'clf__gamma': c_gamma_range, |
| 65 | + 'clf__kernel': ['rbf'],}] |
73 | 66 |
|
74 |
| -print ('\n########################### No Errors ####################################') |
| 67 | + gs = GridSearchCV(estimator=pipe_svc, |
| 68 | + param_grid=param_grid, |
| 69 | + scoring=scorer, |
| 70 | + cv=10, |
| 71 | + n_jobs=-1) |
| 72 | + gs = gs.fit(X_train, y_train) |
| 73 | + print('\nGrid Search f1 scoring best score: {}'.format(gs.best_score_)) |
| 74 | + print('Grid Search f1 scoring best params: {}'.format(gs.best_params_)) |
| 75 | + |
| 76 | + print ('\n########################### No Errors ####################################') |
0 commit comments