更新 function.py
Gitea Actions Experiment Test / Experiment-Actions (push) Successful in 54s

This commit is contained in:
2024-10-31 15:40:33 +08:00
parent caa899933d
commit 8810c9d424
+5 -5
View File
@@ -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