sklearn 線性迴歸簡單應用
阿新 • • 發佈:2018-12-14
樣本準備
import numpy as np
import matplotlib.pyplot as plt
# 樣本準備
train_X = np.linspace(-1, 1, 100)
train_Y = 2 * train_X + np.random.randn(*train_X.shape) * 0.3 # y=2x,但是加入了噪聲
# 顯示模擬資料點
plt.plot(train_X, train_Y, 'ro', label='Original data')
plt.legend()
plt.show()
模型訓練及視覺化
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(train_X.reshape(100, 1), train_Y.reshape(100, 1))
print("輸入6,的模型預測結果:", model.predict(6))
print("線性模型的斜率與截距:", model.coef_, model.intercept_)
# y = kx+b
print("使用斜率與截距的計算結果:", model.coef_ * 6 + model.intercept_)
plt.plot(train_X, train_Y, 'ro', label= 'Original data')
plt.plot(train_X, model.predict(train_X.reshape(100, 1)), label='Fitted line')
plt.legend()
plt.show()
模型評估
X_test = np.linspace(11, 20, 20)
Y_test = 2 * X_test + np.random.randn(*X_test.shape) * 0.3
print("模型評估的分值:", model.score(X_test.reshape(20, 1), Y_test.reshape(20, 1)))
模型儲存,及應用
from sklearn.externals import joblib
joblib.dump(model, "train_model.m")
model = joblib.load("train_model.m")
print("匯入模型,並輸入6得到的預測結果:", model.predict(6))