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中用split()方法分割字符串的使用介绍
May 20 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
python中redis的安装和使用
Dec 04 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
python实现对输入的密文加密
Mar 20 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
python mysql中in参数化说明
Jun 05 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 Python
python 中的jieba分词库
Nov 23 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写MySQL数据 实现代码
2009/06/15 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
JavaScript中eval函数的问题
2016/01/31 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
简单实现Vue的observer和watcher
2016/12/21 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
使用vue-cli创建项目的图文教程(新手入门篇)
2018/05/02 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
Python contextlib模块使用示例
2015/02/18 Python
Python网络爬虫实例讲解
2016/04/28 Python
python 编码规范整理
2018/05/05 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
详解python中各种文件打开模式
2020/01/19 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
九年级科学教学反思
2014/01/29 职场文书
法制宣传实施方案
2014/03/13 职场文书
爱护草坪标语
2014/06/24 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
解除租房协议书
2014/12/03 职场文书
2014年加油站工作总结
2014/12/04 职场文书
就业推荐表导师评语
2014/12/31 职场文书
实习班主任自我评价
2015/03/11 职场文书
同学聚会通知短信
2015/04/20 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书