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中元类用法实例
Oct 10 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
Aug 07 Python
python timestamp和datetime之间转换详解
Dec 11 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
对python中的for循环和range内置函数详解
Apr 17 Python
TensorFlow数据输入的方法示例
Jun 19 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
详解Python常用的魔法方法
Jun 03 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
python 域名分析工具实现代码
2009/07/15 Python
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
python检索特定内容的文本文件实例
2018/06/05 Python
Django REST framework视图的用法
2019/01/16 Python
python集合是否可变总结
2019/06/20 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
Android面试题附答案
2014/12/08 面试题
.NET程序员的几道面试题
2012/06/01 面试题
中医专业职业生涯规划书范文
2014/01/04 职场文书
篮球赛口号
2014/06/18 职场文书
三方股份合作协议书
2014/10/13 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
详解Vue的options
2021/05/15 Vue.js
python munch库的使用解析
2021/05/25 Python