python 一元線性回歸模型分析

2021-09-24 12:14:13 字數 3645 閱讀 9022

一、要求

boston 房價資料是機器學習中著名的基礎資料集,包含 506 條記錄,每條記錄包含房

屋的 13 條屬性,房價資訊屬性 medv 在 boston.target 中,具體(翻譯成中文) 可通過如下語句檢視:

print(boston.descr)

各屬性的中文解釋如下:

完成如下資料處理和分析任務:

(1)在一張畫布上,畫出每個變數與房價變化的散點圖,並詳細分析各個變數和房價

之間的關係。

(2)計算變數和房價的相關係數(相關係數的函式 df.corr())。

(3)建立所有變數和房價的線性回歸模型,寫出模型表示式,並分析模型的顯著性。

(4)將係數檢驗結果不顯著的變數去掉,重新建立線性模型。

(5)選擇與房價的相關係數大於等於 0.5 的變數,作為模型的自變數,房價作為因變

量,建立線性回歸模型,並將房價**值和真實值繪製成折線圖。

二、**

from sklearn import datasets

import pandas as pd

import matplotlib.pyplot as plt

#from scipy.misc import factorial 依賴scipy 而且為1.2

.0版本

#此檔案依賴pillow

boston = pd.

read_csv

('./dataset/boston_house.csv'

)df=pd.

dataframe

(boston)

#print

(df.iloc[:,

-1])

#相關係數大於0.5

x_has=

y_predict=

plt.

figure(1

)#第一題

plt.rcparams[

'font.sans-serif']=

'simhei'

plt.rcparams[

'axes.unicode_minus'

]= false

for i in

range(13

):plt.

subplot(7

,2,i+1

) plt.

scatter

(df.iloc[

:,i]

,df.iloc[:,

-1],marker=

'o',c=

'g')# x,y,

,green

#第二題

#print

(type

(df.columns[1]

))dfi=df[

[df.columns[i]

,df.columns[-1

]]]print

('\n'

,dfi.

corr()

,dfi.

corr()

.iloc[0,

1],'\n'

) #print

(dfi.

corr()

.iloc[0,

1])

#第三題

import numpy as np

from sklearn.linear_model import linearregression

x_linear=df.iloc[

:,i]

.values.

reshape(-

1,1) #將dataframe轉為array格式,通過values 屬性

y_linear=df.iloc[:,

-1].values.

reshape(-

1,1) ##reshape(-

1,1)功能

#print

(x_linear,

type

(x_linear)

) lreg =

linearregression()

lreg.

fit(x_linear, y_linear)

message0 =

'一元線性回歸方程為: '

+'\ty'

+'='

+str

(lreg.intercept_[0]

)+' + '

+str

(lreg.coef_[0]

[0])

+'*x'

import scipy.stats as stats

n =

len(x_linear)

y_prd = lreg.

predict

(x_linear)

if dfi.

corr()

.iloc[0,

1]>

0.5:

x_has.

(i) y_predict.

(y_prd)

regression =

sum(

(y_prd - np.

mean

(y_linear))**

2) # 回歸

residual =

sum(

(y_linear - y_prd)**2

) # 殘差

r_square = regression /

(regression + residual) # 相關性係數r^2

f=(regression /1)

/(residual /

( n -2)

) # f 分布

#取a=

0.05

if stats.

pearsonr

(x_linear,y_linear)[1

][0]

<

0.05

: ms1_1=

'顯著'

else

: ms1_1=

'不顯著'

message1=

'顯著性檢測(p值檢測):'

+str

(stats.

pearsonr

(x_linear,y_linear)[1

][0]

)+ ms1_1

print

(message0,

'\n'

,message1)

#第四題

print

(x_has,y_predict)

plt.

show()

#第五題

plt.

figure(2

)for i in

range

(len

(x_has)):

plt.

plot

(df.iloc[:,

-1].values,marker=

'o',c=

'g')

plt.

plot

(y_predict[i]

,marker=

'o',c=

'r')

plt.

show

()

一元線性回歸模型 Python

演示建模過程 import collections collections 是python內建的乙個集合模組 import pandas as pd import matplotlib.pyplot as plt 1 建立資料集 jobdict job orderdict collections.o...

python 一元線性回歸模型

模型中只有乙個自變數和因變數可表示成 數學公式可表示成 其中a為模型的截距項,b為模型的斜率項,就是如何根據自變數x和因變數y求解回歸係數a和b。如果擬合線能夠精確地捕捉到每乙個點 所有的散點全部落在擬合線上 那麼對應的誤差項 誤差平方和的公式可以表示為 公式轉換 求解a和b 樣本量 n incom...

一元線性回歸模型

在回歸模型裡,線性回歸絕對是最簡單的,但這並不妨礙它成為回歸問題上的佼佼者。對於絕大部分的資料分析場景,線性回歸是我們的首選。歸其原因,有幾點 模型簡單且適用於大資料。訓練起來也非常快,資源消耗也少。線性回歸的評估標準?一種最簡單的方法就是測量真實值和 值之間的差異,也叫做誤差。假設一條線很好地擬合...