python模擬線性回歸的點

2021-09-25 12:41:02 字數 2020 閱讀 6117

構造符合線性回歸的資料點

import

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)

print

(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()

其中,x1和y1構成的點,圍繞在y=0.1x+0.3的直線,然後用matplotlib畫出來。

然後使用tensorflow進行訓練,得到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))

根據執行結果看,進行20次迭代之後,w和b已經接近我們設的值了

畫圖:

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.最小二乘法 通過向量...