In [65]:
import numpy as np
import random
from math import floor
from keras.models import Sequential
from keras.layers.core import Dense, Activation
import csv
import copy
from math import sqrt

In [66]:
with open ('train.csv') as source:
    spam = csv.reader(source)
    trainset = list(spam)
tags =lst2=copy.deepcopy(trainset[0]) 
del trainset[0]

In [67]:
def getData(splitper):
    random.shuffle(trainset)
    splitper = int(floor(splitper * len(trainset)) + 1)
    #get The Informations
    traininglst = trainset[splitper:]
    testinglst = trainset[:splitper]
    train_X=[]
    train_Y=[]
    test_X=[]
    test_Y=[]
    for element in traininglst:
        train_X.append(element[0:16])
        train_Y.append(element[16])
    for element in testinglst:
        test_X.append(element[0:16])
        test_Y.append(element[16])
    
    
    return (np.array(train_X),np.array(train_Y),np.array(test_X),np.array(test_Y))

In [68]:
(train_X,train_Y,test_X,test_Y)= getData(0.2)

In [69]:
print 'trainx:{},trainy:{},testx:{},testy{}'.format(train_X.shape,train_Y.shape,test_X.shape,test_Y.shape)
batchsize=1


trainx:(12799, 16),trainy:(12799,),testx:(3201, 16),testy(3201,)

In [70]:
print 'Building model'
model = Sequential()
model.add(Dense(10, input_dim=16))
model.add(Activation('tanh'))
model.add(Dense(1, input_shape=(16,)))
model.compile(loss='mse', optimizer='rmsprop')
print 'start fitting'
model.fit(train_X, train_Y, nb_epoch=30, batch_size=batchsize,validation_split=0.05, show_accuracy=True)
score = model.evaluate(test_X, test_Y, batch_size=batchsize,show_accuracy=True)


Building model
start fitting
Train on 12159 samples, validate on 640 samples
Epoch 1/30
12159/12159 [==============================] - 17s - loss: 6.6024 - acc: 1.0000 - val_loss: 5.3133 - val_acc: 1.0000
Epoch 2/30
 2245/12159 [====>.........................] - ETA: 15s - loss: 5.2095 - acc: 1.0000
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-70-6e87742ebe88> in <module>()
      6 model.compile(loss='mse', optimizer='rmsprop')
      7 print 'start fitting'
----> 8 model.fit(train_X, train_Y, nb_epoch=30, batch_size=batchsize,validation_split=0.05, show_accuracy=True)
      9 score = model.evaluate(test_X, test_Y, batch_size=batchsize,show_accuracy=True)

/usr/local/lib/python2.7/dist-packages/keras/models.pyc in fit(self, X, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, show_accuracy, class_weight, sample_weight)
    644                          verbose=verbose, callbacks=callbacks,
    645                          val_f=val_f, val_ins=val_ins,
--> 646                          shuffle=shuffle, metrics=metrics)
    647 
    648     def predict(self, X, batch_size=128, verbose=0):

/usr/local/lib/python2.7/dist-packages/keras/models.pyc in _fit(self, f, ins, out_labels, batch_size, nb_epoch, verbose, callbacks, val_f, val_ins, shuffle, metrics)
    278                 batch_logs['size'] = len(batch_ids)
    279                 callbacks.on_batch_begin(batch_index, batch_logs)
--> 280                 outs = f(ins_batch)
    281                 if type(outs) != list:
    282                     outs = [outs]

/usr/local/lib/python2.7/dist-packages/keras/backend/theano_backend.pyc in __call__(self, inputs)
    382     def __call__(self, inputs):
    383         assert type(inputs) in {list, tuple}
--> 384         return self.function(*inputs)
    385 
    386 

/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.pyc in __call__(self, *args, **kwargs)
    857         t0_fn = time.time()
    858         try:
--> 859             outputs = self.fn()
    860         except Exception:
    861             if hasattr(self.fn, 'position_of_error'):

KeyboardInterrupt: 

In [50]:
print sqrt(score[0])


Out[50]:
1.8855969552822223

In [52]:
with open ('test.csv') as source:
    spam = csv.reader(source)
    testset = list(spam)
testtags =lst2=copy.deepcopy(trainset[0]) 
del testset[0]

In [55]:
topredict_X=[]
for i in testset:
    topredict_X.append( i[1:])

In [57]:
topredict_X= np.array(topredict_X)

In [61]:
prediction_Y= model.predict(topredict_X,batch_size=16,verbose=0)

In [64]:
with open('submit 004.csv','w') as output:
    output.write('ID,target\n')
    for i in range(len(prediction_Y)):
        output.write('{},{}'.format(i+1,prediction_Y[i][0])+'\n')

In [ ]: