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编程中对super函数的正确理解和用法解析
Jul 02 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
Jun 28 Python
Python StringIO如何在内存中读写str
Jan 07 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
为什么相对PHP黑python的更少
Jun 21 Python
Python异常处理机制结构实例解析
Jul 23 Python
用python绘制樱花树
Oct 09 Python
10张动图学会python循环与递归问题
Feb 06 Python
10个顶级Python实用库推荐
Mar 04 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 压缩文件夹的类代码
2009/11/05 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
php获取远程文件内容的函数
2015/11/02 PHP
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
秋季婚礼证婚词
2014/01/11 职场文书
公益广告语集锦
2014/03/13 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
我的小天地教学反思
2014/04/30 职场文书
买卖合同协议书范本
2014/10/18 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
简单的辞职信范文(2016最新版)
2015/05/12 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
学历证明样本
2015/06/16 职场文书
法定代表人身份证明书
2015/06/18 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers
spring 项目实现限流方法示例
2022/07/15 Java/Android