Logistics Rrgression(Logistics回归)
来源:互联网 发布:韩顺平java全套视频 编辑:程序博客网 时间:2024/05/19 16:27
Logistics Rrgression(Logistics回归)
前导知识
Sigmoid函数
当
特性:
![屏幕快照 2017-08-20 09.04.22](/Users/liwei/Desktop/屏幕快照 2017-08-20 09.04.22.png)
![屏幕快照 2017-08-20 09.07.27](/Users/liwei/Desktop/屏幕快照 2017-08-20 09.07.27.png)
最大似然估计(Maximum Likelihood Estimate,MLE)
它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是:一个随机试验如有若干个可能的结果A,B,C,…。若在仅仅作一次试验中,结果A出现,则一般认为试验条件对A出现有利,也即A出现的概率很大。一般地,事件A发生的概率与参数
梯度上升法(Gradient Ascent)公式推导
记Sigmoid函数的输入为
令
由于Sigmoid函数的性质,我们对分类做如下处理
于是我们假设:
所以
根据极大似然估计,假设样本与样本之间独立,整个样本生成的概率即为所有样本生成概率的乘积,
为方便计算,对总概率
通过梯度上升法求出
所以最终梯度上升求最佳回归系数的表达式为:
重复计算此表达式,直到该结果收敛(既与训练集中的数据相差小于某个值)或者重复到一定次数时。
随机梯度上升(Stochastic Gradient Ascent)
随机梯度上升法是为了解决大数据需要计算特别久的情况。采用每次随机选择一个样本来更新回归数据,使回归系数更快的收敛。
代码解释
# -*- coding: UTF-8 -*-from numpy import *def loadDataSet(): dataMat = []; labelMat = [] fr = open('testSet.txt') for line in fr.readlines(): lineArr = line.strip().split() dataMat.append([1.0, float(lineArr[0]),float(lineArr[1])]) labelMat.append(int(lineArr[2])) return dataMat,labelMatdef sigmoid(inX): # sigmoid函数 return 1.0/(1+exp(-inX))def gradAscent(dataMatIn, classLabels): # 梯度上升 dataMatrix = mat(dataMatIn) labelMat = mat(classLabels).transpose() # transpose函数为转置函数 m,n = shape(dataMatrix) alpha = 0.001 # 步长 maxCycles = 500 # 最多循环500次 weights = ones((n,1)) # 将回归系数最开始都初始为1 for k in range(maxCycles): ''' 以下均为矩阵计算,而非数组计算 其中weight为回归系数labelMat为y,h为h(x),dataMartix为x ''' h = sigmoid(dataMatrix * weights) error = (labelMat - h) weights = weights + alpha * dataMatrix.transpose() * error return weights
阅读全文
0 0
- Logistics Rrgression(Logistics回归)
- Logistics回归
- logistics回归测试
- Logistics回归模型
- logistics回归和softmax
- logistics回归分类图片
- Logistics回归模型
- python中实现logistics回归
- 零售户logistics回归分类
- 零售户logistics回归分类
- TensorFlow学习笔记--logistics回归
- logistics回归多样本算法
- 关于Logistics回归用于分类的解释
- SparkML之分类(二)logistics回归
- 监督学习-logistics回归算法模板
- 《机器学习实战》Logistics回归学习心得
- 机器学习中的Logistics逻辑回归分析
- Logistics推导
- ajax jsonp的跨域请求
- 牛客网笔试输入的问题(Java)
- 滴滴出行2018内推编程题
- Sublime Text 3 import Anaconda 无法正常补全模块名解决办法
- 面试题 31:连续子数组的最大和(滴滴的“连续最大和”)
- Logistics Rrgression(Logistics回归)
- JAVA 反射机制(Java Reflection)总结(二)
- hdu 5976 Detachment(乘法逆元)(附测试用例)
- 关于The user specified as a definer ('root'@'%') does not exist 解决方法
- block与inline 元素
- hdu 1124 圆桌会议
- MFC中有三种文件操作的类 CFile ,CArchive,CDocument
- 【Angular2】插值表达式如何嵌套显示
- 基础算法(二分,去重,排列)