Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. # ad hoc: Scaled Logistic Regression with probabilistic output
  2.  
  3. class force_predict(object):
  4. def __init__(self, clf, mode='predict_proba', axis=0):
  5. self._mode = mode
  6. self._axis = axis
  7. self._clf = clf
  8.  
  9. def fit(self, X, y, **kwargs):
  10. self._clf.fit(X, y, **kwargs)
  11. self._copyattr()
  12.  
  13. def predict(self, X):
  14. if self._mode == 'predict_proba':
  15. return self._clf.predict_proba(X)[:, self._axis]
  16. elif self._mode == 'decision_function':
  17. distances = self._clf.decision_function(X)
  18. if len(distances.shape) > 1:
  19. return distances[:, self._axis]
  20. else:
  21. return distances
  22. else:
  23. return self._clf.predict(X)
  24.  
  25. def get_params(self, deep=True):
  26. return dict(clf=self._clf, mode=self._mode, axis=self._axis)
  27.  
  28. def _copyattr(self):
  29. for key, value in self._clf.__dict__.iteritems():
  30. self.__setattr__(key, value)
  31.  
  32. from sklearn.preprocessing import StandardScaler
  33. from sklearn.pipeline import Pipeline
  34. from sklearn.linear_model import LogisticRegression
  35.  
  36. scaler = StandardScaler()
  37. clf = force_predict(LogisticRegression(penalty='l2', C=1), axis=1)
  38. pipeline = Pipeline([('scaler', scaler), ('clf', clf)])
  39.  
  40.  
  41. # Area Under the Curve Scorer:
  42. def scorer_auc(y_true, y_pred):
  43. from sklearn.metrics import roc_auc_score
  44. from sklearn.preprocessing import LabelBinarizer
  45. le = LabelBinarizer()
  46. y_true = le.fit_transform(y_true)
  47. return roc_auc_score(y_true, y_pred)
  48.  
  49. # GAT
  50. from mne.decoding import GeneralizationAcrossTime
  51. gat = GeneralizationAcrossTime(n_jobs=-1, clf=pipeline, scorer=auc_scorer)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement