def _train(cls, model_param, xys_2d): """ :param model_param: :param xys_2d: :return: """ kernel = model_param['kernel'] if 'kernel' in model_param else 'rbf' gamma = model_param['gamma'] if 'gamma' in model_param else 0.0 C = model_param['C'] if 'C' in model_param else 1.0 nu = model_param['nu'] if 'nu' in model_param else 0.5 cache_size = model_param[ 'cache_size'] if 'cache_size' in model_param else 200 try: svmutil except NameError: from vmaf import svmutil if kernel == 'rbf': ktype_int = svmutil.RBF elif kernel == 'linear': ktype_int = svmutil.LINEAR elif kernel == 'poly': ktype_int = svmutil.POLY elif kernel == 'sigmoid': ktype_int = svmutil.SIGMOID else: assert False, 'ktype = ' + str(kernel) + ' not implemented' param = svmutil.svm_parameter([ '-s', 4, '-t', ktype_int, '-c', C, '-g', gamma, '-n', nu, '-m', cache_size ]) f = list(xys_2d[:, 1:]) for i, item in enumerate(f): f[i] = list(item) prob = svmutil.svm_problem(xys_2d[:, 0], f) model = svmutil.svm_train(prob, param) return model
def _train(cls, model_param, xys_2d): """ :param model_param: :param xys_2d: :return: """ kernel = model_param['kernel'] if 'kernel' in model_param else 'rbf' gamma = model_param['gamma'] if 'gamma' in model_param else 0.0 C = model_param['C'] if 'C' in model_param else 1.0 nu = model_param['nu'] if 'nu' in model_param else 0.5 cache_size = model_param['cache_size'] if 'cache_size' in model_param else 200 if kernel == 'rbf': ktype_int = svmutil.RBF elif kernel == 'linear': ktype_int = svmutil.LINEAR elif kernel == 'poly': ktype_int = svmutil.POLY elif kernel == 'sigmoid': ktype_int = svmutil.SIGMOID else: assert False, 'ktype = ' + str(kernel) + ' not implemented' param = svmutil.svm_parameter([ '-s', 4, '-t', ktype_int, '-c', C, '-g', gamma, '-n', nu, '-m', cache_size ]) f = list(xys_2d[:, 1:]) for i, item in enumerate(f): f[i] = list(item) prob = svmutil.svm_problem(xys_2d[:, 0], f) model = svmutil.svm_train(prob, param) return model