DL多元線性迴歸的衍生算法(通過3種迴歸與SGDRegressor做比較,代碼實戰)

學了本文你能學到什麼?僅供學習,如有疑問,請留言。。。

 

# -*- coding: utf-8 -*-
# Author       :   szy
# Create Date  :   2019/10/30
#總共3種線性迴歸
#第一種:Ridge嶺迴歸

import numpy as np
from sklearn.linear_model import Ridge
from sklearn.linear_model import SGDRegressor

X = 2*np.random.rand(100, 1)
y = 4 + 3*X + np.random.randn(100, 1)

ridge_reg = Ridge(alpha=0.4, solver='sag')
ridge_reg.fit(X, y)
print(ridge_reg.predict([[1.5]]))
print(ridge_reg.intercept_)
print(ridge_reg.coef_)
print("---"*20)
sgd_reg = SGDRegressor(penalty='l2', max_iter=10000)
sgd_reg.fit(X, y.reshape(-1,))
print(sgd_reg.predict([[1.5]]))
print(sgd_reg.intercept_)
print(sgd_reg.coef_)

"----------------------------------------------------------------------------------------"

#第二種,Lasso迴歸

# import numpy as np
# from sklearn.linear_model import Lasso
# from sklearn.linear_model import SGDRegressor
#
# X = 2*np.random.rand(100, 1)
# y = 4 + 3*X + np.random.randn(100, 1)
#
# lasso_reg = Lasso(alpha=0.01, max_iter=30000)
# lasso_reg.fit(X, y)
#
# print(lasso_reg.predict([[1.5]]))
# print(lasso_reg.intercept_)
# print(lasso_reg.coef_)
# print("-----------------------------")
# sgd_reg = SGDRegressor(penalty='l1', max_iter=10000)
# sgd_reg.fit(X, y.ravel())
# print(sgd_reg.predict([[1.5]]))
# print(sgd_reg.intercept_)
# print(sgd_reg.coef_)

"-----------------------------------------------------------------"
#第三種,ElasticNet迴歸

# import numpy as np
# from sklearn.linear_model import ElasticNet
# from sklearn.linear_model import SGDRegressor
#
# X = 2*np.random.randn(100, 1)
# y = 4 + 3 * X + np.random.randn(100, 1)
#
# elastic_reg = ElasticNet(alpha=0.04, l1_ratio=0.15)
# elastic_reg.fit(X, y)
# print(elastic_reg.predict([[1.5]]))
# print("----------------------")
# sgd_reg = SGDRegressor(penalty='elasticnet', max_iter=1000)
# sgd_reg.fit(X, y.ravel())
# print(sgd_reg.predict([[1.5]]))



#總結多元線性迴歸用第一個比較合適






 

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