Sklearn——用Sklearn實現線性迴歸(LinearRegression)

1.前言

Sklearn 中的datasets,很多而且有用,可以用來學習算法模型。

比如: boston 房價, 糖尿病, 數字, Iris 花。

也可以生成虛擬的數據,例如用來訓練線性迴歸模型的數據,可以用函數來生成。
在這裏插入圖片描述
例如,點擊進入 boston 房價的數據,可以看到 sample 的總數,屬性,以及 label 等信息。
在這裏插入圖片描述
如果是自己生成數據,按照函數的形式,輸入 sample,feature,target 的個數等等。

sklearn.datasets.make_regression(n_samples=100, n_features=100, n_informative=10, n_targets=1, bias=0.0, effective_rank=None, tail_strength=0.5, noise=0.0, shuffle=True, coef=False, random_state=None)[source]

2.Sklearn實戰線性迴歸

2.1.導入必要模塊

from sklearn import datasets    #導入數據模塊
from sklearn.model_selection import train_test_split   #導入切分訓練集、測試集模塊
from sklearn.linear_model import LinearRegression

2.2.加載數據

加載 boston房價 的數據,把屬性存在 X,類別標籤存在 y:

boston_data = datasets.load_boston()     #加載數據
data_x = boston_data.data    #數據
data_y = boston_data.target  #標籤

觀察一下數據集

print(data_x)
print(data_y)

把數據集分爲訓練集和測試集,其中 test_size=0.3,即測試集佔總數據的 30%:

x_train, x_test, y_train, y_test = train_test_split(data_x, data_y,test_size = 0.3)
print(y_train)
print(y_test)

可以看到分開後的數據集,順序也被打亂,這樣更有利於學習模型:

2.3.訓練+預測

定義模塊方式 LinearRegression(), 用 fit 來訓練 training data,這一步就完成了訓練的所有步驟, 後面的 model 就已經是訓練好的模型,可以直接用來 predict 測試集的數據, 對比用模型預測的值與真實的值,可以看到大概模擬出了數據,但是有誤差,是不會完完全全預測正確的。

model = LinearRegression()   #實例化模型
model.fit(x_train, y_train)  #用訓練數據訓練
print(model.predict(x_test))  #預測
print(y_test)     #實際

爲了提高準確度,可以通過嘗試不同的 model,不同的參數,不同的預處理等方法,入門的話可以直接用默認值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章