有没有办法使用机器学习分类离散和无限比例数据?

时间:2016-03-19 17:30:47

标签: machine-learning classification discrete-mathematics supervised-learning

这样的数据:

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%的准确率。

1 个答案:

答案 0 :(得分:1)

看起来像是顺序模型的典型用例。您可以通过将您的数字视为网络中的整数序列来轻松学习LSTM /其他递归神经网络。此时,它只需学习求和操作和简单映射(您的f_map)。