def m_svm(): if ARGV.one_vs: svm_model = svm.svm_to_binary(svm.svm_raw()) else: svm_model = multi.one_against_one(svm.svm_to_binary(svm.svm_raw())) # return milk.defaultclassifier(mode='slow', multi_strategy='1-vs-1') learner = milk.supervised.classifier.ctransforms( # remove nans supervised.normalise.chkfinite(), # normalize to [-1,1] supervised.normalise.interval_normalise(), # feature selection featureselection.featureselector( featureselection.linear_independent_features), # sda filter featureselection.sda_filter(), # same parameter range as 'medium' supervised.gridsearch( svm_model, params = { 'C': 2.0 ** np.arange(-2, 4), 'kernel': [ svm.rbf_kernel(2.0 ** i) for i in xrange(-4, 4) ] } ) ) return learner
def metric(self): weak = milk.supervised.tree.stump_learner() model = milk.supervised.adaboost.boost_learner(weak) model = one_against_one(model) totalTimer = Timer() with totalTimer: model = model.train(self.data_split[0], self.data_split[1]) metric = {} metric["runtime"] = totalTimer.ElapsedTime() return metric
def test_too_many_boolean_indices_regression(): import milk.supervised.randomforest import milk.supervised.adaboost import milksets.wine from milk.supervised.multi import one_against_one weak = milk.supervised.randomforest.rf_learner() learner = milk.supervised.adaboost.boost_learner(weak) learner = one_against_one(learner) features, labels = milksets.wine.load() # sample features so that the test is faster (still gives error): learner.train(features[::16], labels[::16])
def leave_one_out(y, x, param=None, n=None): results = [] for i, test in enumerate(zip(y, x)): training_y = y[:i] + y[i+1:] training_x = x[:i] + x[i+1:] training_y = np.array(training_y) training_x = np.array([np.array(tx) for tx in training_x]) learner = mil_rf.rf_learner() learner = mil_multi.one_against_one(learner) model = learner.train(training_x, training_y) result = model.apply(np.array(x[i:i+1][0])) results.append((result,) + (test[0], make_d.decode(x[i], DECODE_DIC))) return results
def random_forest(X, Y): from milk.supervised import randomforest from milk.supervised.multi import one_against_one import milk.nfoldcrossvalidation features = np.array(X) labels = np.array(Y) rf_learner = randomforest.rf_learner() # rf is a binary learner, so we transform it into a multi-class classifier learner = one_against_one(rf_learner) # learner = rf_learner # result # cross validate with this learner and return predictions on left-out elements cmat, names, preds = milk.nfoldcrossvalidation(features, labels, nfolds=4, classifier=learner, return_predictions=1) print 'cross-validation accuracy:', cmat.trace() / float(cmat.sum()) return
def m_svm(): if ARGV.one_vs: svm_model = svm.svm_to_binary(svm.svm_raw()) else: svm_model = multi.one_against_one(svm.svm_to_binary(svm.svm_raw())) # return milk.defaultclassifier(mode='slow', multi_strategy='1-vs-1') learner = milk.supervised.classifier.ctransforms( # remove nans supervised.normalise.chkfinite(), # normalize to [-1,1] supervised.normalise.interval_normalise(), # feature selection featureselection.featureselector( featureselection.linear_independent_features), # sda filter featureselection.sda_filter(), # same parameter range as 'medium' supervised.gridsearch( svm_model, params={ 'C': 2.0**np.arange(-2, 4), 'kernel': [svm.rbf_kernel(2.0**i) for i in xrange(-4, 4)] })) return learner
from milk.supervised import randomforest from milk.supervised.multi import one_against_one import milk.nfoldcrossvalidation import milk.unsupervised import pylab from milksets import wine # Load 'wine' dataset features, labels = wine.load() # random forest learner rf_learner = randomforest.rf_learner() # rf is a binary learner, so we transform it into a multi-class classifier learner = one_against_one(rf_learner) # cross validate with this learner and return predictions on left-out elements cmat,names, preds = milk.nfoldcrossvalidation(features, labels, classifier=learner, return_predictions=1) print('cross-validation accuracy:', cmat.trace()/float(cmat.sum())) # dimensionality reduction for display x,v = milk.unsupervised.pca(features) colors = "rgb" # predicted colour marks = "xo" # whether the prediction was correct for (y,x),p,r in zip(x[:,:2], preds, labels): c = colors[p] m = marks[p == r] pylab.plot(y,x,c+m) pylab.show()
def BuildModel(self): # Create and train the classifier. rf_learner = randomforest.rf_learner(**self.opts) learner = one_against_one(rf_learner) return learner
def BuildModel(self): # Create and train the classifier. weak = milk.supervised.tree.stump_learner() learner = milk.supervised.adaboost.boost_learner(weak) learner = one_against_one(learner) return learner