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使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
简单学习Python time模块
Apr 29 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
python无序链表删除重复项的方法
Jan 17 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
python 用opencv实现霍夫线变换
Nov 27 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中常用数组处理方法实例分析
2008/08/30 PHP
mysql 性能的检查和优化方法
2009/06/21 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
2020/02/14 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
python实现ping命令小程序
2020/12/28 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
大学同学聚会邀请函
2014/01/19 职场文书
岗位廉政承诺书
2014/03/27 职场文书
总经理人事任命书
2014/06/05 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang