python实现梯度下降和逻辑回归


Posted in Python onMarch 24, 2020

本文实例为大家分享了python实现梯度下降和逻辑回归的具体代码,供大家参考,具体内容如下

import numpy as np
import pandas as pd
import os
 
data = pd.read_csv("iris.csv") # 这里的iris数据已做过处理
m, n = data.shape
dataMatIn = np.ones((m, n))
dataMatIn[:, :-1] = data.ix[:, :-1]
classLabels = data.ix[:, -1]
 
# sigmoid函数和初始化数据
def sigmoid(z):
 return 1 / (1 + np.exp(-z))
 
# 随机梯度下降
def Stocgrad_descent(dataMatIn, classLabels):
 dataMatrix = np.mat(dataMatIn) # 训练集
 labelMat = np.mat(classLabels).transpose() # y值
 m, n = np.shape(dataMatrix) # m:dataMatrix的行数,n:dataMatrix的列数
 weights = np.ones((n, 1)) # 初始化回归系数(n, 1)
 alpha = 0.001 # 步长
 maxCycle = 500 # 最大循环次数
 epsilon = 0.001
 error = np.zeros((n,1))
 for i in range(maxCycle):
  for j in range(m):
   h = sigmoid(dataMatrix * weights) # sigmoid 函数
   weights = weights + alpha * dataMatrix.transpose() * (labelMat - h) # 梯度
  if np.linalg.norm(weights - error) < epsilon:
   break
  else:
   error = weights
  return weights
 
# 逻辑回归
def pred_result(dataMatIn):
 dataMatrix = np.mat(dataMatIn)
 r = Stocgrad_descent(dataMatIn, classLabels)
 p = sigmoid(dataMatrix * r) # 根据模型预测的概率
 
 # 预测结果二值化
 pred = []
 for i in range(len(data)):
  if p[i] > 0.5:
   pred.append(1)
  else:
   pred.append(0)
 data["pred"] = pred
 os.remove("data_and_pred.csv") # 删除List_lost_customers数据集 # 第一次运行此代码时此步骤不要
 data.to_csv("data_and_pred.csv", index=False, encoding="utf_8_sig") # 数据集保存
pred_result(dataMatIn)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现守护进程、守护线程、守护非守护并行
May 05 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
对Python3.x版本print函数左右对齐详解
Dec 22 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
Python语言异常处理测试过程解析
Jan 08 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
python 命名规范知识点汇总
Feb 14 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
Python3 selenium 实现QQ群接龙自动化功能
Apr 17 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 #Python
python使用梯度下降算法实现一个多线性回归
Mar 24 #Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 #Python
python实现最速下降法
Mar 24 #Python
python实现梯度法 python最速下降法
Mar 24 #Python
PyQt5+Pycharm安装和配置图文教程详解
Mar 24 #Python
python实现梯度下降法
Mar 24 #Python
You might like
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
PHP会话控制实例分析
2016/12/24 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
js控制表单不能输入空格的小例子
2013/11/20 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
nodeJS微信分享
2017/12/20 NodeJs
详解如何用babel转换es6的class语法
2018/04/03 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python列表删除的三种方法代码分享
2017/10/31 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
django使用多个数据库的方法实例
2021/03/04 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
幼儿教师国培感言
2014/02/19 职场文书
优秀实习生感言
2014/03/01 职场文书
车队司机自我鉴定
2014/03/02 职场文书
期中考试反思800字
2014/05/01 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
一级电子管军用接收机测评
2022/04/05 无线电