From 8810c9d424435927abceec60d6c4ff03839be32e Mon Sep 17 00:00:00 2001 From: Xionghaoran <719929980@qq.com> Date: Thu, 31 Oct 2024 15:40:33 +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 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/function.py b/function.py index 9bd062a..2b26b17 100644 --- a/function.py +++ b/function.py @@ -88,14 +88,14 @@ def train_logreg(X, y, learning_rate=0.0001, iterations=5000, batch_size=32, lam return weights, selector -def predict_logreg(inX, weights, selector, degree=2): +def predict_logreg(inX, weights, selector=None, degree=2): """ 对率回归预测函数。 Args: - inX (numpy array): 输入待分类的样本。 - weights (numpy array): 训练得到的权重。 - - selector: 特征选择器,用于筛选特征。 + - selector (optional): 特征选择器,用于筛选特征。 - degree (int): 多项式特征的次数。 Returns: @@ -103,7 +103,8 @@ def predict_logreg(inX, weights, selector, degree=2): """ inX = standardize(inX.reshape(1, -1)) # 标准化输入 inX = add_polynomial_features(inX, degree=degree) # 增加多项式特征 - inX = selector.transform(inX) # 应用特征选择,确保预测时与训练时使用相同的特征 + if selector is not None: + inX = selector.transform(inX) # 应用特征选择,确保预测时与训练时使用相同的特征 probability = sigmoid(np.dot(inX, weights)) return 1 if probability >= 0.5 else 0 @@ -148,5 +149,4 @@ if __name__ == "__main__": weights, selector = train_logreg(X_train, y_train, learning_rate=0.0001, iterations=5000, batch_size=32, lambda_=0.1, degree=2) # 测试单个数据 - y_pred = predict_logreg(X_test[11], weights, selector, degree=2) - print(f"预测结果: {y_pred}, 实际结果: {y_test[11]}") + y_pred = predict_logreg(X_test[11], weights