我如何通过线性回归制作模型'sinx / x'

问题描述

我尝试通过线性回归制作模型'sinx / x'。为了将模型制作成像ax ^ 2 + bx ^ 4 + ... mx ^ 2n ...这样的形状,我对此进行了编码。但是,效果不佳。如何获得正确的模型“ sinx / x”作为形状?

import tensorflow as tf
from math import sin


sin_xlist = []
sin_ylist = []

#jump = float(input('jump : '))
jump = 0.000007
n = 0
while n < 3.141592:
    sin_xlist.append(n)
    sin_ylist.append(sin(n)) # 나중에 sinx/x로 고치기
    n += jump

print(len(sin_xlist),len(sin_ylist))


X = tf.placeholder(tf.float32)
Y = tf.placeholder(tf.float32)
w0 = tf.Variable(tf.random_uniform([1],-1.0,1.0))
w1 = tf.Variable(tf.random_uniform([1],1.0))
w2 = tf.Variable(tf.random_uniform([1],1.0))
w3 = tf.Variable(tf.random_uniform([1],1.0))
w4 = tf.Variable(tf.random_uniform([1],1.0))
b = tf.Variable(tf.zeros([1]))


hypo = w0 + w1*(X**2) + w2*(X**4) + b


cost = tf.reduce_mean(tf.square(hypo - Y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.000005)
train = optimizer.minimize(cost)

sess = tf.Session()
sess.run(tf.global_variables_initializer())


for step in range(100001):
    cost_,train_ = sess.run([cost,train],Feed_dict={X:sin_xlist,Y:sin_ylist})
    if step%500==0:
        print("#",step,cost_)

sess.run(hypo,Feed_dict={X:0})


print(sess.run(w1))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)