用 keras 搭建出一个判断今天是周几的模型?

2022-04-03 17:38:21 +08:00
 zungmou

有没有前辈,能不能教下,如何用 keras 搭建一个模型,例如

x=[[2022, 12, 31]] x.shape = (-1, 3) y=[[6]] y.shape = (-1, 1)

x 对应日期,y 对应星期几,生成从 1000 年到 2021 年所有的日期对应的周几进行训练,这种模型要如何搭建?

我用了 Dense(64, activation='relu', input_shape=(3,)) Dense(64, activation='relu') Dense(1) 模型训练,并不能得到一个很好的结果。 刚入门,希望有前辈能给一点提示。

2596 次点击
所在节点    Keras
31 条回复
mxT52CRuqR6o5
2022-04-04 04:57:21 +08:00
虽然在工业实践上不该这么做,但在学术上研究这些问题是有意义的
ted2011
2022-04-04 12:08:41 +08:00
我记得 莫烦 有个类似的例子, 但一下找不到了, 你找找看
ted2011
2022-04-04 12:14:55 +08:00
找到了, 莫烦的例子是

# 中文的 "年-月-日" -> "day/month/year"
"98-02-26" -> "26/Feb/1998"

https://mofanpy.com/tutorials/machine-learning/nlp/seq2seq/

当然, 你这个模型要比莫烦这个例子难不少, 有没有解都不好说.

建议入门时选一些难度适宜的
zungmou
2022-04-04 15:47:26 +08:00
@paopjian 谢谢
zungmou
2022-04-04 15:48:39 +08:00
@ipwx 大佬,那换句话说,机器学习能够做到学会转换二级制吗?
zungmou
2022-04-04 15:49:56 +08:00
@misdake 谢谢。
zungmou
2022-04-04 15:50:34 +08:00
@ted2011 谢谢您
RuiCBai
2022-04-04 17:58:24 +08:00
可以的!
根据日期计算星期几是有公式的,叫蔡勒公式(但仅仅适用于 1582 年之后的日期)。
你用神经网络判断周几,无非就是用神经网络拟合这个复杂的函数,根据通用近似定理,肯定是可以的。

先可以根据这个公式生成大量样本,然后再训练。需要注意的是,不要使用 1582 年之前的日期,因为这样 样本可能不满足同分布 了,就会导致效果很差。
ipwx
2022-04-05 00:42:48 +08:00
@zungmou 你得设置合适的目标函数。。。但反过来这可能又等价于你转换成二进制了。
ipwx
2022-04-05 00:44:48 +08:00
@RuiCBai universal approximation theory 只说了,神经网络能表示任何一个可测集上的连续函数函数,但是不保证你的训练方法能恰好找到这个潜在的函数。大部分情况下训练样本外的数据,现在的神经网络并不保证能给出有意义的解。
ipwx
2022-04-05 00:46:48 +08:00
@RuiCBai 训练样本分布外

假设训练样本的分布是 p(x),那么现在的大部分训练出来的神经网络在 p(x) 定义域之外的分布上并不能给出有意义的解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844757

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX