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字典DICT类型合并详解
Aug 17 Python
Python3 操作符重载方法示例
Nov 23 Python
python实现人脸识别经典算法(一) 特征脸法
Mar 13 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
Python实现的批量修改文件后缀名操作示例
Dec 07 Python
python交换两个变量的值方法
Jan 12 Python
使用pandas读取文件的实现
Jul 31 Python
QML使用Python的函数过程解析
Sep 26 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python多进程下的生产者和消费者模型
May 07 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
python 基于opencv操作摄像头
Dec 24 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
xml在joomla表单中的应用详解分享
2012/07/19 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
jquery 滚动条事件简单实例
2013/07/12 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python实现的密码强度检测器示例
2017/08/23 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
python 魔法函数实例及解析
2019/09/25 Python
Python实现平行坐标图的绘制(plotly)方式
2019/11/22 Python
python队列原理及实现方法示例
2019/11/27 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python可以实现栈的结构吗
2020/05/27 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
培训专员岗位职责
2014/02/26 职场文书
卖车协议书
2014/04/21 职场文书
2014年圣诞节寄语
2014/12/08 职场文书
停课通知书
2015/04/24 职场文书
人力资源部工作计划
2019/05/14 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
python 学习GCN图卷积神经网络
2022/05/11 Python
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript