構造符合線性回歸的資料點
import其中,x1和y1構成的點,圍繞在y=0.1x+0.3的直線,然後用matplotlib畫出來。numpy as np
import
tensorflow as tf
import
matplotlib.pyplot as plt
#隨機生成1000個點,圍繞在y=0.1x+0.3的直線周圍
num_points = 1000vectors_set =
for i in
range(num_points):
x1 = np.random.normal(0.0, 0.55)
y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03)
(vectors_set)
#生成一些樣本
#使用for進行拆分資料的方法
x_data = [v[0] for v in
vectors_set]
y_data = [v[1] for v in
vectors_set]
plt.scatter(x_data,y_data,c='
b')#
c表示顏色
plt.show()
然後使用tensorflow進行訓練,得到w和b的值
#根據執行結果看,進行20次迭代之後,w和b已經接近我們設的值了生成1維的w矩陣,取值是[-1,1]之間的隨機數
w = tf.variable(tf.random_uniform([1], -1.0, 1.0), name='w'
)#生成1維的b矩陣,初始值是0
b = tf.variable(tf.zeros([1]), name='b'
)#經過計算得出預估值y
y = w * x_data +b
#以預估值y和實際值y_data之間的均方誤差作為損失
loss = tf.reduce_mean(tf.square(y - y_data), name='
loss')
#採用梯度下降法來優化引數
optimizer = tf.train.gradientdescentoptimizer(0.5)
#訓練的過程就是最小化這個誤差值
train = optimizer.minimize(loss, name='
train')
sess =tf.session()
init =tf.global_variables_initializer()
sess.run(init)
#初始化的w和b是多少
print ("
w =", sess.run(w), "
b =", sess.run(b), "
loss =
", sess.run(loss))
#執行20次訓練
for step in range(20):
sess.run(train)
#輸出訓練好的w和b
print ("
w =", sess.run(w), "
b =", sess.run(b), "
loss =
", sess.run(loss))
畫圖:
plt.scatter(x_data,y_data,c='r'線性回歸的python實現
最近在學習機器學習的一些演算法,從最開始的線性回歸開始。線性回歸其實就是用一條直線來模擬你的資料,並且讓所產生的誤差盡可能的小。coding utf 8 import random import numpy as np from matplotlib import pyplot as pp rand...
python實現線性回歸
定義 線性回歸在假設特徵滿足線性關係,根據給定的訓練資料訓練乙個模型,並用此模型進行 文中只介紹了簡單的概念,不涉及公式的證明等。從最簡單的一元線性關係介紹,假設有一組資料型態為 y theta x,其中 x y 我們根據 x,y 模擬出近似的 theta 引數值,進而得到 y theta x 模型...
python實現線性回歸
線性回歸模型是最簡單的機器學習模型,基礎可以從線性回歸模型開始入手,慢慢地過渡到非線性回歸以及神經網路模型。1.概念 2.線性回歸 簡單回歸 乙個自變數輸入,y x是一對一的關係,對映到幾何上來說就是二維座標系的直線方程,可表示為y 多元回歸 多個自變數,改變維度的大小。即 3.最小二乘法 通過向量...