Python scikit-learn,欠拟合、过拟合,正则化 (特征选择),岭回归(带正则化的线性回归,解决过拟合)

欠拟合(underfitting)---训练误差大,测试误差也大---模型过于简单(特征太少)

过拟合(overfitting)---训练误差小,但测试误差大---模型过于复杂(特征太多,使用了复杂的非线性关系;训练样本有误、过少)


过拟合的解决办法:
1、增加训练样本数
2、进行特征选择、特征降维,消除嘈杂特征,消除关联性大的特征(很难做)
3、交叉验证(让所有数据都有过训练)
4、正则化(也属于特征选择)


L2正则化的思想(减少某些特征的影响(权重

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回归是一种常用的线性回归正则化方法,通过引入L2正则化项来控制模型复杂度,避免过回归的主要参数是正则化参数alpha,alpha越大,正则化效果越强,模型的复杂度越低。 在scikit-learn中,可以使用Ridge类来进行回归,其中alpha通过参数alpha来进行调整。下面是一个简单的回归正则化参数调整的代码示例: ```python from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import GridSearchCV import numpy as np # 生成数据集 np.random.seed(0) n_samples, n_features = 100, 10 X = np.random.randn(n_samples, n_features) y = np.random.randn(n_samples) # 定义回归模型 ridge = Ridge() # 定义调参范围 param_grid = {'alpha': [0.001, 0.01, 0.1, 1, 10, 100]} # 定义GridSearchCV对象 grid_search = GridSearchCV(ridge, param_grid, cv=5, scoring='neg_mean_squared_error') # 模型训练 grid_search.fit(X, y) # 输出最佳参数 print("Best parameter: ", grid_search.best_params_) # 输出最佳模型得分 print("Best score: ", -grid_search.best_score_) ``` 在上面的代码中,我们首先生成了一个随机数据集,然后定义了一个Ridge模型和参数调整范围。接着,我们通过GridSearchCV对象进行模型训练和参数调整,并输出最佳参数和最佳模型得分。在这个例子中,我们使用了5折交叉验证来评估模型效果,使用均方误差(MSE)作为评价指标。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值