GoogleやMicrosoft、IBMが提供する機械学習済みのデータを使うのであれば、自身で環境を構築する必要はありません。
しかし、独自の学習をさせるのであれば自身のコンピュータに環境を構築するか、或いはGoogleなどが提供するクラウド上の機械学習の環境が必要です。
以下のサイトを参考にさせていただき、MacOSにTensorflowをインストールして環境を構築しました。
https://qiita.com/junichiro/items/8886f3976fc20f73335f
上記のサイトでは、予め線形関数の係数を定めて、この関数からデータを作成して学習データとしています。
今回は、下記のサイトのデータを使わせていただき、線形回帰の機械学習を試してみました。
https://kyoto-edu.sakura.ne.jp/?&course=statistics&content=correl
実行結果は以下のとおり。
python tensorflow-test.py
0 [8.540184] [0.9793252]
200 [6.1199374] [-0.58089983]
400 [6.234987] [-1.5768614]
600 [6.325655] [-2.3617592]
800 [6.3971086] [-2.9803212]
1000 [6.4534197] [-3.467797]
1200 [6.4977975] [-3.8519664]
1400 [6.5327706] [-4.1547227]
1600 [6.560332] [-4.3933163]
1800 [6.582052] [-4.581347]
2000 [6.5991697] [-4.7295313]
0歳の得点がマイナスというのも変なモデルですが、そこはそういうデータだったということで良しとします。
Pythonのソースファイルは以下です。
import tensorflow as tf
import numpy as np
x_data = np.loadtxt('exam-result.csv', delimiter=',', usecols=[3], skiprows=1)
y_data = np.loadtxt('exam-result.csv', delimiter=',', usecols=[1], skiprows=1)
# Try to find values for W and b that compute y_data = W * x_data + b
# (We know that W should be 0.1 and b 0.3, but TensorFlow will
# figure that out for us.)
W = tf.Variable(tf.zeros([1]))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
# Minimize the mean squared errors.
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
# Before starting, initialize the variables. We will 'run' this first.
init = tf.global_variables_initializer()
# Launch the graph.
sess = tf.Session()
sess.run(init)
# Fit the line.
for step in range(2001):
sess.run(train)
if step % 200 == 0:
print(step, sess.run(W), sess.run(b))
# Close the Session when we're done.
sess.close()