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实现倒计时的示例
Feb 14 Python
Python实现远程调用MetaSploit的方法
Aug 22 Python
python利用lxml读写xml格式的文件
Aug 10 Python
用python制作游戏外挂
Jan 04 Python
python导出hive数据表的schema实例代码
Jan 22 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
为什么说Python可以实现所有的算法
Oct 04 Python
NumPy排序的实现
Jan 21 Python
Python使用sqlite3模块内置数据库
May 07 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 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
基于mysql的论坛(6)
2006/10/09 PHP
php session和cookie使用说明
2010/04/07 PHP
php二维码生成
2015/10/19 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
BootStrap Datetimepicker 汉化的实现代码
2017/02/10 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
html中创建并调用vue组件的几种方法汇总
2020/11/17 Javascript
对于Python的Django框架部署的一些建议
2015/04/09 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python3转换code128条形码的方法
2019/04/17 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
python 并发下载器实现方法示例
2019/11/22 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
关爱留守儿童倡议书
2014/04/15 职场文书
人力资源求职信
2014/05/25 职场文书
选秀节目策划方案
2014/06/06 职场文书
松材线虫病防治方案
2014/06/15 职场文书
劳资员岗位职责
2015/02/13 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python