python中常用的三種線性回歸

2021-10-02 03:27:37 字數 3433 閱讀 4916

from sklearn.linear_model import linearregression

import numpy as np

import matplotlib.pyplot as plt

x = [[1],[4],[3]] #輸入x

y = [3,5,3] #輸入y

lr = linearregression().fit(x,y)

z = np.linspace(0,5,20)

plt.scatter(x,y,s=80)

plt.plot(z, lr.predict(z.reshape(-1,1)),c='k')#reshape將z改為任意行,一列

plt.title('straight line')

plt.show()

print('\n\n直線方程為:')

plt.plot(z, lr.predict(z.reshape(-1,1)),c='k')#reshape任意行,一列

plt.title('straight line')

plt.show()

print('\n\n直線方程為:')

print('**********====')

print('y = '.format(lr.coef_[0]),'x','+'.format(lr.intercept_))

print('**********====')

print('直線係數為:'.format(lr.coef_[0]))

print('**********====')

print('直線截距為:'.format(lr.intercept_))

1.最小二乘法

from sklearn.model_selection import train_test_split

from sklearn.linear_model import linearregression #最小二乘法

x,y=make_regression(n_samples=100,n_features=2,n_informative=2,random_state=38)

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=8)

lr = linearregression().fit(x_train, y_train)

print("lr.coef_: {}".format(lr.coef_[:]))

print("lr.intercept_: {}".format(lr.intercept_))

print("訓練資料集得分:".format(lr.score(x_train, y_train)))

print("測試資料集得分:".format(lr.score(x_test, y_test)))

2.嶺回歸

from sklearn.model_selection import train_test_split

from sklearn.linear_model import ridge #嶺回歸

x,y=make_regression(n_samples=100,n_features=2,n_informative=2,random_state=38)

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=8)

lr = ridge().fit(x_train, y_train)

print("lr.coef_: {}".format(lr.coef_[:]))

print("lr.intercept_: {}".format(lr.intercept_))

print("訓練資料集得分:".format(lr.score(x_train, y_train)))

print("測試資料集得分:".format(lr.score(x_test, y_test)))

3.套索回歸

from sklearn.model_selection import train_test_split

from sklearn.linear_model import lasso #套索回歸

x,y=make_regression(n_samples=100,n_features=2,n_informative=2,random_state=38)

x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=8)

lr = lasso().fit(x_train, y_train)

print("lr.coef_: {}".format(lr.coef_[:]))

print("lr.intercept_: {}".format(lr.intercept_))

print("訓練資料集得分:".format(lr.score(x_train, y_train)))

print("測試資料集得分:".format(lr.score(x_test, y_test)))

Spring中常用三種通知

1 前置通知 介面 org.springframework.aop.methodbeforeadvice 使用前置通知可以在聯結點執行前進行自定義的操作。不過,spring裡只有一種聯結點,即方法呼叫,所以前置通知事實上就是讓你能在方法呼叫前進行一些操作。前置通知可以訪問呼叫的目標方法,也可以對該方...

mysql中常用的三種插入資料的語句

mysql中常用的三種插入資料的語句 insert into表示插入資料,資料庫會檢查主鍵 primarykey 如果出現重複會報錯 replace into表示插入替換資料,需求表中有primarykey,或者unique索引的話,如果資料庫已經存在資料,則用新資料替換,如果沒有資料效果則和ins...

三種常用的STL

1 vector容器 vector容器是乙個動態陣列的結構,在記憶體中有乙個指標指向一塊連續的記憶體。類似陣列結構一樣。它的特點支援隨機訪問資料,因為其在記憶體中的單元是連續。如此之外,還可以vector的大小是可以自動增長的。當向乙個vector中繼續存放資料的時候,如果當前的記憶體大小不夠,核心...