1. 程式人生 > >sklearn的快速使用之五(隨機梯度下降)

sklearn的快速使用之五(隨機梯度下降)

import sys
import matplotlib.pyplot as plt
from sklearn.linear_model import SGDRegressor
from sklearn.preprocessing import StandardScaler
 
plt.figure() # 例項化作圖變數
plt.title('single variable') # 影象標題
plt.xlabel('x') # x軸文字
plt.ylabel('y') # y軸文字
plt.grid(True) # 是否繪製網格線
 
#正態分佈化    
X_scaler = StandardScaler()
y_scaler = StandardScaler()
X = [[50],[100],[150],[200],[250],[300]]
y = [[150],[200],[250],[280],[310],[330]]
X = X_scaler.fit_transform(X)
print (X)
y = y_scaler.fit_transform(y)
print (y)
X_test = [[40],[400]] # 用來做最終效果測試
X_test = X_scaler.transform(X_test)
print (X_test)
 
plt.plot(X, y, 'k.')

#隨機梯度下降模型
model = SGDRegressor()
print ("----")
print (y.ravel())
#ravel(散開,解開),flatten(變平)
model.fit(X, y.ravel())
y_result = model.predict(X_test)
print ("----")
print (y_result)
plt.plot(X_test, y_result, 'g-')
 
plt.show() # 展示影象