1

Die Daten wie folgt aus:Gibt es eine Möglichkeit, mit Machine Learning diskrete und unendliche Skalendaten zu klassifizieren?

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 
... 

Die eigentliche Funktion f (x): (der Kreis-Zählung einer Dezimalzahl Return)

#   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 

Die Trainingsdaten und Testdaten können hergestellt werden random:

data = [] 
target = [] 
for i in xrange(3000): 
    x = random.randint(0, 999999) #hardcode a scale 
    data.append([x]) 
    target.append(f(x)) 

Die eigentliche Funktion ist diskrete und unendliche Skala.

Gibt es einen Weg oder ein Modell kann diese Daten klassifizieren?

Ich versuchte SVM (Support Vector Machine), und erlangte eine Genauigkeit von 20%.

Antwort

1

Sieht aus wie ein typischer Anwendungsfall von sequentiellen Modellen. Sie können leicht LSTM/anderes wiederkehrendes neurales Netzwerk dazu lernen, indem Sie Ihre Zahlen als Folgen von Ganzzahlen betrachten, die in das Netzwerk eingespeist werden. An diesem Punkt muss es nur Summenoperation und eine einfache Zuordnung (Ihre f_map) lernen.