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实现拼接多张图片的方法
Dec 01 Python
Python实现LRU算法的2种方法
Jun 24 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python绑定方法与非绑定方法详解
Aug 18 Python
对numpy中布尔型数组的处理方法详解
Apr 17 Python
python 文件转成16进制数组的实例
Jul 09 Python
python用列表生成式写嵌套循环的方法
Nov 08 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
Django CBV模型源码运行流程详解
Aug 17 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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的网址
2006/11/25 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
PHP实现的封装验证码类详解
2013/06/18 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
浅谈PHP的反射机制
2016/12/15 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
酷炫jQuery全屏3D焦点图动画效果
2016/03/22 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python实现登陆文件验证方法
2018/10/06 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
Python实现区域填充的示例代码
2021/02/03 Python
python 制作磁力搜索工具
2021/03/04 Python
异常和异常类的概念
2014/09/12 面试题
2014年老干部工作总结
2014/11/21 职场文书
儿园租房协议书范本
2014/12/02 职场文书
普宁寺导游词
2015/02/04 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
会计实训总结范文
2015/08/03 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL