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. 上机实践 1 初识 Java
  2. IE自动在后台运行,不知道是什么病毒?
  3. 2层框架结构柱子间距_框架结构的特点有哪些?框架结构是什么?
  4. python selenium post_python爬虫 selenium标记信息修改
  5. 图片压缩处理的一个可行解决方法【OC】
  6. exce中让两列数据一一对应_表格数据对比眼花缭乱、痛苦不堪,找对方法,1秒搞定...
  7. linux下mysql目录结构_linux下mysql安装配置与目录结构
  8. Qt4_改变形状的对话框
  9. AEAI DP开发统计分析
  10. document.onreadystatechange()来判断页面加载完
  11. 基于java网上商城源码设计
  12. 机器人动力学——拉格朗日法
  13. ps怎么将png做成gif_PS里面图片是gif的怎么转换成jpg和png的?
  14. Pytorch扫盲 - 安装、训练、测试、可视化、网络结构、finetune、loss
  15. 论文解读 | 百度 ERNIE: Enhanced Representation through Knowledge Integration
  16. 【EC200U】 基站定位
  17. python爬虫淘宝比价
  18. iOS/iPhone学习系列、代码教程----~~~持续更新中~~~
  19. c语言的%的转义吗,%20转义(C语言转义字符问题)
  20. app专项测试之兼容性测试

热门文章

  1. 查看linux中某个端口(port)是否被占用***
  2. GPO 安装 .net 4.5和WMF4
  3. PostgreSQL Oracle 兼容性之 - rowid (CREATE TABLE WITH OIDS)
  4. 《移动App测试实战》——1.4 本章小结
  5. JAVA内部类(一)
  6. UIButton 文字图片排列
  7. NOSQL数据库大比拼:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase
  8. C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客
  9. 解决weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection
  10. VIM设置-发现VIM的美