scikit-learn에 비해 tensorflow는 변수설정이 비교적 복잡하다.
scikit-learn에는 없는 [수식]이 tensorflow에 들어가기 때문에....
close test라는 전제.
scikit-learn |
tensorflow y = w1x + w2x^2 + w3x^3 + w4x^4 + w5x^5 |
iris_dataset = load_iris() X = iris_dataset.data y = iris_dataset.target model = LogisticRegression(C=100, penalty="l1") model.fit(X, y) print('predict: {}'.format(model.predict(X))) print('train score: {}'.format(model.score(X, y))) | [수식] x = tf.placeholder(tf.float32, [None, 5]) w = tf.Variable(tf.zeros([5, 1])) y = tf.matmul(x, w) t = tf.placeholder(tf.float32, [None, 1]) loss = tf.reduce_sum(tf.square(y-t)) train_step = tf.train.AdamOptimizer().minimize(loss) sess = tf.Session() sess.run(tf.global_variables_initializer()) # 트레이닝 세트 데이터를 준비한다. train_x = np.zeros([12, 5]) for row, month in enumerate(range(1, 13)): for col, n in enumerate(range(0, 5)): train_x[row][col] = month**n train_t = np.array([5.2, 5.7, 8.6, 14.9, 18.2, 20.4, 25.5, 26.4, 22.8, 17.5, 11.1, 6.6]) train_t = train_t.reshape([12,1])
i = 0 for _ in range(10000): i += 1 sess.run(train_step, feed_dict={x:train_x, t:train_t}) if i % 1000 == 0: loss_val = sess.run(loss, feed_dict={x:train_x, t:train_t}) print ('Step: %d, Loss: %f' % (i, loss_val)) w_val = sess.run(w) print(w_val) def predict(x): result = 0.0 for n in range(0, 5): result += w_val[n][0] * x**n return result test_x = np.linspace(1,12,12) # 12개 pred_y = predict(linex) |
출처: [텐서플로로 시작하는 딥러닝]
'python 및 머신러닝 > 파이썬 라이브러리를 활용한 머신러닝' 카테고리의 다른 글
scikit-learn 책 정리 (0) | 2017.09.18 |
---|---|
파이썬 라이브러리를 활용한 머신러닝 2장~6장 정리 (1) | 2017.08.30 |
파이썬 라이브러리를 활용한 머신러닝 5장 (0) | 2017.08.28 |
파이썬 라이브러리를 활용한 머신러닝 4장 (0) | 2017.08.25 |
파이썬 라이브러리를 활용한 머신러닝 3장 (0) | 2017.08.18 |