多變數線性回歸

2021-10-06 07:19:23 字數 2878 閱讀 9729

# 固定隨機數

x1 = numpy.random.random(50)

x2 = numpy.random.random(50)

y =3+

0.7* x1 -

2.3* x2

x = numpy.c_[x1, x2]

x = numpy.c_[numpy.ones(

len(x)

), x]

y = numpy.c_[y]

m, n = x.shape

alpha, iter0 =

0.01

,20000

theta, j = numpy.zeros(

(n,1))

, numpy.zeros(iter0)

# 梯度下降法

for i in

range

(iter0)

: h = numpy.dot(x, theta)

# 公式一

j[i]=(

0.5/ m)

* numpy.

sum(numpy.square(h - y)

)# 公式二

grad =(1

/ m)

* numpy.dot(x.t, h - y)

# 公式三

theta -= alpha * grad

print

(theta)

print

(j)# 資料視覺化:繪製三維圖形

plt.figure(

) ax1 = plt.axes(projection=

'3d'

) xx1 = numpy.sort(x[:,

1]) xx2 = numpy.sort(x[:,

2]) x, y = numpy.meshgrid(xx1, xx2)

print

(x)print

(y) h = theta[0]

+ theta[1]

* x + theta[2]

* y ax1.plot_su***ce(x, y, h, cmap=

'rainbow'

) plt.show(

)

import numpy

import matplotlib.pyplot as plt

if __name__ ==

'__main__'

: numpy.random.seed(12)

x0 = numpy.random.random(50)

y0 =2+

0.5* x0 -

1.5* x0 **

2+ x0 **

3 d =

3 x = numpy.c_[numpy.ones(

len(x0))]

y = numpy.c_[y0]

for i in

range(1

, d +1)

: x = numpy.c_[x, x0 ** i]

m, n = x.shape

alpha, iter0 =1,

20000

theta, j = numpy.zeros(

(n,1))

, numpy.zeros(iter0)

# 梯度下降法

for i in

range

(iter0)

: h = numpy.dot(x, theta)

# 公式一

j[i]=(

0.5/ m)

* numpy.

sum(numpy.square(h - y)

)# 公式二

grad =(1

/ m)

* numpy.dot(x.t, h - y)

# 公式三

theta -= alpha * grad

print

(theta)

print

(j) plt.subplot(

121)

plt.plot(j)

plt.subplot(

122)

plt.scatter(x[:,

1], y, c=

'g', marker=

'.')

x1 = numpy.sort(x0)

y1 = numpy.zeros(

len(y0)

)for i in

range

(d +1)

: y1 += theta[i]

*(x1 ** i)

plt.plot(x1, y1, c=

'r')

plt.grid(

true

) plt.show(

)

多變數線性回歸

import numpy as np import pandas as pd import matplotlib.pyplot as plt import cost function import gd function path ex1data2.txt data2 pd.read csv pat...

多變數線性回歸

python 推理部分 1 損失函式 注意,那個第一列為1的值是插入的,不是原始資料,為了彌補theta 0 這個引數。2 特徵歸一化 3 損失函式 特徵歸一化處理 param data 特徵值 return 特徵歸一化處理後的特徵值 return data data.mean data.std d...

C 實現線性回歸(多變數)

本文主要介紹c 實現線性回歸問題,實現房價的 可以有多個變數 1 單變數 2 多變數 1 測試資料 房價的估計 2 開發工具 vim gnu linux make gdb 3 執行環境 linux,g 4.9.2 4 動態庫 libmatrix.so 自己寫的矩陣包 libmyaxis.so 自己用...