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简单获取自身外网IP的方法
Sep 18 Python
python生成ppt的方法
Jun 07 Python
python实现多层感知器
Jan 18 Python
python远程连接MySQL数据库
Apr 19 Python
python装饰器常见使用方法分析
Jun 26 Python
选择Python写网络爬虫的优势和理由
Jul 07 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
python读写文件write和flush的实现方式
Feb 21 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python求解汉诺塔游戏
Jul 09 Python
Pycharm Git 设置方法
Sep 15 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
JS获取父节点方法
2009/08/20 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
vue文件运行的方法教学
2019/02/12 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
Python实现登录接口的示例代码
2017/07/21 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
业务部门经理岗位职责
2014/02/23 职场文书
安全责任书怎么写
2014/07/28 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
门面房租房协议书
2014/12/01 职场文书
硕士学位论文评语
2014/12/31 职场文书
教育读书笔记
2015/07/02 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python