This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
code:multi_class [2015/10/05 15:13] asa created |
code:multi_class [2016/10/11 12:57] asa |
||
---|---|---|---|
Line 5: | Line 5: | ||
<file python multi_class.py> | <file python multi_class.py> | ||
+ | |||
+ | import numpy as np | ||
from sklearn import datasets | from sklearn import datasets | ||
- | from sklearn.multiclass import OneVsRestClassifier | + | from sklearn.multiclass import OneVsRestClassifier,OneVsOneClassifier |
- | from sklearn.svm import LinearSVC | + | from sklearn.svm import LinearSVC,SVC |
from sklearn import cross_validation | from sklearn import cross_validation | ||
+ | |||
+ | # load the iris dataset: | ||
+ | |||
iris = datasets.load_iris() | iris = datasets.load_iris() | ||
X, y = iris.data, iris.target | X, y = iris.data, iris.target | ||
+ | |||
+ | # prepare cross validation folds | ||
+ | cv = cross_validation.StratifiedKFold(y, 5, shuffle=True, random_state=0) | ||
+ | |||
+ | # one-vs-the-rest | ||
classifier = OneVsRestClassifier(LinearSVC()) | classifier = OneVsRestClassifier(LinearSVC()) | ||
+ | print (np.mean(cross_validation.cross_val_score(classifier, X, y, cv=cv))) | ||
+ | # one-vs-one | ||
+ | classifier = OneVsOneClassifier(LinearSVC()) | ||
+ | print (np.mean(cross_validation.cross_val_score(classifier, X, y, cv=cv))) | ||
- | print cross_validation.cross_val_score(classifier, X, y, cv=5) | + | # does this mean that one-vs-one is better? not necessarily... |
+ | classifier = OneVsRestClassifier(SVC(C=1, kernel='rbf', gamma=0.5)) | ||
+ | print (np.mean(cross_validation.cross_val_score(classifier, X, y, cv=cv))) | ||
</file> | </file> |