def predict(self,data_set):
		
		"""
		This method uses the model to assign a label to each item in the data set.  The return value
		is a Prediction object.
		"""
		test_file_name=self._test_file_name+'_'+str(LibSVMModel._file_suffix)
		
		model_filename=self._model_file
		output_filename=self._output_filename
		predictor_package_path=self._predictor_package_path
		
		item_order=self.create_validation_set_file_from_dataset(data_set,test_file_name)
		
		args=[]
		
		args.append(predictor_package_path)
		args.append(test_file_name)
		args.append(model_filename)
		
		args.append(output_filename)
		#logging.debug( 'args for predict'
		#logging.debug( args
                fnull=open(os.devnull,'w')
		#p=subprocess.Popen(args,stdout=subprocess.PIPE)
		
		p=subprocess.call(args, stdout=fnull)
		fnull.close()
		'''
		for line in p.stdout:
			#logging.debug( line
			if(line.startswith('Accuracy')):
				accuracy=float(line.split()[2].split('%')[0])/100.0
				logging.debug( accuracy
				break
		'''
		#
		predicted_values=Prediction(data_set)
		#logging.debug( 'Count '+str(predicted_values.predicted_count())
		
		
		#logging.debug( output_filename
		fin=open(output_filename,'r')
		i=0
		for line in fin:
			#logging.debug( 'Output file :'+line
			item=item_order[i]
			predicted_values.set_est_label(item,line.split()[0])
			logging.debug( 'setting label for '+item)
			i+=1
		fin.close()
		#LibSVMModel._file_suffix+=1
		return(predicted_values)
Exemple #2
0
	def predict(self,data_set):
		
		"""
		This method uses the model to assign a label to each item in the data set.  The return value
		is a Prediction object.
		"""
		
		predicted_values=Prediction(data_set)
		gbm_package=self._gbm_package
		gbm_object=self._gbm_model_object
		(features,labels,items)=self.create_validation_set(data_set)
		
		predicted=gbm_package.predict_gbm(gbm_object,features,n_trees=self._n_trees,type='response',verbose=False)
		item_count=0
		for item in items:
			predicted_values.set_est_label(item,self.convert_label(predicted[item_count]))
			item_count+=1
		
		
		return(predicted_values)
Exemple #3
0
    def predict(self, data_set):
        """
		This method uses the model to assign a label to each item in the data set.  The return value
		is a Prediction object.
		"""

        predicted_values = Prediction(data_set)
        gbm_package = self._gbm_package
        gbm_object = self._gbm_model_object
        (features, labels, items) = self.create_validation_set(data_set)

        predicted = gbm_package.predict_gbm(gbm_object,
                                            features,
                                            n_trees=self._n_trees,
                                            type='response',
                                            verbose=False)
        item_count = 0
        for item in items:
            predicted_values.set_est_label(
                item, self.convert_label(predicted[item_count]))
            item_count += 1

        return (predicted_values)