1、逻辑函数

假设数据集有n个独立的特征,x1到xn为样本的n个特征。常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小:

而我们希望这样的f(x)能够具有很好的逻辑判断性质,最好是能够直接表达具有特征x的样本被分到某类的概率。比如f(x)>0.5的时候能够表示x被分为正类,f(x)<0.5表示分为反类。而且我们希望f(x)总在[0, 1]之间。有这样的函数吗?

sigmoid函数就出现了。这个函数的定义如下:

先直观的了解一下,sigmoid函数的图像如下所示(来自http://computing.dcu.ie/~humphrys/Notes/Neural/sigmoid.html):

sigmoid函数具有我们需要的一切优美特性,其定义域在全体实数,值域在[0, 1]之间,并且在0点值为0.5。

那么,如何将f(x)转变为sigmoid函数呢?令p(x)=1为具有特征x的样本被分到类别1的概率,则p(x)/[1-p(x)]被定义为让步比(odds ratio)。引入对数:

上式很容易就能把p(x)解出来得到下式:

现在,我们得到了需要的sigmoid函数。接下来只需要和往常的线性回归一样,拟合出该式中n个参数c即可。

2、测试数据

测试数据我们仍然选择康奈尔大学网站的2M影评数据集。

在这个数据集上我们已经测试过KNN分类算法、朴素贝叶斯分类算法。现在我们看看罗辑回归分类算法在处理此类情感分类问题效果如何。

同样的,我们直接读入保存好的movie_data.npy和movie_target.npy以节省时间。

3、代码与分析

逻辑回归模型,自己的理解逻辑就相当于是非,那就只有0,1的情况。这个是我在一个大神那看到的,https://blog.csdn.net/zouxy09/article/details/20319673

逻辑回归模型用于分类,可以知道哪几个影响因素占主导地位,从而可以预测某事件。

步骤:1、读取数据 。

2、将特征(影响因素)和结果变成矩阵的形式。

3、导入模块sklearn.linear_model 下RandomizedLogisticRegression,进行实例化。

4、通过fit()进行训练模型。

5、通过get_support()筛选有效特征,也是降维的过程。

6、简化模型,训练模型。

#逻辑回归
import pandas as pdafname = 'F://anacondadaima//shujuchuli//suanfa//luqu.csv'
dataf = pda.read_csv(fname)
x = dataf.iloc[:,1:4].as_matrix() #iloc[]切片,转为数组
y = dataf.iloc[:,0:1].as_matrix()from sklearn.linear_model import LogisticRegression as LR     #导入回归模型
from sklearn.linear_model import RandomizedLogisticRegression as RLR #导入随机模型r1 = RLR()      #建立随机逻辑模型(用于筛选)
r1.fit(x,y)       #将x,y导入模型
r1.get_support(indices=True)  #获取有效特征(特征筛选)降维
#print(dataf.columns[r1.get_support(indices=True)])
t = dataf[dataf.columns[r1.get_support(indices=True)]].as_matrix()r2 = LR()    #建立逻辑模型
r2.fit(t,y)
print('训练结束')
print('模型正确率为:'+str(r2.score(x,y)))

分类算法学习(三)——逻辑回归算法的原理及简单实现相关推荐

  1. 机器学习基础算法四:逻辑回归算法实验

    逻辑回归算法实验 一.逻辑回归介绍 逻辑回归是一种分类模型 z=WTX=w0+w1x1+w2x2+......+wnxnz =W^{T}X=w^{0}+w^{1}x^{1}+w^{2}x^{2}+.. ...

  2. 收藏!!如何 Get 机器学习必备的算法技能? | 逻辑回归

    本文是吴恩达老师的机器学习课程[1]的笔记和代码复现部分(逻辑回归). 作者:黄海广[2] 备注:笔记和作业(含数据.原始作业文件).视频都在github[3]中下载. 我将陆续将课程笔记和课程代码发 ...

  3. python实现逻辑回归算法_逻辑回归算法的实现

    前言 在之前的学习中,我们已经学习了逻辑回归算法的具体数学原理及其简单的推导过程,现在,我们可以用python实现逻辑回归的算法了. 环境 python3.6 jupyter-notebook 绘制数 ...

  4. spark 逻辑回归算法案例_黄美灵的Spark ML机器学习实战

    原标题:黄美灵的Spark ML机器学习实战 本课程主要讲解基于Spark 2.x的ML,ML是相比MLlib更高级的机器学习库,相比MLlib更加高效.快捷:ML实现了常用的机器学习,如:聚类.分类 ...

  5. 机器学习笔记(10)——逻辑回归算法优化之随机梯度下降法

    在上一篇文章<机器学习笔记(9)--深入理解逻辑回归算法及其Python实现>中,详细学习了逻辑回归算法的分类原理和使用梯度下降法来最小化损失函数的数学推导过程,从而拟合出分类函数的参数θ ...

  6. 逻辑回归算法之梯度算法

    在学习Logistic逻辑回归算法(上一节介绍)编程时,被其中一句python语句卡住了,该语句就是: weights = weights + alpha * dataMatrix.transpose ...

  7. Python使用逻辑回归算法根据三围数据判断用户性别

    逻辑回归算法是一种经典的分类算法,使用时应注意: 1)样本需要足够多. 2)样本的多个特征之间尽量不要存在线性相关性. 问题描述: 根据三围数据判断用户性别.假设男性和女性的三围和身高的计算公式如下: ...

  8. 【推荐算法 学习与复现】-- 逻辑回归算法族 -- LR

    协同过滤仅仅使用有限的用户行为信息,逻辑回归算法模型大多引入用户行为.用户特征.物品特征和上下文特征等,从CF逐步过渡到综合不同特征的机器学习模型. (1)逻辑回归模型 将用户特征(年龄.性别等).用 ...

  9. 深度学习原理-----逻辑回归算法

    系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...

  10. 逻辑回归算法实现鸢尾花数据集的二分类

    1.介绍 前言   为了更好的理解本章内容,请参考下面的网址,自主学习一些矩阵求导运算. https://zhuanlan.zhihu.com/p/158182135机器学习约定规则: 向量对标量求导 ...

