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,不同的參數,不同的預處理等方法,入門的話可以直接用默認值。