Warning: Declaration of action_plugin_tablewidth::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /s/bach/b/class/cs545/public_html/fall15/lib/plugins/tablewidth/action.php on line 93
code:multi_class [CS545 fall 2015]

User Tools

Site Tools


code:multi_class

Multi-class classification in scikit-learn

Let's use a One-vs-the-rest classifier on the iris dataset. The data has four features that describe features of three types of iris flowers.

In [1]: import numpy as np
 
In [2]: from sklearn import datasets
 
In [3]: from sklearn.multiclass import OneVsRestClassifier,OneVsOneClassifier
 
In [4]: from sklearn.svm import LinearSVC,SVC
 
In [5]: from sklearn import cross_validation
 
In [6]: iris = datasets.load_iris()
 
In [7]: X, y = iris.data, iris.target
 
In [8]: classifier = OneVsRestClassifier(LinearSVC())
 
In [9]: print np.mean(cross_validation.cross_val_score(classifier, X, y, cv=5))
0.966666666667
 
In [10]: classifier = OneVsOneClassifier(LinearSVC())
 
In [11]: print np.mean(cross_validation.cross_val_score(classifier, X, y, cv=5))0.98
 
In [12]: # does this mean that oneVsOne is better?  not necessarily...
 
In [13]: classifier = OneVsRestClassifier(SVC(C=1, kernel='rbf', gamma=0.5))
 
In [14]: print np.mean(cross_validation.cross_val_score(classifier, X, y, cv=5))0.98

And here's the code without the python prompts to get in the way:

multi_class.py
import numpy as np
from sklearn import datasets
from sklearn.multiclass import OneVsRestClassifier,OneVsOneClassifier
from sklearn.svm import LinearSVC,SVC
from sklearn import cross_validation
iris = datasets.load_iris()
X, y = iris.data, iris.target
 
classifier = OneVsRestClassifier(LinearSVC())
 
print np.mean(cross_validation.cross_val_score(classifier, X, y, cv=5))
 
classifier = OneVsOneClassifier(LinearSVC())
 
print np.mean(cross_validation.cross_val_score(classifier, X, y, cv=5))
 
# does this mean that oneVsOne 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=5))
code/multi_class.txt ยท Last modified: 2015/10/08 14:12 by asa