From 022fa6f2bbb8bccdfc4d3333a959e42681538519 Mon Sep 17 00:00:00 2001 From: cy <939601402@qq.com> Date: Sat, 26 Oct 2024 19:07:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 50 +++++++++++--------------------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) diff --git a/function.py b/function.py index 83a3f75..fd95c50 100644 --- a/function.py +++ b/function.py @@ -121,46 +121,18 @@ def load_data(filepath): return data, target_variable -def accuracy(X, y, weights): - predictions = [predict_logreg(x, weights) for x in X] - accuracy = np.mean(predictions == y) - return accuracy - - -def grid_search(X_train, y_train, X_test, y_test, param_grid): - best_accuracy = 0 - best_params = None - - for params in product(*param_grid.values()): - learning_rate, iterations, batch_size, regularization, lambda_reg = params - - print(f"尝试参数组合: {params}") - weights = train_logreg(X_train, y_train, learning_rate, iterations, batch_size, regularization, lambda_reg) - acc = accuracy(X_test, y_test, weights) - - print(f"当前准确率: {acc:.4f}") - - if acc > best_accuracy: - best_accuracy = acc - best_params = params - - return best_params, best_accuracy - if __name__ == "__main__": - X_train, y_train = load_data("./horse-colic.data") - X_test, y_test = load_data("./horse-colic.test") + # 以下代码可用于测试,可自行随意修改 + # 加载训练集 + X_train, y_train = load_data("./data/horse-colic.data") - # 定义参数网格 - param_grid = { - 'learning_rate': [0.01, 0.05], - 'iterations': [500, 1000], - 'batch_size': [16, 32], - 'regularization': [None, 'L1', 'L2'], - 'lambda_reg': [0.1, 0.5] - } + # 加载测试集 + X_test, y_test = load_data("./data/horse-colic.test") - # 进行网格搜索 - best_params, best_accuracy = grid_search(X_train, y_train, X_test, y_test, param_grid) + # 训练对率回归模型 + weights = train_logreg(X_train, y_train, learning_rate=0.01, iterations=1000, batch_size=16, regularization='L1', + lambda_reg=0.1) - print(f"最佳参数组合: {best_params}") - print(f"最佳准确率: {best_accuracy:.4f}") \ No newline at end of file + # 测试单个数据 + y_pred = predict_logreg(X_test[11], weights) + print(f"预测结果: {y_pred}, 实际结果: {y_test[11]}") \ No newline at end of file