逻辑回归多分类
算法介绍
利用sigmoid函数映射连续实数值域到0-1之间,实现二分类或多分类,用极大似然估计训练模型,基于梯度下降迭代求解参数。
使用场景
适用于二分类、多分类等场景,对数据特征要求不高。
优势介绍
- 训练速度快:逻辑回归是一种线性模型,具有较快的训练速度;
- 可解释性强:逻辑回归可解释性较强,可以清晰地显示每个特征对结果的作用;
- 能够处理高维度数据:逻辑回归能够很好地处理高维度数据。
- 劣势介绍
- 容易受到异常值的影响: 当存在很多异常值时,逻辑回归的表现会变得不稳定;
- 需要进行特征选择:逻辑回归对特征的选择比较敏感,需要花费时间和精力选择最佳的特征集合;
- 仅适用于线性可分问题:逻辑回归相当于在一个由超平面切分的空间中做判别,只适用于线性可分问题。
参数介绍
仅支持通过可视化方式,配置读取该组件参数,参数详情如下表所示:
页签 | 参数 | 参数名称 | 是否必选 | 参数描述 | 默认值 |
---|---|---|---|---|---|
数据源 | 表名 | inputTable | 是 | 数据表 | 无 |
默认参数 | 选择特征标签列 | labelColName | 是 | 输入表中选择标签列名类型。 | 无 |
模型参数 | 惩罚项 | penalty | 是 | 包括l1和l2。netton-cg,sag,lbfgs只支持l2。若选择l2正则化还是过拟合,可考虑l1正则化。若模型特征非常多,一些不重要的特征系数归零,让模型系数化,使用l1正则化。 | l2 |
模型参数 | 训练结束误差边界 | tol | 是 | 优化算法停止的条件。当迭代前后的函数差值小于等于tol时就停止。 | 0.0001 |
模型参数 | 正则化系数 | C | 是 | 值越小,正则化越强。 | 1 |
模型参数 | 是否估计截距 | fit_intercept | 是 | 选择逻辑回归模型中是否会有常数项b。 | TRUE |
调优参数 | 用于标示分类模型中各种类型的权重 | class_weight | 是 | balanced,类库根据训练样本量来计算权重。某种类型的样本量越多,则权重越低。也支持自定义。 | balanced |
调优参数 | 逻辑回归损失函数的优化方法 | solver | 是 | 包括liblinear、lbfgs、newton - cg、sag、saga。liblinear,使用坐标轴下降法来迭代优化损失函数。只支持OvR。lbfgs,拟牛顿法一种。利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数。newton-cg也是牛顿法一种。sag,随机平均梯度下降。每次迭代仅仅用一部分的样本来计算梯度,适合于样本数据多。 | liblinear |
调优参数 | 优化算法的迭代次数 | max_iter | 是 | 优化算法的迭代次数。 | 1000 |
调优参数 | 子采样 | multi_class | 是 | 包括ovr、multinomial、auto。multinomial即为MvM。若是二元逻辑回归,二者区别不大。 | auto |
- 推荐参数值
- penalty:正则化项选择,默认L2正则化,可以尝试使用L1正则化;
- C:正则化系数选择,默认为1。C值越小,则模型正则化程度越高;C值越大,则表示模型的正则化程度越低。可以通过网格搜索等方法来优化选择适合数据集的最佳C值;
- solver:可以选用不同的解决方案,例如Liblinear或SAGA,可以通过指令进行赋值;
- class_weight:不平衡样本需要调节类别权重,如class_weight='balanced',尝试让模型更侧重于预测罕见的事件;
- max_iter:最大迭代次数,默认是100。
- 调参建议
- penalty 正则化项,默认值为'l2'。通常来说,当数据集规模较大时,采用l2正则化同时结合较小的C(正则化强度)能够获得更好的性能;而当数据集规模较小或者特征比较稀疏时,采用l1正则化可以达到更好的结果。
- C正则化强度的倒数,默认为1.0。较小的C值表示更强的正则化,可以防止过拟合,但可能会导致欠拟合;而较大的C值则可能会导致过拟合。
- solver 求解算法,默认为‘liblinear’。 对于较小的数据集,建议使用‘liblinear’求解器;而对于较大的数据集,建议选择‘saga’求解器。
- max_iter 最大迭代次数,默认100。 在模型收敛之前达到最大迭代次数时,算法会自动停止。