5 線性回歸演算法 4 20

2022-08-21 03:27:10 字數 3878 閱讀 6260

1.本節重點知識點用自己的話總結出來,可以配上,以及說明該知識點的重要性

·我們先了解回歸演算法:

·課上老師舉了線性回歸的應用:①房價**;②銷售額**;③貸款額度**;

我們可以發現做線性回歸,需要的資料都應該為連續型,最終要**的因素成為目標值,把影響的因素成為特徵;如果影響的因素只有乙個,那麼這就是乙個單線性回歸,如果有多個影響因素,那就是乙個多線性回歸。

★ 我認為這裡有乙個重要的知識點就是:線性回歸的資料應該是連續型的,如果拿到的資料如下圖紅色標點,那便不符合線性回歸模型。

·線性回歸模型:

(1)如果是乙個變數,那就是二維空間;多個變數就是三維空間。

①陣列與矩陣的特性與區別:

②用**比較資料和矩陣相乘的結果:

·機器學習需要迭代演算法來減少誤差,這裡引入乙個 損失函式(誤差的大小);學習的目的,就是將損失函式最小化:

減少誤差的方法(優化線性回歸的策略):

①正規方程:

★②梯度下降法:

∂為學習速率,學習速率的取值取決於資料樣本。機器進行學習,多次迭代,如果損失函式在變小,說明結果越準確,取值準確。

關於梯度下降的具體概念可以參考:的第二題。

梯度下降**:

#

梯度下降

import

random

import

time

import

matplotlib.pyplot as plt

#產生資料

_xs = [0.1 * x for x in range(0, 10)]

_ys = [12 * i + 4 for i in

_xs]

print

(_xs)

print

(_ys)

w =random.random()

b =random.random()

a1 =

b1 =

for i in range(100):

for x, y in

zip(_xs, _ys):

o = w * x + b #

**值 e = (o - y) #

誤差 loss = e ** 2 #

損失 dw = 2 * e * x #

對w求導

db = 2 * e * 1 #

對d求導

#梯度下降,0.1為學習率

w = w - 0.1 *dw

b = b - 0.1 *db

#最終結果:loss越小越好,w接近12,b接近4

print('

loss=,w=,b=

'.format(loss, w, b))

plt.plot(a1, b1)

plt.pause(0.1)

plt.show()

2.思考線性回歸演算法可以用來做什麼?(大家盡量不要寫重複)

可以用於:

(1)家庭家電的**:①時間與功率之間的關係;②時間與電壓之間的多項式關係。

(2)醫學上可以**年齡和血壓的關係。

(3)**乙個發展的電信市場的網路容量。

3.自主編寫線性回歸演算法 ,資料可以自己造,或者從網上獲取。(加分題)

資料是我以前爬蟲的廣州市二手房資料,前幾天爬了一次被抓到了哈哈。

資料如下(獲取單價和總價作為資料樣本):    

用單價來**總價,視覺化結果如下:

我們可以看到**值和真實值還是比較接近的,這說明用單價來**總價還是比較靠譜的。從模型的權值也可以看出,**結果相對準確:

import

pandas as pd

import

matplotlib.pyplot as plt

data = pd.read_csv('

house.csv

', index_col=0) #

讀取資料

#線型回歸

from sklearn.linear_model import

linearregression

regr = linearregression() #

構建模型

regr.fit(data[['

單價']].values, data['總價'

])print('

權值:', regr.coef_, '

截距:'

, regr.intercept_)

plt.plot(regr.predict(data[['單價

']].values), linewidth=1.7, linestyle='

-', color='

#a6cee3

') #

**結果

plt.plot(data[['

總價']].values, linewidth=1.7, linestyle='

-', c='

#fdbf6f')

#視覺化處理

plt.rcparams['

font.sans-serif

'] = '

simhei

'plt.rcparams[

'axes.unicode_minus

'] =false

plt.legend([

'真實值

', '

**值'

])plt.title(

'廣州市二手房**線型回歸模型**結果')

plt.show()

我們也可以畫出單價和總價呈線性關係的視覺化檢視:

plt.scatter(data['

單價'].values, data['總價'

].values)

plt.plot(data[['單價

']].values, regr.predict(data[['

單價']].values), c='r'

)plt.title(

'廣州市二手房**與單價散點圖')

plt.xlabel('單價

')plt.ylabel('總價

')plt.show()

5 線性回歸演算法

1.本節重點知識點用自己的話總結出來,可以配上,以及說明該知識點的重要性 答 監督學習分為回歸和分類兩大類,這次課學習回歸演算法,回歸演算法是分類方法的提公升。連續變數 採用回歸演算法 如天氣的溫度 離散變數 採用分類演算法 如天氣是陰,晴,還是雨 矩陣是大多數演算法的計算基礎,矩陣的這種運算正好滿...

5 線性回歸演算法

1.本節重點知識點用自己的話總結出來,可以配上,以及說明該知識點的重要性 1 線性回歸的定義和多元一次線性方程 定義 線性回歸通過乙個或者多個自變數與因變數之間進行建模的回歸方法,其中可以為乙個或者多個自變數之間的線性組合 2 線性回歸的機器 跟真實值是存在一定的誤差的 3 損失函式 計算誤差大小的...

5 線性回歸演算法

1.本節重點知識點用自己的話總結出來,可以配上,以及說明該知識點的重要性 2.思考線性回歸演算法可以用來做什麼?大家盡量不要寫重複 3.自主編寫線性回歸演算法 資料可以自己造,或者從網上獲取。加分題 解 1.回歸演算法的背景 監督學習 回歸和分類的區別 重點 最小二乘法之梯度下降法 重點理解 課堂 ...