Commit b7778c12 by Will Daly

Added grid search

parent 368b33f4
...@@ -5,6 +5,7 @@ import numpy as np ...@@ -5,6 +5,7 @@ import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from sklearn.svm import SVC from sklearn.svm import SVC
from sklearn.pipeline import FeatureUnion from sklearn.pipeline import FeatureUnion
from sklearn.grid_search import GridSearchCV
import nltk import nltk
from .algorithm import AIAlgorithm from .algorithm import AIAlgorithm
...@@ -67,11 +68,14 @@ class ClassyAlgorithm(AIAlgorithm): ...@@ -67,11 +68,14 @@ class ClassyAlgorithm(AIAlgorithm):
]) ])
transformed = pipeline.fit_transform([example.text for example in examples]) transformed = pipeline.fit_transform([example.text for example in examples])
scores = [example.score for example in examples] scores = [example.score for example in examples]
classifier = SVC() params = {
classifier.fit(transformed, scores) 'C': 10.0 ** np.arange(-2, 5),
}
grid_search = GridSearchCV(SVC(), param_grid=params)
grid_search.fit(transformed, scores)
return { return {
'pipeline': pickle.dumps(pipeline), 'pipeline': pickle.dumps(pipeline),
'classifier': pickle.dumps(classifier), 'classifier': pickle.dumps(grid_search.best_estimator_),
'min_score': min(scores) 'min_score': min(scores)
} }
...@@ -99,9 +103,5 @@ class ClassyAlgorithm(AIAlgorithm): ...@@ -99,9 +103,5 @@ class ClassyAlgorithm(AIAlgorithm):
transformed = vectorizer.transform([text]) transformed = vectorizer.transform([text])
cache['transformed'] = transformed cache['transformed'] = transformed
classifier_obj = cache.get('classifier') classifier_obj = pickle.loads(classifier['classifier'])
if classifier_obj is None:
classifier_obj = pickle.loads(classifier['classifier'])
cache['classifier'] = classifier_obj
return classifier_obj.predict(transformed)[0] return classifier_obj.predict(transformed)[0]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment