我已经在Python中实现了Perceptron学习算法,如下所示.即使有500,000次迭代,它仍然不会收敛.
我有一个带有目标矢量Y的训练数据矩阵X和一个要优化的权重矢量w.
我的更新规则是:
while(exist_mistakes):
# dot product to check for mistakes
output = [np.sign(np.dot(X[i], w)) == Y[i] for i in range(0, len(X))]
# find index of mistake. (choose randomly in order to avoid repeating same index.)
n = random.randint(0, len(X)-1)
while(output[n]): # if output is true here, choose again
n = random.randint(0, len(X)-1)
# once we have found a mistake, update
w = w + Y[n]*X[n]
Run Code Online (Sandbox Code Playgroud)
这是错的吗?或者为什么即使在500,000次迭代后它也没有收敛?
我正在使用 BigQuery 运行带有多个WITH 子句的查询,如下所示:
WITH subq_L1 AS (
SELECT
id,
metric,
COUNT(DISTINCT IF(DATEDIFF(TIMESTAMP('{execution_date:s}'), TIMESTAMP(ds)) < 1, ds, NULL)) AS L1
FROM
[xxx:yyy.zzz]
GROUP EACH BY
id, metric
),
subq_L7 AS (
SELECT
id,
metric,
COUNT(DISTINCT IF(DATEDIFF(TIMESTAMP('{execution_date:s}'), TIMESTAMP(ds)) < 7, ds, NULL)) AS L7
FROM
[xxx:yyy.zzz]
GROUP EACH BY
id, metric
),
subq_L14 AS (
SELECT
id,
metric,
COUNT(DISTINCT IF(DATEDIFF(TIMESTAMP('{execution_date:s}'), TIMESTAMP(ds)) < 14, ds, NULL)) AS L14
FROM
[xxx:yyy.zzz]
GROUP EACH BY
id, metric
)
SELECT * FROM subq_L1
UNION ALL …Run Code Online (Sandbox Code Playgroud)