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 08 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
Django实现文件上传下载功能
Oct 06 Python
python向图片里添加文字
Nov 26 Python
PyTorch中permute的用法详解
Dec 30 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
Python: glob匹配文件的操作
Dec 11 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 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
B2K与车机的中波PK
2021/03/02 无线电
php 过滤危险html代码
2009/06/29 PHP
php修改文件上传限制方法汇总
2015/04/07 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
js图片卷帘门导航菜单特效代码分享
2015/09/10 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
AngularJS指令与指令之间的交互功能示例
2016/12/14 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
Python抽象类的新写法
2015/06/18 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
高级人员简历的自我评价分享
2013/11/03 职场文书
优秀教师工作感言
2014/02/16 职场文书
聚美优品的广告词
2014/03/14 职场文书
2014年三万活动总结
2014/04/26 职场文书
捐助贫困学生倡议书
2014/05/16 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
公诉意见书范文
2015/06/05 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS