from sklearn.linear_model import linearregression # 線性回歸的類
from sklearn.model_selection import train_test_split # 資料劃分的類
from sklearn.datasets import load_boston
from sklearn.datasets import load_iris
np.set_printoptions(precision=2)
#使得結果保留兩位小數
# 花瓣的長度(第二列)來**寬度(第三列)
iris=load_iris(
)#取所有的行和第二,第三列,並且將x轉化為二維的
x,y=iris.data[:,
2].reshape(-1
,1),iris.data[:,
3]lr=linearregression(
)x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=
0.25
,random_state=0)
lr.fit(x_train,y_train)
print
('模型權重:'
,lr.coef_)
print
('截距:'
,lr.intercept_)
y_hat=lr.predict(x_test)
print
('實際值:'
,y_train[:5
])print
('**值'
,y_hat[:5
])# r^2評估
y_hat=lr.predict(x_test)
print
('訓練集r^2:'
,lr.score(x_train,y_train)
)print
('測試集r^2:'
# 用來正常顯示負號
plt.rcparams[
'font.size']=
15plt.figure(figsize=(10
,6))
plt.scatter(x_train,y_train,c=
'orange'
,label=
'訓練集'
)plt.scatter(x_test,y_test,c=
'g',marker=
'd',label=
'測試集'
)plt.plot(x,lr.predict(x)
,'r-'
)plt.legend(
)plt.xlabel(
'花瓣長度'
)plt.ylabel(
'花瓣寬度'
'真實值'
,color=
'r',marker=
'o')
plt.plot(y_hat,label=
'**值'
,ls=
'--'
,color=
'g',marker=
'o')
plt.xlabel(
'測試集資料序號'
)plt.ylabel(
'資料集'
)x,y=boston.data,boston.target #這裡的x已經是乙個二維陣列了
('模型權重:'
,lr.coef_)
print
('截距:'
,lr.intercept_)
y_hat=lr.predict(x_test)
print
('訓練集r^2:'
,lr.score(x_train,y_train)
)print
('測試集r^2:'
]#取除開最後一列
y=df.iloc[:,
-1]#僅取最後一列
x_train, x_test, y_train, y_test = train_test_split(x, y,test_size=
0.2, random_state=0)
lr=linearregression(
)lr.fit(x_train,y_train)
print
(lr.predict(x_test)
)# #使用r方對模型效果進行評估
print
("訓練集r^2:"
, lr.score(x_train, y_train)
)print
("測試集r^2:"
線性回歸及python實現
有資料集 x1 y1 x2 y2 xn yn x1 y 1 x2 y2 x n y n 其中,xi xi1 xi2 xi3 xid yi rx i x x x x y i in r xi x i1 xi2 xi3 xi d yi r,其中n表示變數的數量,d表示每個變數的維度。可以用以下函式來描述y...
matlab線性回歸程式
最近用matlab做線性回歸,用到命令regress,可是發現他沒辦法做回歸係數的t檢驗,因此,自己就寫了乙個。參考書籍 計量經濟學 龐皓 科學出版社 function b,beta,t,t0,sigma,rss,tss,r,r1,f,f0 pureregress x,y,con x是因子,n p,...
線性回歸模型 線性回歸模型
回歸的思想和分類有所不一樣,分類輸出的結果為離散的值,回歸輸出的是乙個連續型的值。線性回歸的思想就是試圖找到乙個多元的線性函式 當輸入一組特徵 也就是變數x 的時候,模型輸出乙個 值y h x 我們要求這個 值盡可能的準確,那麼怎麼樣才能做到盡可能準確呢?其中 表示實際值,表示 值 其中 表示實際值...