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

This commit is contained in:
cy
2024-10-24 17:21:10 +08:00
parent 23921f47c6
commit d9385b0323
+8 -8
View File
@@ -28,7 +28,7 @@ def sigmoid(z):
return 1.0 / (1 + np.exp(-z))
# 这里写自己的代码实现
def train_logreg(X, y, learning_rate=0.01, iterations=1000, batch_size=32):
def train_logreg(X, y, learning_rate=0.01, iterations=1000):
"""
对率回归训练函数。
@@ -42,15 +42,15 @@ def train_logreg(X, y, learning_rate=0.01, iterations=1000, batch_size=32):
"""
m, n = X.shape
weights = np.zeros(n)
# 用于Adagrad的累积平方梯度
r = np.zeros(n)
epsilon = 1e-8
for i in range(iterations):
for j in range(0, m, batch_size):
end = min(j + batch_size, m)
X_batch = X[j:end]
y_batch = y[j:end]
z = np.dot(X_batch, weights)
z = np.dot(X, weights)
h = sigmoid(z)
gradient = np.dot(X_batch.T, (h - y_batch)) / len(X_batch)
weights -= learning_rate * gradient
gradient = np.dot(X.T, (h - y)) / m
r += gradient ** 2
weights -= learning_rate * gradient / (np.sqrt(r) + epsilon)
return weights
def predict_logreg(inX, weights):