逻辑回归(Logistic)
来源:互联网 发布:qt多线程共享数据 编辑:程序博客网 时间:2024/06/18 14:31
算法介绍
Logistic回归是一种广义线性回归(generalizedlinear model),因此与多重线性回归分析有很多相同之处。它们的模型形式基本上相同,都具有 w`x+b,其中w和b是待求参数,其区别在于他们的因变量不同,多重线性回归直接将w`x+b作为因变量,即y =w`x+b,而logistic回归则通过函数L将w`x+b对应一个隐状态p,p =L(w`x+b),然后根据p 与1-p的大小决定因变量的值。如果L是logistic函数,就是logistic回归,如果L是多项式函数就是多项式回归。本系统的L函数采用的是梯度上升法,梯度上升法的模型图如下:
它的公式如下:
算法的关键点就聚焦在 这个参数的设置上。
通过优化,本系统采用的是随机梯度上升算法:
流程图如下:
基本步骤说明:
1、 每次迭代都需要调整, 修改的目的是环节模型的高频波动,本系统的计算方法是: ,使得每次迭代的 值会变小,但是不会缩小为0;
2、 通过随机选取样本来更新回归参数,这种方式避免了顺序数据的周期性波动。
3、 Sigmod函数就是一个类阶跃函数 ,作用是把数据进行归一化
Python代码实现如下:
def stocGradAscent1(dataMatrix, classLabels, numIter=150): m,n = shape(dataMatrix) weights = ones(n) #初始化权重值 index = 1; for j in range(numIter): dataIndex = range(m) for i in range(m):#aplha值每次随机调整大小通过i和j alpha = 4/(1.0+j+i)+0.0001 #随机选择数据 randIndex = int(random.uniform(0,len(dataIndex)))#依据数据向量和权重内乘预测标签值 h = sigmoid(sum(dataMatrix[randIndex]*weights))#依据预测标签值和现有标签值计算delta值 delta = classLabels[randIndex] – h#更新权重 weights = weights + alpha * delta * dataMatrix[randIndex] del(dataIndex[randIndex])return weights
优点
1、计算代价不高,易于理解和实现
缺点
1、容易产生欠和过拟合。
2、分类精度不高。
0 0
- logistic regression 逻辑回归
- 逻辑回归(Logistic Regression)
- 逻辑回归(logistic regression)
- 逻辑回归logistic regression
- 逻辑回归(logistic regression)
- 逻辑回归(logistic regression)
- 逻辑回归(Logistic Regression)
- 逻辑回归(logistic regression)
- 逻辑回归Logistic Regression
- 逻辑(logistic)回归
- 逻辑回归(Logistic Regression)
- 逻辑回归(Logistic)
- Logistic Regression-逻辑回归
- Logistic逻辑回归
- 逻辑回归 logistic regression
- 逻辑回归(Logistic)
- Logistic逻辑回归总结
- 逻辑回归(Logistic Regression)
- CompletionService + Callable实现线程动态返回结果
- PL/SQL对列的操作
- Java的clone方法
- win 10安装出现netframeword3.5出现0x800F0906,0x800F081F,0x800F0907
- 【CodeForces】716A - Crazy Computer(水)
- 逻辑回归(Logistic)
- java 图片插入另一张图片
- 关于“静态模态框没有显示出来”的解决办法
- 树链剖分模板(spoj 375)
- MySQL 储存过程-原理、语法、函数详细说明
- VS2013 build错误:error C2440: '=' : cannot convert from 'const char [9]' to 'LPCWSTR'
- 欢迎使用CSDN-markdown编辑器
- linux 下 vi使用详解
- 追着嘟嘟学c#系列入门第十三篇-----c#的一维数组【蓝鸥出品】