1. 机器学习分类
1.1 监督学习
1.1.1 回归(线性回归)
1.1.1.1 描述
线性回归分析(Linear Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法
线性回归要做的是就是找到一个数学公式能相对较完美地把所有自变量组合(加减乘除)起来,得到的结果和目标接近
线性回归模型公式:
多元线性关系:一个通过特征的的线性组合来进行预测的函数
其中,h(x)是因变量,x1、x2、…、xn是自变量,o1、o2、…、bn是回归系数。回归系数表示自变量对因变量的影响程度,可以通过最小二乘法来求解。
1.1.1.2 损失:评估预测结果与真实值的偏差程度
看到一元线性关系,假设红圈所示为预测样本的真实值,箭头所示指向的直线上的一点为预测值,此时真实值与预测值存在偏差,称为损失。
总损失计算公式:
计算完总损失后,可进一步求出总损失的平均值。求平均值的意义在与:当样本数不同的两个训练集进行对比时,总损失无法准确评估(样本数有差异),此时需要对总损失求平均值,该方法又称为最小二乘法。
1.1.2 分类
当输出变量是分类变量时,则使用分类。
2. 逻辑回归详解
2.1 逻辑回归介绍
逻辑回归也称作logistic回归分析, 是一种广义的线性回归分析模型,属于机器学习中的监督学习。其推导的过程与计算方式类似回归的过程。但是实际上主要用于解决二分类问题(也可以解决多分类问题)。通过给定n组数据(训练集)来训练模型,并在训练结束后对给定的一组或者多组数据(测试集)进行分类。
2.1 逻辑回归优缺点
- 优点
实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低
- 缺点
容易欠拟合,分类精度可能不高
2.2 逻辑回归处理的数据
逻辑回归是用来进行分类的。例如,我们给出一个人的身高和体重, 然后判断这个人是属于胖还是瘦。对于这类问题,身高和体重就是两个特征,胖和瘦就是分类。我们可以先测量n个人的身高和体重以及对应的分类胖和瘦。把胖和瘦分别用0和1来表示,把这n组数据输入模型进行训练。训练后再把待分类的人的身高和体重输入模型中,看这个人是属于胖还是瘦。
从本质上来说,逻辑回归训练后的模型是平面的一条直线(p=2)或者是平面(p=3),超平面(p>3)。并且这条线或平面把空间中的散点分成两半,属于同一类的数据大多数分布在曲线或者平面的同一侧。如下图
2.3 算法原理
首先,我们处理二分类问题。由于分成两类,我们便让其中一类标签为0,另一类为1。我们需要一个函数,对于输入的每一组数据,都能映射成0~1之间的数。并且如果函数值大于0.5,就判定属于1,否则属于0。而且函数中需要待定参数,通过利用样本训练,使得这个参数能够对训练集中的数据有很准确的预测。
逻辑回归: 线性回归 + sigmoid函数
线性回归: z = w * x + b
sigmoid函数:
-
Logistic(逻辑回归)表达式
其中,x是数据的特征向量(x 0 , x 1 ,…xn ), w是参数向量(需要数据拟合), b是偏置。文章来源:https://www.toymoban.com/news/detail-411926.html
-
Logistic函数图像
上述计算得到了在给定数据点后,通过Logistic函数计算得到的预测值,显然一开始预测值与真实值是有偏差的,通过损失函数计算偏差,优化算法缩小偏差,最终得到模型适合的参数。 -
逻辑回归损失函数
损失函数是体现预测值和实际值相似程度的函数
损失函数越小,模型越好
3. sklearn逻辑回归(LogisticRegression)详解
3.1 LogisticRegression模型
3.1.1 重要参数
- penalty:指定正则化的参数可选为"l1", “l2” 默认为“l2”. 注意:l1正则化会将部分参数压缩到0,而l2正则化不会让参数取到0只会无线接近
- C:大于0的浮点数。C越小对损失函数的惩罚越重
-
multi_class : 告知模型要处理的分类问题是二分类还是多分类。默认为“ovr”(二分类)
“multinational” : 表示处理多分类问题,在solver="liblinear"师不可用
“auto” : 表示让模型自动判断分类类型 - solver:指定求解方式
solver参数 | liblinear | lbfgs | newton-cg | sag | saga |
---|---|---|---|---|---|
使用原理 | 梯度下降法 | 拟牛顿法的一种利用损失函数二阶导数矩阵来迭代优化损失函数 | 牛顿法的一种利用损失函数二阶导数矩阵来迭代优化损失函数 | 随机梯度下降 | 随机梯度下降的优化 |
支持的惩罚项 | L1,L2 | L2 | L2g | L2 | L1,L2 |
multinormal | 否 | 是 | 是 | 是 | 是 |
3.1.1 模型训练(LogisticRegression().fit())
该函数参数:训练集X,标签Y,正则化参数C,优化算法solver等
LogisticRegression().fit()用于训练模型,通过输入的训练数据,学习模型参数,使得模型能够对新的数据进行分类预测。该函数会根据训练数据的特征和标签,通过最小化损失函数的方法,调整模型参数,使得预测和实际结果尽可能接近。文章来源地址https://www.toymoban.com/news/detail-411926.html
3.1.2 模型训练后的属性和方法
- 方法:
clf.predict(X) : 预测X的类别
clf.predict_proba(X) : 预测X属于各类的概率
clf.decision_function(X) :输出wx+b
clf.score(X,y) :返回准确率,即模型预测值与y不同个数的占比
- 属性
clf.coef_ :模型系数
clf.intrcept_ : 模型截距
clf.classes_ :类别编号
4. 实例详解
到了这里,关于机器学习之逻辑回归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!