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操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
python自动裁剪图像代码分享
Nov 25 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
django manage.py扩展自定义命令方法
May 27 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
python 发送和接收ActiveMQ消息的实例
Jan 30 Python
Python基础之文件读取的讲解
Feb 16 Python
关于Python解包知识点总结
May 05 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
Pycharm连接远程服务器并远程调试的全过程
Jun 24 Python
详解Python+OpenCV绘制灰度直方图
Mar 22 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
Python中的字典遍历备忘
2015/01/17 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
python使用正则筛选信用卡
2019/01/27 Python
python pandas 时间日期的处理实现
2019/07/30 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
pip安装tensorflow的坑的解决
2020/04/19 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
毕业生在校学习的自我评价分享
2013/10/08 职场文书
工程测量与监理专业应届生求职信
2013/11/27 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
任命书格式
2014/06/05 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
python 命令行传参方法总结
2021/05/25 Python
一篇带你入门Java垃圾回收器
2021/06/16 Java/Android
Nginx实现会话保持的两种方式
2022/03/18 Servers
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript