Es ist ein Stück, um zu versuchen, mithilfe von Deep Learning sogar die Anzahl der Lotterien 6 vorherzusagen. Natürlich gibt die Lotterie jedes Mal nur Zufallszahlen aus, daher sollte es nicht funktionieren, aber es scheint, dass einige Leute es ernsthaft erwarten, und ich habe den Code schnell geschrieben, anstatt ihn auf der Festplatte zu vergraben. Ich werde es veröffentlichen. Ich mache es nicht sehr ernst, daher ist die Erklärung auch angemessen. Bitte kommentieren Sie, wenn Sie Bedenken haben.
Ich habe mich gefragt, was ich eingeben soll, aber ich habe die Gewinnzahlen für die letzten 5 Male ausgewählt. Lotto 6 ist ein Mechanismus, bei dem 6 aus 43 Zahlen ausgewählt werden. Wenn alle 6 gewonnen sind, wird der erste Preis vergeben. Die Ausgabe beträgt also 43 Flags, wenn beispielsweise 1,3,4,11,20,43 die Gewinnzahl ist [1,0,1,1,0,0, ..... 0, Ich nahm an, eine Flagge wie 0,1 zu erwarten. (Genau genommen ist es etwas anders, weil es durch Softmax geht) Die Daten wurden durch Scraping von der Website der Mizuho Bank gesammelt. Es werden ungefähr 1000 Daten sein.
TensorFlow 0.7 Ubuntu 14.04 AWS EC2 microinstance
Es werden nur die Teile extrahiert, bei denen es sich wahrscheinlich um Punkte handelt.
Es gibt zwei versteckte Schichten und die Anzahl der Einheiten beträgt 1000 bzw. 500. Die Ausgabe ist 43.
def inference(x_ph, keep_prob):
with tf.name_scope('hidden1'):
weights = tf.Variable(tf.truncated_normal([data_num * NUM_CLASSES, NUM_HIDDEN1], stddev=stddev), name='weights')
biases = tf.Variable(tf.zeros([NUM_HIDDEN1]), name='biases')
hidden1 = tf.nn.relu(tf.matmul(x_ph, weights) + biases)
with tf.name_scope('hidden2'):
weights = tf.Variable(tf.truncated_normal([NUM_HIDDEN1, NUM_HIDDEN2], stddev=stddev), name='weights')
biases = tf.Variable(tf.zeros([NUM_HIDDEN2]), name='biases')
hidden2 = tf.nn.relu(tf.matmul(hidden1, weights) + biases)
# DropOut
dropout = tf.nn.dropout(hidden2, keep_prob)
with tf.name_scope('softmax'):
weights = tf.Variable(tf.truncated_normal([NUM_HIDDEN2, NUM_CLASSES], stddev=stddev), name='weights')
biases = tf.Variable(tf.zeros([NUM_CLASSES]), name='biases')
y = tf.nn.softmax(tf.matmul(dropout, weights) + biases)
return y
Verlustberechnungsteil. Das richtige Antwortetikett (Ziel) ist ein Flag von 0 oder 1, aber da y durch Softmax kommt, ist es eine Trübung, die insgesamt 1 ergibt, und da die Skala nicht so übereinstimmt, wie sie ist, passiert das Ziel auch Softmax. ..
def loss(y, target):
softmax_target = tf.nn.softmax(target)
cross_entropy = tf.nn.softmax_cross_entropy_with_logits(y, softmax_target, name='xentropy')
loss = tf.reduce_mean(cross_entropy, name='xentropy_mean')
return loss
Ausbildung.
def training(sess, train_step, loss, x_train_array, y_train_array):
summary_op = tf.merge_all_summaries()
init = tf.initialize_all_variables()
sess.run(init)
summary_writer = tf.train.SummaryWriter(LOG_DIR, graph_def=sess.graph_def)
for i in range(int(len(x_train_array) / bach_size)):
batch_xs = getBachArray(x_train_array, i * bach_size, bach_size)
batch_ys = getBachArray(y_train_array, i * bach_size, bach_size)
sess.run(train_step, feed_dict={x_ph: batch_xs, y_ph: batch_ys, keep_prob: 0.8})
ce = sess.run(loss, feed_dict={x_ph: batch_xs, y_ph: batch_ys, keep_prob: 1.0})
summary_str = sess.run(summary_op, feed_dict={x_ph: batch_xs, y_ph: batch_ys, keep_prob: 1.0})
summary_writer.add_summary(summary_str, i)
Verlust Sie können sehen, dass es kein Chaos geworden ist (lacht) Ich habe gelernt, dass es so wäre, wenn ich nicht anders könnte.
Ich weiß, dass es völlig nutzlos ist, aber lassen Sie es uns tatsächlich vorhersagen. Lassen Sie uns den 1046. anhand der Daten des 1045. bis 1041 vorhersagen. Die Eingabe sieht wie folgt aus
[[01,19,21,30,31,43],[03,07,16,26,34,39],[21,29,30,32,38,42],[04,10,11,12,18,25],[14,22,27,29,33,37]]
Das Ergebnis ist unten.
[6, 10, 12, 23, 27, 38]
Die tatsächlichen Gewinnzahlen sind [06, 13, 17, 18, 27, 43]. Ich treffe zwei. Übrigens kostet es 1.000 Yen, drei zu treffen. Ich bin mir nicht sicher, wie viele Treffer der Durchschnitt sind (ich weiß nicht, wie ich rechnen soll), aber lassen Sie uns die seltsamen Erwartungen wegwerfen.
Recommended Posts