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使用PyV8执行javascript代码示例分享
Dec 04 Python
python处理PHP数组文本文件实例
Sep 18 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
详解python之heapq模块及排序操作
Apr 04 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
python使用布隆过滤器的实现示例
Aug 20 Python
python状态机transitions库详解
Jun 02 Python
Python内置数据结构列表与元组示例详解
Aug 04 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 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
PHP与SQL注入攻击[一]
2007/04/17 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
vue-loader教程介绍
2017/06/14 Javascript
puppeteer库入门初探
2019/01/09 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
python实现周期方波信号频谱图
2018/07/21 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
2014年学习雷锋活动总结
2014/03/01 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
硕士学位论文评语
2014/12/31 职场文书
文体活动总结
2015/02/04 职场文书
教研活动主持词
2015/07/03 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
Vue2.0搭建脚手架
2022/03/13 Vue.js
vue+echarts实现多条折线图
2022/03/21 Vue.js