【机器学习算法】逻辑回归

环境
  spark-1.6
  python3.5

一、逻辑回归
逻辑回归又叫logistic回归分析,是一种广义的线性回归分析模型。线性回归要求因变量必须是连续性的数据变量,逻辑回归要求因变量必须是分类变量,可以是二分类或者多分类(多分类都可以归结到二分类问题),逻辑回归的输出是0~1之间的概率。比如要分析年龄,性别,身高,饮食习惯对于体重的影响,如果体重是实际的重量,那么就要使用线性回归。如果将体重分类,分成了高,中,低三类,就要使用逻辑回归进行分类。
(1)逻辑回归公式:,  其中,e是自然对数,无限不循环小数, ,


逻辑回归公式又叫逻辑函数(Logistic function)或者S形函数(Sigmoid function)。逻辑回归公式的图像如下:

即当z=0时, =0.5,当z 时, 趋近于1,当 时, 趋近于0。

逻辑回归的输出 就是位于0~1之间的概率,假设现在判断病人是否生病,得到的z=2对应的 =0.7,我们可以归结为生病,如果z=-2对应的 =0.1我们就可以认为不生病。当z=0时, =0.5是决策的边界。

(2)假设 都大于零,那么当z=0时, =0.5。也就是 时, =0.5,当z=0时使用图像来表达两个自变量的关系为:



图中A、B、C、D、E点都表示有 两个维度的数据,现要使用逻辑回归对五个点分成两类:I和II类:

A点和B点都在直线上,对应的z值是0,那么逻辑回归结果 =0.5,将A,B两点划分为I类和II类都可以,假设我们规定当z>=0属于I类,z<0属于II类,那么A,B属于I类。

C点位于直线的上方,对应的z值要大于零,反映到S形函数上对应的 >0.5属于I类,同理,E也属于I类,D点属于II类。

图中E点的z值远大于C点的z值,反映到S形函数中,E点属于I类的概率比C点属于I类的概率要大的多。

训练逻辑回归模型,在这里就是训练出一条直线将两个类别的点隔开。如果维度是3,那么训练逻辑回归模型就是训练一个平面将两个类别的点隔开。如果维度大于3,那么训练逻辑回归模型就是训练一个超平面将两个类别的点隔开。


二、案例:音乐分类

1、概念

时域分析:

  对一个信号来说,信号强度随时间的变化的规律就是时域特性,例如一个信号的时域波形可以表达信号随着时间的变化。
频域分析:

  对一个信号来说,在对其进行分析时,分析信号和频率有关的部分,而不是和时间相关的部分,和时域相对。也就是信号是由哪些单一频率的的信号合成的就是频域特性。频域中有一个重要的规则是正弦波是频域中唯一存在的波。即正弦波是对频域的描述,因为时域中的任何波形都可用正弦波合成。

傅里叶变换:

  一般来说,时域的表示较为形象直观,频域分析则简练。傅里叶变换是贯穿时域和频域的方法之一,傅里叶变换就是将难以处理的时域信号转换成了易于分析的频域信号。

  傅里叶原理:任何连续测量的时序信号,都可以表示为不同频率的正弦波信号的无限叠加。

2、音乐分类的步骤:

(1)通过傅里叶变换将不同7类里面所有原始wav格式音乐文件转换为特征,并取前1000个特征,存入文件以便后续训练使用
(2)读入以上7类特征向量数据作为训练集
(3)使用sklearn包中LogisticRegression的fit方法计算出分类模型
(4)读入黑豹乐队歌曲”无地自容”并进行傅里叶变换同样取前1000维作为特征向量
(5)调用模型的predict方法对音乐进行分类,结果分为rock即摇滚类

三、案例:道路拥堵预测

猜你喜欢

转载自www.cnblogs.com/cac2020/p/10886349.html