Exemple #1
0
def run_nn_fold(training_data, test_data):
    test_features, ignore, featureMap, labels, labelMap = fs.mutualinfo(training_data)

    input_len = len(test_features[0])
    num_classes = len(labelMap.keys())
    train_ds = ClassificationDataSet(input_len, 1,nb_classes=num_classes)
    for i in range(len(test_features)):
        train_ds.addSample(tuple(test_features[i]), (labels[i]))
    train_ds._convertToOneOfMany()
    net = buildNetwork(train_ds.indim, 2, train_ds.outdim, bias=True, hiddenclass=TanhLayer, outclass=SoftmaxLayer)
    trainer = BackpropTrainer(net, train_ds, verbose=True)
    print "training until convergence..."
    trainer.trainUntilConvergence(maxEpochs=100)
    print "done. testing..."


    test_ds = ClassificationDataSet(input_len, 1,nb_classes=num_classes)  

    labels = []
    for tweetinfo in test_data:
        featuresFound = tweetinfo["Features"]
        label = tweetinfo["Answer"]
        labels.append(label)
        features = [0]*len(featureMap.keys())
        for feat in featuresFound:
            if feat in featureMap:
                features[ featureMap[feat] ] = 1
        test_ds.addSample(tuple(features), (labelMap[label]))

    test_ds._convertToOneOfMany()
    tstresult = percentError( trainer.testOnClassData(
            dataset=test_ds ), test_ds['class'] )
    print tstresult
Exemple #2
0
def train(training_data):
  """
  Trains a model, using bernoulli features
  """
  if ARGV.features ==  "bernoulli":
    features, featureMap, labels, labelMap = fs.bernoulli(training_data)
  else:
    features, scores, featureMap, labels, labelMap = fs.mutualinfo(training_data)
  learner = models[ ARGV.model ]()
  if ARGV.one_vs:
    labels[ labels != labelMap[ ARGV.one_vs ] ] = 0
    labels[ labels == labelMap[ ARGV.one_vs ] ] = 1
  model = learner.train(features, labels)
  if ARGV.features ==  "bernoulli":
    return (model, featureMap, labelMap)
  else:
    return ((model,scores), featureMap, labelMap)
Exemple #3
0
def train(training_data):
    """
  Trains a model, using bernoulli features
  """
    if ARGV.features == "bernoulli":
        features, featureMap, labels, labelMap = fs.bernoulli(training_data)
    else:
        features, scores, featureMap, labels, labelMap = fs.mutualinfo(
            training_data)
    learner = models[ARGV.model]()
    if ARGV.one_vs:
        labels[labels != labelMap[ARGV.one_vs]] = 0
        labels[labels == labelMap[ARGV.one_vs]] = 1
    model = learner.train(features, labels)
    if ARGV.features == "bernoulli":
        return (model, featureMap, labelMap)
    else:
        return ((model, scores), featureMap, labelMap)
Exemple #4
0
def run_nn_fold(training_data, test_data):
    test_features, ignore, featureMap, labels, labelMap = fs.mutualinfo(
        training_data)

    input_len = len(test_features[0])
    num_classes = len(labelMap.keys())
    train_ds = ClassificationDataSet(input_len, 1, nb_classes=num_classes)
    for i in range(len(test_features)):
        train_ds.addSample(tuple(test_features[i]), (labels[i]))
    train_ds._convertToOneOfMany()
    net = buildNetwork(train_ds.indim,
                       2,
                       train_ds.outdim,
                       bias=True,
                       hiddenclass=TanhLayer,
                       outclass=SoftmaxLayer)
    trainer = BackpropTrainer(net, train_ds, verbose=True)
    print "training until convergence..."
    trainer.trainUntilConvergence(maxEpochs=100)
    print "done. testing..."

    test_ds = ClassificationDataSet(input_len, 1, nb_classes=num_classes)

    labels = []
    for tweetinfo in test_data:
        featuresFound = tweetinfo["Features"]
        label = tweetinfo["Answer"]
        labels.append(label)
        features = [0] * len(featureMap.keys())
        for feat in featuresFound:
            if feat in featureMap:
                features[featureMap[feat]] = 1
        test_ds.addSample(tuple(features), (labelMap[label]))

    test_ds._convertToOneOfMany()
    tstresult = percentError(trainer.testOnClassData(dataset=test_ds),
                             test_ds['class'])
    print tstresult