From a6b88f3f9b3c4199d74314bbd5047af0178957c9 Mon Sep 17 00:00:00 2001 From: Ting-Jun Wang Date: Wed, 15 Nov 2023 15:51:07 +0800 Subject: [PATCH] style: main function --- hw4/hw4_10.py | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/hw4/hw4_10.py b/hw4/hw4_10.py index 38c0fa3..1241d1d 100644 --- a/hw4/hw4_10.py +++ b/hw4/hw4_10.py @@ -14,7 +14,7 @@ def read_data(filename): y.append(int(numbers[-1])) return x, y -def format(features): +def form(features): ''' change to LIBSVM format ''' @@ -33,31 +33,33 @@ def error(gt, pred): err = (err+1) if gt[index]!=pred[index] else err return err/len(gt) -x, y = read_data(FILENAME) -x = format(x) -prob = problem(y, x) -lambda_powers = [-6, -4, -2, 0, 2] +if __name__ == '__main__': + x, y = read_data(FILENAME) + x = form(x) + prob = problem(y, x) + lambda_powers = [-6, -4, -2, 0, 2] -results = [] -for lambda_power in lambda_powers: - lambda_value = 10 ** lambda_power - param_C = 1/(2*lambda_value) - param = parameter('-s 0 -c {} -e 0.000001 -q'.format(param_C)) - model = train(prob, param) - p_label, p_acc, p_val = predict(y, x, model) - err = error(y, p_label) - print("0/1 error: ", err) - print() - results.append({'lambda': lambda_power, 'error': err}) + results = [] + for lambda_power in lambda_powers: + lambda_value = 10 ** lambda_power + param_C = 1/(2*lambda_value) + param = parameter('-s 0 -c {} -e 0.000001 -q'.format(param_C)) + model = train(prob, param) + p_label, p_acc, p_val = predict(y, x, model) + err = error(y, p_label) + print("0/1 error: ", err) + print() + results.append({'lambda': lambda_power, 'error': err}) -ans, min_err = None, 1 -for i in results: - if i['error'] <= min_err: - min_err = i['error'] - ans = i + ans, min_err = None, 1 + for i in results: + print(i['error']) + if i['error'] <= min_err: + min_err = i['error'] + ans = i -print("the largest lambda: {}, log_10(lambda*): {}".format(10**ans['lambda'], ans['lambda'])) + print("the largest lambda: {}, log_10(lambda*): {}".format(10**ans['lambda'], ans['lambda'])) - +