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判断给定的字符串是否是有效日期的方法
May 13 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
python爬虫之urllib3的使用示例
Jul 09 Python
对python:print打印时加u的含义详解
Dec 15 Python
python爬取酷狗音乐排行榜
Feb 20 Python
详解python读取image
Apr 03 Python
使用python实现简单五子棋游戏
Jun 18 Python
python的pstuil模块使用方法总结
Jul 26 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
Restful_framework视图组件代码实例解析
Nov 17 Python
解决python3中os.popen()出错的问题
Nov 19 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中取得image按钮传递的name值
2006/10/09 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解AngularJS 过滤器的使用
2018/06/02 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
使用Python来开发微信功能
2018/06/13 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
简单的JAVA编程面试题
2013/03/19 面试题
出国留学导师推荐信
2015/03/26 职场文书
整改通知书格式
2015/04/22 职场文书
基层工作经历证明
2015/06/19 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android