最新文章

  1. 如何让Keil MDK兼容Keil C51?
  2. Mac系统Eclipse配置Maven
  3. Spring boot嵌入式Servlet容器定制器
  4. Implementation of WC in JAVA
  5. jzoj5353-村通网【最小生成树】
  6. 对象必须实现 iconvertible。_java面向对象最全入门笔记(通俗易懂,适合初学者)...
  7. 前端学习(3265):js中undefine中3相关属性
  8. Cloud一分钟 |格力电器营收比去年增长500亿元; 红黄蓝加盟停不下来;中美双方同意停止相互加征新的关税...
  9. 云计算学习路线图课件:云计算和虚拟机有什么区别?
  10. python怎么画长方体_将长方体绘制为图像
  11. GDAL源码剖析(四)之命令行程序说明一
  12. Python 练习题
  13. JavaScript执行机制(彻底弄懂宏任务微任务)
  14. 轻量化规划调度引擎——OptaPlanner简介
  15. 使用mac 终端登录腾讯云服务器
  16. c#机器人聊天软件_C#winForm 聊天只能机器人(完整版)
  17. Linux终端模式下查看电脑的硬件配置信息小技巧
  18. 通过python调用OpenAI的API
  19. 什么是聚簇索引与非聚簇索引
  20. php接口内session,php4的session功能评述(一)

热门文章

  1. spring读取jdbc(file方式)
  2. Android第三十八天
  3. 7. mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
  4. java RandomAccessFile类(随机访问文件)
  5. 希哲求大神教 技术额
  6. 2019.04.17 面向对象编程篇207
  7. angular.isString()
  8. Oracle 官方文档地址
  9. Hadoop、Hbase基本命令及调优方式
  10. label标签 for属性