阿里机器学习训练营 逻辑回归学习笔记
阿里机器学习训练营 逻辑回归学习笔记
赵海波此笔记为阿里云天池机器学习训练营笔记,学习地址:https://tianchi.aliyun.com/s/1fc36a7e103eb9948c974f638e83a83b
感谢教程及阿里云提供平台
一、学习知识点概要
1.什么是逻辑回归
逻辑回归(Logistic regression,简称LR)逻辑回归是一个分类模型,并且广泛应用于各个领域之中,其最为突出的两点就是其模型简单和模型的可解释性强。
逻辑回归模型的优劣势:
优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低;
缺点:容易欠拟合,分类精度可能不高
2.逻辑回归的应用场景
逻辑回归模型广泛用于各个领域,包括机器学习,大多数医学领域和社会科学。
例如:疾病的分析和预测(糖料病、冠心病等)、市场的营销预测(预测客户购买产品或中止订购的倾向等)、贷款拖欠可能、推荐算法、医疗诊断等等,可见逻辑回归应用的领域还是颇为广泛的。
二、学习内容
学习目标
- 了解 逻辑回归 的理论
- 掌握 逻辑回归 的 sklearn 函数调用使用并将其运用到鸢尾花数据集预测
常用函数
以下为sklearn.linear_model.LgisticRegression的官方文档,可以查看相关的参数
sklearn.linear_model.LogisticRegression — scikit-learn 1.0.1 documentation
创建回归模型对象
1 | class sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None) |
penalty: {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}, default=’l2’
- 正则化项的类别 默认为L2正则化项
dual:bool, default=False
- 双重或原始公式。双公式只适用于使用L2惩罚的线性求解器。当样本数> 特征数时,更推荐False。
tol: :浮点数, 默认: 1e-4
- 两次迭代误差停止阈值
**class_weight: ** dict or ‘balanced’, default=None
- 使用字典形式给出的权重参数,形式为{类标签:权重},不输入参数默认所有权重等于1
random_state : int, default = None
- 伪随机数生成器的种子,用于清洗数据,这个没有什么好说的
**solver: ** {‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, default=’lbfgs’
- 优化问题中使用的算法。默认为’lbfgs’。
max_iter: int, default=100
- 解器收敛的最大迭代次数 默认为100次
模型对象的参数
- coef_: 特征系数的数组,即w
- n_features_in : 拥有特征的数量
- intercept_ : 查看拟合曲线结局,即w0
拟合方法
1 | #进行拟合 |
实践
0.导入库函数
1 | ## 导入逻辑回归模型函数 |
**1.模型训练 **
1 | ## 调用逻辑回归模型 |
2.查看拟合结果
1 | # 可视化决策边界 |
3**.查看新数据的分类概率**
1 | x_fearures_new1 = np.array([[0, -1]]) |
输出结果:
1 | The New point 1 predict class: |
基本步骤
- 导入依赖 和数据集,必要的时候可以对数据集进行相应的分割
- 数据探索性分析
- 创建回归模型,设置相关参数
- 使用fit进行拟合
- 可以使用coef_或intercept_查看相关系数
- 将结果使用predict或者predict_proba,得到拟合后的结果
三、学习问题与解答
1.solver中如何区别使用什么样的回归算法
回答:官方文档中有给出相应的情况,以及该使用什么样的正则化系数
For small datasets, ‘liblinear’ is a good choice, whereas ‘sag’ and ‘saga’ are faster for large ones;
For multiclass problems, only ‘newton-cg’, ‘sag’, ‘saga’ and ‘lbfgs’ handle multinomial loss;
‘liblinear’ is limited to one-versus-rest schemes.
Warning:
The choice of the algorithm depends on the penalty chosen: Supported penalties by solver:
- ‘newton-cg’ - [‘l2’, ‘none’]
- ‘lbfgs’ - [‘l2’, ‘none’]
- ‘liblinear’ - [‘l1’, ‘l2’]
- ‘sag’ - [‘l2’, ‘none’]
- ‘saga’ - [‘elasticnet’, ‘l1’, ‘l2’, ‘none’]
2.混淆矩阵是什么
回答:混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。
混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目:第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第一行第二列的2表示有2个实际归属为第一类的实例被错误预测为第二类。
四、学习思考与总结
虽然逻辑回归能够用于分类,不过其本质还是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,然后使用sigmoid函数来预测。