Created
September 27, 2012 16:51
-
-
Save lisitsyn/3795078 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import csv | |
import numpy | |
import time,datetime | |
import modshogun | |
import cPickle | |
vars = {} | |
# operational context | |
class operation(object): | |
# entering message to be printed, assumed to have two string parameters (timestamp and message) | |
__enter__message = '[%s] \033[1;34mStarting %s\033[0m' | |
# exit message to be printed, assumed to have three string parameters (timestamp, message and time passed) | |
__exit__message = '[%s] \033[0;31mFinished %s, took %fs\033[0m' | |
def __init__(self, msg): | |
self.msg = msg | |
self.parameters = {} | |
def __enter__(self): | |
self.start = time.time() | |
print operation.__enter__message % (datetime.datetime.now(),self.msg) | |
return self | |
def __exit__(self, type, value, traceback): | |
for (k,v) in self.parameters.items(): | |
with open('%s.dat' % k, 'wb') as output_file: | |
cPickle.dump(v,output_file) | |
print operation.__exit__message % (datetime.datetime.now(), self.msg, time.time()-self.start) | |
return True | |
def __getattr__(self,name): | |
if name in vars.keys(): | |
return vars[name] | |
raise Exception("Parameter %s is not in the context" % name) | |
def __setattr__(self,name,value): | |
if name in ['msg', 'parameters','start']: | |
object.__setattr__(self,name,value) | |
else: | |
self.parameters[name] = value | |
vars[name] = value | |
def __str__(self): | |
return self.msg | |
with operation('reading files') as context: | |
context.train_data = numpy.loadtxt('train.csv',delimiter=",",skiprows=1) | |
context.test_data = numpy.loadtxt('test.csv',delimiter=",",skiprows=1) | |
with operation('training model') as context: | |
context.classifier = modshogun.MulticlassLibLinear() | |
context.train_features = modshogun.ByteFeatures(context.train_data) | |
context.test_features = modshogun.ByteFeatures(context.test_data) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment