- Notifications
You must be signed in to change notification settings - Fork6
Online machine learning algorithms (based on OLL C++ library)
License
NotificationsYou must be signed in to change notification settings
ikegami-yukino/oll-python
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
This is a Python binding of the OLL library for machine learning.
Currently, OLL 0.03 supports following binary classification algorithms:
- Perceptron
- Averaged Perceptron
- Passive Agressive (PA, PA-I, PA-II, Kernelized)
- ALMA (modified slightly from original)
- Confidence Weighted Linear-Classification.
For details of oll, see:http://code.google.com/p/oll
$ pip install oll
OLL library is bundled, so you don't need to install it separately.
importoll# You can choose algorithms in# "P" -> Perceptron,# "AP" -> Averaged Perceptron,# "PA" -> Passive Agressive,# "PA1" -> Passive Agressive-I,# "PA2" -> Passive Agressive-II,# "PAK" -> Kernelized Passive Agressive,# "CW" -> Confidence Weighted Linear-Classification,# "AL" -> ALMAo=oll.oll("CW",C=1.0,bias=0.0)o.add({0:1.0,1:2.0,2:-1.0},1)# traino.classify({0:1.0,1:1.0})# predicto.save('oll.model')o.load('oll.model')# scikit-learn like fit/predict interfaceimportnumpyasnparray=np.array([[1,2,-1], [0,0,1]])o.fit(array, [1,-1])o.predict(np.array([[1,2,-1], [0,0,1]]))# => [1, -1]fromscipy.sparseimportcsr_matrixmatrix=csr_matrix([[1,2,-1], [0,0,1]])o.fit(matrix, [1,-1])o.predict(matrix)# => [1, -1]# Multi label classificationimporttimeimportollfromsklearn.multiclassimportOutputCodeClassifierfromsklearnimportdatasets,cross_validation,metricsdataset=datasets.load_digits()ALGORITHMS= ("P","AP","PA","PA1","PA2","PAK","CW","AL")foralgorithminALGORITHMS:print(algorithm)occ_predicts= []expected= []start=time.time()for (train_idx,test_idx)incross_validation.StratifiedKFold(dataset.target,n_folds=10,shuffle=True):clf=OutputCodeClassifier(oll.oll(algorithm))clf.fit(dataset.data[train_idx],dataset.target[train_idx])occ_predicts+=list(clf.predict(dataset.data[test_idx]))expected+=list(dataset.target[test_idx])print('Elapsed time: %s'% (time.time()-start))print('Accuracy',metrics.accuracy_score(expected,occ_predicts))# => P# => Elapsed time: 109.82188701629639# => Accuracy 0.770172509738# => AP# => Elapsed time: 111.42936396598816# => Accuracy 0.760155815248# => PA# => Elapsed time: 110.95964503288269# => Accuracy 0.74735670562# => PA1# => Elapsed time: 111.39844799041748# => Accuracy 0.806343906511# => PA2# => Elapsed time: 115.12716913223267# => Accuracy 0.766277128548# => PAK# => Elapsed time: 119.53838682174683# => Accuracy 0.77796327212# => CW# => Elapsed time: 121.20785689353943# => Accuracy 0.771285475793# => AL# => Elapsed time: 116.52497220039368# => Accuracy 0.785754034502
- This module requires C++ compiler to build.
- oll.cpp & oll.hpp : Copyright (c) 2011, Daisuke Okanohara
- oll_swig_wrap.cxx is generated based on 'oll_swig.i' in oll-ruby (https://github.com/syou6162/oll-ruby)
New BSD License.
About
Online machine learning algorithms (based on OLL C++ library)
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
