def start(): featuresList=[] labelsList=[] featuresList, labelsList= loadFile("output.txt") print 'Normalizing array...' normalizearray(featuresList) alldata = ClassificationDataSet( len(featuresList[0]), 1, nb_classes=8, class_labels=['ffi_brainmatter','ffi_neuron','ffi_vacuole','ffi_astrocyte', 'wt_brainmatter', 'wt_neuron', 'wt_vacuole', 'wt_astrocyte'] ) for i in range(len(labelsList)): alldata.appendLinked(featuresList[i], labelsList[i]) #print 'All data: ', alldata #print 'Statisticcs: ', alldata.calculateStatistics() newK=fSel.getTreeFeatures(featuresList, labelsList); newK=newK.shape[1] print "K= ", newK reducedFeatures= fSel.getBestK(featuresList,labelsList, 'f_classif', newK) reducedData=ClassificationDataSet( len(reducedFeatures[0]), 1, nb_classes=8, class_labels=['ffi_brainmatter','ffi_neuron','ffi_vacuole','ffi_astrocyte', 'wt_brainmatter', 'wt_neuron', 'wt_vacuole', 'wt_astrocyte'] ) #prep reducedData object with reduced feature list for i in range(len(labelsList)): reducedData.appendLinked(reducedFeatures[i], labelsList[i]) print 'Splitting test and training data...' tstdata, trndata = alldata.splitWithProportion( 0.30 ) reducedTestData, reducedTrainData=reducedData.splitWithProportion(0.3) print 'Number of training and test patterns: ', len(trndata), len(tstdata) trndata._convertToOneOfMany(bounds=[0,1]) tstdata._convertToOneOfMany(bounds=[0,1]) reducedTestData._convertToOneOfMany(bounds=[0,1]) reducedTrainData._convertToOneOfMany(bounds=[0,1]) #print "Number of training patterns: ", len(trndata) print "Input and output dimensions: ", trndata.indim, trndata.outdim #print "Sample (input, target, class):" #print trndata['input'][0], trndata['target'][0], trndata['class'][0] #print trndata['input'][1], trndata['target'][1], trndata['class'][1] buildFNN(tstdata, trndata) print "___________________________________________FEATURE REDUCTION________________________________________________" buildFNN(reducedTestData, reducedTrainData)
def toFile(self,oname,normalized=True): v,l,n = self.getPercentiles() o = open(oname+'.txt','w') print print 'Writing to file: ' + oname+'.txt' for i in xrange(len(l)): output = str(l[i])+tab+str(n[i]) for j in xrange(len(v[i])): output += tab+str(v[i][j]) o.write(output+'\n') o.close() if normalized: print print 'Writing to file: '+ oname+'_normalized.txt' o = open(oname+'_normalized.txt','w') v = normalizearray(np.array(v,dtype=float))[0] for i in xrange(len(l)): output = str(l[i])+tab+str(n[i]) for j in xrange(v.shape[1]): output += tab+str(v[i,j]) o.write(output+'\n') o.close()