%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from tensorflow.python.framework import ops
ops.reset_default_graph()
sess=tf.Session()
x_vals=np.linspace(0,10,100)
y_vals=x_vals+np.random.normal(0,1,100)
x_vals_column=np.transpose(np.mat(x_vals))
ones_column=np.transpose(np.mat(np.repeat(1,100)))
A=np.column_stack((x_vals_column,ones_column))
b=np.transpose(np.mat(y_vals))
A_tensor=tf.constant(A)
b_tensor=tf.constant(b)
tA_A=tf.matmul(tf.transpose(A_tensor),A_tensor)
L=tf.cholesky(tA_A)
tA_b=tf.matmul(tf.transpose(A_tensor),b)
sol1=tf.matrix_solve(L,tA_b)
sol2=tf.matrix_solve(tf.transpose(L),sol1)
solution_eval=sess.run(sol2)
slope=solution_eval[0][0]
y_intercept=solution_eval[1][0]
best_fit=[]
for i in x_vals:
best_fit.append(slope*i+y_intercept)
plt.plot(x_vals,y_vals,'o',label="Data")
plt.plot(x_vals,best_fit,'r-',label="Best fit line",linewidth=3)
plt.legend(loc='upper left')
Cholesky矩阵分解求线性回归系数
最新推荐文章于 2024-03-25 16:30:32 发布