Press "Enter" to skip to content

逻辑回归

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

逻辑回归是用来解决二分类问题的

 

什幺是分类问题

 

这是多种不同的动物以及它们不同的特征

 

每种动物属于不同的种类

 

有一条新的数据 知道它的特征 这些特征都属于特征列 预测这个是哪个种类的动物

 

种类那列是属于目标列

 

这种判断每条数据所属类别的问题属于分类问题

 

二分类问题

 

当分类问题的目标列只有两种情况时属于二分类问题

 

比如把动物类别修改为是否为哺乳类

 

回归和分类的区别

 

不要被逻辑回归的回归二字所欺骗

 

逻辑回归其实是解决的分类问题

 

回归模型的输出是连续的

 

分类模型的输出是离散的

 

举例说明:

 

左图:

 

x轴表示每小时卖出咖啡的数量

 

y轴代表通过卖咖啡所赚的钱

 

y值是连续的值

 

x值都对应一个y值

 

当预测值y值是一个连续的值 称这类问题为回归问题

 

右图:

 

红色部分表示除去成本之后依然不能盈利

 

蓝色部分表示除去成本之后开始盈利

 

这个图表示是否盈利 两种情况

 

所以是一个二分类问题

 

逻辑回归是什幺

 

逻辑回归=线性回归+sigmoid函数

 

什幺是线性回归

 

用一条直线简单的拟合下自变量和因变量之间的关系

 

怎幺把回归变成分类呢

 

比如当这家咖啡店y小于130的时候是亏钱的

 

大于130是盈利的

 

映射到x轴 大于14表示盈利 小于14表示亏钱

 

通过这样一个划分 就把回归问题变成了一个分类问题

 

什幺是sigmoid函数呢

 

解决的是怎幺把回归问题转换成分类问题的转换函数

 

当输入值趋向于无穷小的时候函数值越逼近于0

 

当输入值趋向于无穷大的时候函数值越逼近于1

 

当输入值是0的时候 函数值为0.5

 

 

线性回归的预测结果y值可能是从负无穷到正无穷的任意的数

 

将结果作为sigmoid函数的输入

 

当y值很小的时候对应的sigmoid函数的值是逼近0的值

 

当y为0的时候作为sigmoid的输入 对应的sigmoid函数值是0.5

 

当y值非常大的时候 对应的sigmoid函数输出值是逼近1的数

 

经过sigmoid函数将回归函数得出的结果变成从0到1之间的某一个数

 

当sigmoid函数小于0.5的时候 会预测为0

 

当sigmoid函数大于0.5的是时候 会预测为1

 

这样就得到了一个二分类的结果

 

公式

 

线性回归: z=w*x+b

 

sigmoid函数:

 

把线性回归函数的输出z作为sigmoid函数的z得到了逻辑回归

 

怎幺求解逻辑回归呢

 

通过损失函数

 

求预测值跟实际值相似程度的一个函数

 

损失函数越小,模型越好

 

代码

 

引入依赖包

 

官网样例数据

 

这是libsvm格式的

 

第一列是label列

 

这是一个是二分类问题 目标列只有0/1

 

后面是特征列

 

每一个值的:前面是第几个特征

 

:后面表示这个特征的值是多少

 

1、先引入数据

 

2、再对数据进行训练集和测试集的划分

 

训练集和测试集都是已知的数据

 

测试集虽然是已知的 拿它和预测结果做对比来评估模型的好坏

 

3、数据划分完之后 进行训练数据

 

4、训练完之后把特征和预测处理的值打印出来了

 

5、打印算法模型的评价结果

 

运行结果

 

SparseVector(4,{0:4.8,1:3.0,2:1.4,3:0.1},0.0)

 

这个数据的意思 这4个特征预测出来的结果是0

 

逻辑回归很重要

 

这是一个神经网络的图 其中的每一个节点都是一个逻辑回归

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。