这样的数据:
x y
7773 0
9805 4
7145 0
7645 1
2529 1
4814 2
6027 2
7499 2
3367 1
8861 5
9776 2
8009 5
3844 2
1218 2
1120 1
4553 0
3017 1
2582 2
1691 2
5342 0
...
实函数f(x)是:(返回十进制整数的圆数)
# 0 1 2 3 4 5 6 7 8 9
_f_map = [1, 0, 0, 0, 0, 0, 1, 0, 2, 1]
def f(x):
x = int(x)
assert x >= 0
if x == 0:
return 1
r = 0
while x:
r += _f_map[x % 10]
x /= 10
return r
训练数据和测试数据可以随机生成:
data = []
target = []
for i in xrange(3000):
x = random.randint(0, 999999) #hardcode a scale
data.append([x])
target.append(f(x))
真正的功能是离散和无限的尺度。
有没有办法或模型可以对这些数据进行分类?
我尝试了SVM(支持向量机),并获得了20%的准确率。
答案 0 :(得分:1)
看起来像是顺序模型的典型用例。您可以通过将您的数字视为网络中的整数序列来轻松学习LSTM /其他递归神经网络。此时,它只需学习求和操作和简单映射(您的f_map)。