Python利用逻辑回归分类实现模板


Posted in Python onFebruary 15, 2020

Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数。

  • 优点:计算代价不高,易于理解和实现。
  • 缺点:容易欠拟合,分类精度可能不高。
  • 使用数据类型:数值型和标称型数据。

好了,下面开始正文。

算法的思路我就不说了,我就提供一个万能模板,适用于任何纬度数据集。
虽然代码类似于梯度下降,但他是个分类算法

定义sigmoid函数

def sigmoid(x):
 return 1/(1+np.exp(-x))

进行逻辑回归的参数设置以及迭代

def weights(x,y,alpha,thershold):
 #初始化参数
 m,n = x_train.shape
 theta = np.random.rand(n) #参数
 cnt = 0 # 迭代次数
 max_iter = 50000
 #开始迭代
 while cnt < max_iter:
  cnt += 1
  diff = np.full(n,0)
  for i in range(m):
   diff = (y[i]-sigmoid(theta.T @ x[i]))*x[i]
   theta = theta + alpha * diff
  if(abs(diff)<thershold).all():
   break
 return theta

预测函数

def predict(x_test,theta):
 if sigmoid(theta.T @ x_test)>0.5:
  return 1
 else:return 0

调用函数

x_train = np.array([[1,2.697,6.254],
     [1,1.872,2.014],
     [1,2.312,0.812],
     [1,1.983,4.990],
     [1,0.932,3.920],
     [1,1.321,5.583],
     [1,2.215,1.560],
     [1,1.659,2.932],
     [1,0.865,7.362],
     [1,1.685,4.763],
     [1,1.786,2.523]])
y_train = np.array([1,0,0,1,0,1,0,0,1,0,1])
alpha = 0.001 # 学习率
thershold = 0.01 # 指定一个阈值,用于检查两次误差
print(weights(x_train,y_train,alpha,thershold))

总结

以上所述是小编给大家介绍的Python利用逻辑回归分类实现模板,希望对大家有所帮助!

Python 相关文章推荐
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
Python PIL图片添加字体的例子
Aug 22 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
python全局变量引用与修改过程解析
Jan 07 Python
python离线安装外部依赖包的实现
Feb 13 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 Python
python re模块常见用法例举
Mar 01 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 #Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 #Python
tensorboard显示空白的解决
Feb 15 #Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 #Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 #Python
解决Tensorboard 不显示计算图graph的问题
Feb 15 #Python
基于TensorBoard中graph模块图结构分析
Feb 15 #Python
You might like
一个很不错的PHP翻页类
2009/06/01 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
php数组去重复数据示例
2014/02/25 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
新手入门常用代码集锦
2007/01/11 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
详解VUE 数组更新
2017/12/16 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
python 不关闭控制台的实现方法
2011/10/23 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
PHP如何自定义函数
2016/09/16 面试题
高级Java程序员面试要点
2013/08/02 面试题
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技