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学习教程之常用的内置函数大全
Jul 14 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
python 文件查找及内容匹配方法
Oct 25 Python
python如何实现代码检查
Jun 28 Python
python小程序实现刷票功能详解
Jul 17 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
python输出第n个默尼森数的实现示例
Mar 08 Python
Python发送邮件封装实现过程详解
May 09 Python
基于python实现获取网页图片过程解析
May 11 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
php中 $$str 中 &quot;$$&quot; 的详解
2015/07/06 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
详解JS函数重载
2014/12/04 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
vuejs 制作背景淡入淡出切换动画的实例
2018/09/01 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
详解Swift中属性的声明与作用
2016/06/30 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
python plotly画柱状图代码实例
2019/12/13 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
工程售后服务承诺书
2014/05/21 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
综合管理员岗位职责
2015/02/11 职场文书
求职信格式范文
2015/03/19 职场文书
大学感恩节活动总结
2015/05/05 职场文书
培养联系人考察意见
2015/06/01 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python