parameters: (y, x, m, options="")
return_statement: return pred_labels, (ACC, MSE, SCC), pred_values
docstring: predict(y, x, m [, options]) -> (p_labels, p_acc, p_vals)
  
  	Predict data (y, x) with the SVM model m.
  	options:
  	    -b probability_estimates: whether to output probability estimates, 0 or 1 (default 0); currently for logistic regression only
  	    -q quiet mode (no outputs)
  
  	The return tuple contains
  	p_labels: a list of predicted labels
  	p_acc: a tuple including  accuracy (for classification), mean-squared
  	       error, and squared correlation coefficient (for regression).
  	p_vals: a list of decision values or probability estimates (if '-b 1'
  	        is specified). If k is the number of classes, for decision values,
  	        each element includes results of predicting k binary-class
  	        SVMs. if k = 2 and solver is not MCSVM_CS, only one decision value
  	        is returned. For probabilities, each element contains k values
  	        indicating the probability that the testing instance is in each class.
  	        Note that the order of classes here is the same as 'model.label'
  	        field in the model structure.
docstring_summary: predict(y, x, m [, options]) -> (p_labels, p_acc, p_vals)
docstring_tokens: predict ( y x m [ options ] ) - > ( p_labels p_acc p_vals )
function: def predict(y, x, m, options=""):
  	"""
  	predict(y, x, m [, options]) -> (p_labels, p_acc, p_vals)
  
  	Predict data (y, x) with the SVM model m.
  	options:
  	    -b probability_estimates: whether to output probability estimates, 0 or 1 (default 0); currently for logistic regression only
  	    -q quiet mode (no outputs)
  
  	The return tuple contains
  	p_labels: a list of predicted labels
  	p_acc: a tuple including  accuracy (for classification), mean-squared
  	       error, and squared correlation coefficient (for regression).
  	p_vals: a list of decision values or probability estimates (if '-b 1'
  	        is specified). If k is the number of classes, for decision values,
  	        each element includes results of predicting k binary-class
  	        SVMs. if k = 2 and solver is not MCSVM_CS, only one decision value
  	        is returned. For probabilities, each element contains k values
  	        indicating the probability that the testing instance is in each class.
  	        Note that the order of classes here is the same as 'model.label'
  	        field in the model structure.
  	"""
  
  	def info(s):
  		print(s)
  
  	predict_probability = 0
  	argv = options.split()
  	i = 0
  	while i < len(argv):
  		if argv[i] == '-b':
  			i += 1
  			predict_probability = int(argv[i])
  		elif argv[i] == '-q':
  			info = print_null
  		else:
  			raise ValueError("Wrong options")
  		i+=1
  
  	solver_type = m.param.solver_type
  	nr_class = m.get_nr_class()
  	nr_feature = m.get_nr_feature()
  	is_prob_model = m.is_probability_model()
  	bias = m.bias
  	if bias >= 0:
  		biasterm = feature_node(nr_feature+1, bias)
  	else:
  		biasterm = feature_node(-1, bias)
  	pred_labels = []
  	pred_values = []
  
  	if predict_probability:
  		if not is_prob_model:
  			raise TypeError('probability output is only supported for logistic regression')
  		prob_estimates = (c_double * nr_class)()
  		for xi in x:
  			xi, idx = gen_feature_nodearray(xi, feature_max=nr_feature)
  			xi[-2] = biasterm
  			label = liblinear.predict_probability(m, xi, prob_estimates)
  			values = prob_estimates[:nr_class]
  			pred_labels += [label]
  			pred_values += [values]
  	else:
  		if nr_class <= 2:
  			nr_classifier = 1
  		else:
  			nr_classifier = nr_class
  		dec_values = (c_double * nr_classifier)()
  		for xi in x:
  			xi, idx = gen_feature_nodearray(xi, feature_max=nr_feature)
  			xi[-2] = biasterm
  			label = liblinear.predict_values(m, xi, dec_values)
  			values = dec_values[:nr_classifier]
  			pred_labels += [label]
  			pred_values += [values]
  	if len(y) == 0:
  		y = [0] * len(x)
  	ACC, MSE, SCC = evaluations(y, pred_labels)
  	l = len(y)
  	if m.is_regression_model():
  		info("Mean squared error = %g (regression)" % MSE)
  		info("Squared correlation coefficient = %g (regression)" % SCC)
  	else:
  		info("Accuracy = %g%% (%d/%d) (classification)" % (ACC, int(l*ACC/100), l))
  
  	return pred_labels, (ACC, MSE, SCC), pred_values
function_tokens: def predict ( y , x , m , options = "" ) : def info ( s ) : print ( s ) predict_probability = 0 argv = options . split ( ) i = 0 while i < len ( argv ) : if argv [ i ] == '-b' : i += 1 predict_probability = int ( argv [ i ] ) elif argv [ i ] == '-q' : info = print_null else : raise ValueError ( "Wrong options" ) i += 1 solver_type = m . param . solver_type nr_class = m . get_nr_class ( ) nr_feature = m . get_nr_feature ( ) is_prob_model = m . is_probability_model ( ) bias = m . bias if bias >= 0 : biasterm = feature_node ( nr_feature + 1 , bias ) else : biasterm = feature_node ( - 1 , bias ) pred_labels = [ ] pred_values = [ ] if predict_probability : if not is_prob_model : raise TypeError ( 'probability output is only supported for logistic regression' ) prob_estimates = ( c_double * nr_class ) ( ) for xi in x : xi , idx = gen_feature_nodearray ( xi , feature_max = nr_feature ) xi [ - 2 ] = biasterm label = liblinear . predict_probability ( m , xi , prob_estimates ) values = prob_estimates [ : nr_class ] pred_labels += [ label ] pred_values += [ values ] else : if nr_class <= 2 : nr_classifier = 1 else : nr_classifier = nr_class dec_values = ( c_double * nr_classifier ) ( ) for xi in x : xi , idx = gen_feature_nodearray ( xi , feature_max = nr_feature ) xi [ - 2 ] = biasterm label = liblinear . predict_values ( m , xi , dec_values ) values = dec_values [ : nr_classifier ] pred_labels += [ label ] pred_values += [ values ] if len ( y ) == 0 : y = [ 0 ] * len ( x ) ACC , MSE , SCC = evaluations ( y , pred_labels ) l = len ( y ) if m . is_regression_model ( ) : info ( "Mean squared error = %g (regression)" % MSE ) info ( "Squared correlation coefficient = %g (regression)" % SCC ) else : info ( "Accuracy = %g%% (%d/%d) (classification)" % ( ACC , int ( l * ACC / 100 ) , l ) ) return pred_labels , ( ACC , MSE , SCC ) , pred_values