关闭

【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

标签: 机器学习python逻辑回归
20214人阅读 评论(5) 收藏 举报
分类:

(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.背景知识

      在刚刚结束的天猫大数据s1比赛中,逻辑回归是大家都普遍使用且效果不错的一种算法。
 

(1)回归     

     
    先来说说什么是回归,比如说我们有两类数据,各有50十个点组成,当我门把这些点画出来,会有一条线区分这两组数据,我们拟合出这个曲线(因为很有可能是非线性),就是回归。我们通过大量的数据找出这条线,并拟合出这条线的表达式,再有数据,我们就以这条线为区分来实现分类。下图是我画的一个数据集的两组数据,中间有一条区分两组数据的线。


   (2)sigmoid函数

         我们看到了上图中两组数据的划分,那么我们怎么来找出两组数据的边界表达式呢,这里用到sigmoid函数。它的形状大致是(如下),公式

把数据集的特征值设为x1,x2,x3......。我们要求出它们的回归系数。只要设z=w1*x1+w2*x2.....用sigmoid函数出理是防止数据从0到1发生跳变,因为目标函数是0到1,我们要把带入x1,x2...多项式数据控制在这之间。

 (3)梯度上升算法

   梯度上升是指找到函数增长的方向。公式。在具体实现的过程中,不停地迭代运算直到w的值几乎不再变化为止。

2.代码

   数据集在工程中有。

导入数据集,并定义sigmoid函数
def loadDataSet():
    dataMat = []; labelMat = []
    fr = open('/Users/hakuri/Desktop/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,labelMat

def sigmoid(inX):
    return 1.0/(1+exp(-inX))


返回回归系数,对应于每个特征值,for循环实现了递归梯度上升算法。
def gradAscent(dataMatIn, classLabels):
    dataMatrix = mat(dataMatIn)             #convert to NumPy matrix
    labelMat = mat(classLabels).transpose() #convert to NumPy matrix
    
    m,n = shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500
    weights = ones((n,1))
    
    for k in range(maxCycles):              #heavy on matrix operations
        h = sigmoid(dataMatrix*weights)     #matrix mult
        error = (labelMat - h)              #vector subtraction
        weights = weights + alpha * dataMatrix.transpose()* error #matrix mult
    return weights


结果,返回了特征值的回归系数。我们的数据集有两个特征值分别是x1,x2。我们又增设了了x0变量。得到的结果

[[ 4.12414349]

 [ 0.48007329]

 [-0.6168482 ]]

我们得出x1和x2的关系(设x0=1),0=4.12414349+0.48007329*x1-0.6168482*x2


画出x1与x2的关系图



3.代码

 


作者微信公众号:凡人机器学习

长期分享机器学习实战相关信息,感谢关注!


6
1
查看评论

Python实现逻辑回归(Logistic Regression in Python)

本文基于yhat上Logistic Regression in Python,作了中文翻译,并相应补充了一些内容。本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做逻辑回归的训练和预测的读者快速上手。 逻辑回归是一项可用于预测二分类结果(binary outco...
  • zj360202
  • zj360202
  • 2017-12-01 16:29
  • 1147

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)zouxy09@qq.comhttp://blog.csdn.net/zouxy09        机器学习算法与Python实践这个系列主要是参考《机器学习实战...
  • zouxy09
  • zouxy09
  • 2014-03-02 23:49
  • 203659

基于Python+Theano实现的逻辑回归LR(附详细注释)

  • 2015-10-10 20:04
  • 19KB
  • 下载

逻辑回归----Python实现

逻辑回归是个二分类问题,具体原理网上有很多,这里只列出Python实现过程。 原理参考:逻辑回归 参考《机器学习实战》,对于逻辑回归参数寻优时,采用梯度下降法和随机梯度下降两种方法实现。 Python定义梯度下降函数: # 梯度下降法 def gardDescent(dataMatI...
  • sinat_34022298
  • sinat_34022298
  • 2017-08-08 20:42
  • 1103

逻辑回归原理(python代码实现)

Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数。 优点:计算代价不高,易于理解和实现。 缺点:容易欠拟合,分类精度可能不高。 使用数据类型:数值型和标称型数据。
  • csqazwsxedc
  • csqazwsxedc
  • 2017-04-08 20:43
  • 2990

用Python开始机器学习(7:逻辑回归分类)

在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到过回归算法。逻辑回归算法本质还是回归,只是其引入了逻辑函数来帮助其分类。实践发现,逻辑回归在文本分类领域表现的也很优秀。现在让我们来一探究竟。1、逻辑函数假设数据集有n个独立的特征,x1到xn为样本的n个特征。常规的回...
  • lsldd
  • lsldd
  • 2014-11-27 22:12
  • 39792

Python机器学习之Logistic回归

大数据时代,数据犹如一座巨大的金矿,等待我们去发掘。而机器学习和数据挖掘的相关技术,无疑就是你挖矿探宝的必备利器!工欲善其事,必先利其器。很多初涉该领域的人,最先困惑的一个问题就是,我该选择哪种“工具”来进行数据挖掘和机器学习。作为一个范例,今天将演示在Python 中利用Scikit-Learn所...
  • baimafujinji
  • baimafujinji
  • 2016-04-14 17:11
  • 9129

逻辑回归python实现实例

这个例子是《机器学习实战》()逻辑回归的一个实例:从疝气病症预测病马的死亡率。 疝病是描述马胃肠痛的术语。该数据集中包含了医院检查马疝病的一些指标,我们的目标是通过这些指标(特征),来预测马是否会死亡。 数据集包括229个训练样本和67各测试样本,特征数量为22。数据集中包含缺失值,采取的措施是...
  • helen1313
  • helen1313
  • 2016-10-28 10:18
  • 3055

Python逻辑回归

介绍 回归分析是确定预测属性(数值型)与其他变量间相互依赖的定量关系最常用的统计学方法。 逻辑回归是概率型非线性回归,有2分类和多分类。2分类就是y的取值为0,1 即是 或 否 。
  • xuyaoqiaoyaoge
  • xuyaoqiaoyaoge
  • 2016-11-20 21:43
  • 1933

逻辑回归详解及Python实现

转载自: 一、逻辑回归(LogisticRegression)       Logistic regression (逻辑回归)是当前业界比较常用的机器学习方法,用于估计某种事物的可能性。之前在经典之作《数学之美》中也看到了它用于...
  • u013524655
  • u013524655
  • 2014-11-08 11:04
  • 1420
    我的微信公众号

    作者公众号:凡人机器学习

    凡人机器学习

    机器学习微信交流群
    为了方便大家学习与交流,凡人云近日已开通机器学习社群! 分享“凡人机器学习”公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群 在这里你可以得到: 1.各种学术讨论 2.最新的资料分享 3.不定期的征文以及联谊活动! 小助手微信号:meiwznn
    作者新书《机器学习实践应用》

    主要讲述算法和业务的结合,适合初学者

    机器学习实践应用

    京东地址

    个人资料
    • 访问:841095次
    • 积分:11241
    • 等级:
    • 排名:第1686名
    • 原创:236篇
    • 转载:40篇
    • 译文:0篇
    • 评论:460条
    博客专栏
    统计