学习记录(二)——几种线性回归模型
简单线性回归
y = β 0 + β 1 x 1 + . . . + β k x k + ζ y=\beta_0+\beta_1x_1+...+\beta_kx_k+\zeta y=β0+β1x1+...+βkxk+ζ
岭回归
损失函数为线性最小二乘函数,正则化采用L2范数。
最小目标函数:
∣
∣
y
−
X
w
∣
∣
2
2
+
α
∣
∣
w
∣
∣
2
2
||y-Xw||^2_2+\alpha||w||^2_2
∣∣y−Xw∣∣22+α∣∣w∣∣22
LASSO回归
套索回归(Least Absolute Shrinkage and Selection Operator)是一种既进行变量选择又进行正则化的方法,以提高其生成的统计模型的预测精度和可解释性。
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Rigde
from sklearn.linear_model import Lasso
import pandas as pd
X_train = pd.DataFrame()
T_trian = pd.DataFrame()
X_test = pd.DataFrame()
T_test = pd.DataFrame()
## 模型训练
model = LinearRegression() #简单线性回归
# ridge_model = Ridge(alpha=0.01) #岭回归
# Lasso_model = Lasso(alpha=0.001) #Lasso回归
model.fit(X_train,Y_train) #数据pd格式
a = model.intercept_#截距
b = model.coef_#回归系数
## 模型测试
Y_pred = model.predict(Linear_test_input)
## 模型评价
from sklearn import metrics
print("Explained Variance Score: ",
metrics.explained_variance_score(Y_test, Y_pred))
print('Mean Absolute Error:',
metrics.mean_absolute_error(Y_test, Y_pred))
print('Mean Squared Error:',
metrics.mean_squared_error(Y_test, Y_pred))
print('Root Mean Squared Error:',
np.sqrt(metrics.mean_squared_error(Y_test, Y_pred)))