sklearn中惩罚参数C和alpha对训练结果的影响

本文探讨了sklearn中不同模型如岭回归、lasso回归、随机森林等的正则化参数C和alpha的作用。C在支持向量机中控制错误项的惩罚力度,而alpha在岭回归和lasso回归中调节系数收缩程度,影响模型的复杂性和过拟合程度。对于其他如随机森林、KNN等模型,它们没有直接的C或alpha参数,但也有类似机制调整模型复杂性。

1.岭回归

Ridge 回归通过对系数的大小施加惩罚来解决 普通最小二乘法 的一些问题。 岭系数最小化的是带罚项的残差平方和,

其中, \alpha \geq 0 是控制系数收缩量的复杂性参数: \alpha 的值越大,收缩量越大,这样系数对共线性的鲁棒性也更强

较大的\alpha值则具有更强的正则化。 Alpha对应于其他线性模型中的C ^ -1,例如LogisticRegression或LinearSVC。

2.lasso回归

 Lasso 是估计稀疏系数的线性模型。 它在一些情况下是有用的,因为它倾向于使用具有较少参数值的情况,有效地减少给定解决方案所依赖变量的数量。 因此,Lasso 及其变体是压缩感知领域的基础。

在数学公式表达上,它由一个带有 \ell_1 先验的正则项的线性模型组成。 其最小化的目标函数是:

lasso estimate 解决了加上罚项 \alpha ||w||_1 的最小二乘法的最小化,其中, 

### 常用回归模型及调用方法详解 在 Scikit-learn 中,多种常用的回归模型提供了丰富的参数选项,用于调整模型行为性能。以下是一些常见回归模型及其详细说明: #### 线性回归 (Linear Regression) 线性回归是一种基本的回归技术,假设目标变量与输入特征之间存在线性关系。 ```python from sklearn.linear_model import LinearRegression # 初始化模型 model = LinearRegression() # 拟合数据 model.fit(X_train, y_train) # 预测新数据 y_pred = model.predict(X_test) ``` **参数说明:** - `fit_intercept`: 是否计算截距,默认为 `True`。 - `normalize`: 是否对特征进行归一化处理(在 `fit()` 时),默认为 `False`。注意,在较新的版本中该参数已被弃用[^1]。 #### 岭回归 (Ridge Regression) 岭回归是在线性回归基础上添加 L2 正则化项,以防止过拟合并提升泛化能力。 ```python from sklearn.linear_model import Ridge # 初始化模型并设置 alpha 参数 ridge_model = Ridge(alpha=1.0) # 拟合数据 ridge_model.fit(X_train, y_train) # 预测 y_ridge_pred = ridge_model.predict(X_test) ``` **参数说明:** - `alpha`: 正则化强度,值越大表示正则化越强,默认为 `1.0`。 - `solver`: 解决优化问题的方法,可选 `'auto'`, `'svd'`, `'cholesky'`, `'lsqr'`, `'sparse_cg'`, `'sag'`, `'saga'` 等,默认为 `'auto'` [^1]。 #### Lasso 回归 (Lasso Regression) Lasso 回归使用 L1 正则化,可以自动选择重要特征并压缩不重要的系数。 ```python from sklearn.linear_model import Lasso # 初始化并设置 alpha 参数 lasso_model = Lasso(alpha=0.1) # 拟合训练集 lasso_model.fit(X_train, y_train) # 进行预测 y_lasso_pred = lasso_model.predict(X_test) ``` **参数说明:** - `alpha`: 正则化强度,控制稀疏性,默认为 `1.0`。 - `max_iter`: 最大迭代次数,默认为 `1000`。 - `selection`: 特征选择策略,可选 `'cyclic'` 或 `'random'`,默认为 `'cyclic'` [^1]。 #### 支持向量回归 (Support Vector Regression, SVR) SVR 是基于支持向量机的回归方法,适用于非线性问题,并通过核技巧来建模复杂关系。 ```python from sklearn.svm import SVR # 创建 SVR 实例,这里以 RBF 核为例 svr_model = SVR(kernel='rbf', C=1e3, gamma=0.1) # 训练模型 svr_model.fit(X_train, y_train) # 预测 y_svr_pred = svr_model.predict(X_test) ``` **参数说明:** - `kernel`: 核函数类型,包括 `'linear'`, `'poly'`, `'rbf'`, `'sigmoid'` 等,默认为 `'rbf'`。 - `C`: 错误项惩罚系数,默认为 `1.0`。 - `gamma`: 核函数系数,对于 `'rbf'`, `'poly'`, `'sigmoid'` 有效,默认为 `'scale'`。 - `epsilon`: 不敏感损失函数的宽度,默认为 `0.1` 。 #### 决策树回归 (Decision Tree Regressor) 决策树通过递归划分特征空间,能够捕捉非线性关系以及特征间的交互作用。 ```python from sklearn.tree import DecisionTreeRegressor # 构建决策树回归器 tree_regressor = DecisionTreeRegressor(max_depth=5) # 训练模型 tree_regressor.fit(X_train, y_train) # 预测测试集 y_tree_pred = tree_regressor.predict(X_test) ``` **参数说明:** - `max_depth`: 树的最大深度,默认为 `None`,即不限制深度。 - `min_samples_split`: 分裂内部节点所需的最小样本数,默认为 `2`。 - `min_samples_leaf`: 叶子节点所需的最小样本数,默认为 `1` 。 #### 随机森林回归 (Random Forest Regressor) 随机森林是一种集成学习方法,通过构建多个决策树并对结果取平均,从而提高预测准确性鲁棒性。 ```python from sklearn.ensemble import RandomForestRegressor # 创建随机森林回归实例 forest_regressor = RandomForestRegressor(n_estimators=100, random_state=42) # 拟合数据 forest_regressor.fit(X_train, y_train) # 预测 y_forest_pred = forest_regressor.predict(X_test) ``` **参数说明:** - `n_estimators`: 森林中树的数量,默认为 `100`。 - `max_depth`: 每棵树的最大深度,默认为 `None`。 - `min_samples_split`: 分裂内部节点所需的最小样本数,默认为 `2`。 - `random_state`: 控制随机性的种子值,默认为 `None` [^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值