Python - 回归(线性回归、RFE、LASSO 和 岭回归+K折交叉验证)
发布时间:2018-04-25 21:41,
浏览次数:746
, 标签:
Python
RFE
LASSO
1. 普通线性回归:通过输出模型的真实值和预测值的平均平方差尽可能小(即最小二乘估计法),但容易陷入过度拟合(即低偏差),后续回归方法会有带正则化法来缩减数据。
2. 普通线性回归+RFE:RFE是recursive feature
elimination回归特征消除,让回归特征消除过程中只保留no_features个最重要的特征,可以避免过度拟合,但RFE会舍弃一些变量,原没有下面几个方法给变量赋权重来的好。
3. L2缩减回归 - 岭回归:正则化那块采用L2范式,alpha越大,缩减幅度越大。岭回归比LASSO的预测能力好点,但LASSO能完成动态选择。
4. L1缩减回归 - LASSO:Least absolute shrinkage and selection
operator最小绝对值缩减和选择操作,LASSO更偏向于稀疏的结果,如果一个结果大多数系数被压缩为0,那么它被称为系数的,LASSO大多数的系数都变成0了,对相关联的变量,只选择保留一个。
RFE:
# -*- coding: utf-8 -*- """ Created on Thu Apr 05 19:52:39 2018 @author: Alvin
AI """ from sklearn.datasets import load_boston from sklearn.cross_validationi
import train_test_split from sklearn.linear_model import LinearRegression from
sklearn.metrics import mean_squared_error import matplotlib.pyplot as plt from
sklearn.preprocessing import PolynomialFeatures from itertools import
combinations from sklearn.feature_selection import RFE #载入数据 def get_data():
data = load_boston() x = data['data'] y = data['target'] return x,y #建立模型
#让回归特征消除(RFE-recursive feature elimination)只保留no_features个最重要的特征 def
build_model(x,y,no_features): model =
LinearRegression(normalize=True,fit_intercept=True) rfe_model =
RFE(estimator=model,n_features_to_select=no_features) rfe_model.fit(x,y) return
rfe_model #查看模型 def view_model(model): print "\nmodel coefficients" print
"===