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使用py2exe打包程序介绍
Nov 20 Python
最基础的Python的socket编程入门教程
Apr 23 Python
Python2中的raw_input() 与 input()
Jun 12 Python
Django中的ajax请求
Oct 19 Python
python七夕浪漫表白源码
Apr 05 Python
Python类反射机制使用实例解析
Dec 30 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
解决Django Haystack全文检索为空的问题
May 19 Python
基于python实现计算两组数据P值
Jul 10 Python
基于python模拟bfs和dfs代码实例
Nov 19 Python
关于python中remove的一些坑小结
Jan 04 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 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常用数组函数介绍
2014/07/28 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
$.extend 的一个小问题
2015/06/18 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
使用Python写个小监控
2016/01/27 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
浅析python内置模块collections
2019/11/15 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
学生会离职感言
2014/02/11 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
社区维稳工作方案
2014/06/06 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
继续教育个人总结
2015/03/03 职场文书
中学教师读书笔记
2015/07/01 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL