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中enumerate函数用法实例分析
May 20 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
Django rest framework实现分页的示例
May 24 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
使用python制作一个解压缩软件
Nov 13 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Python如何根据时间序列数据作图
May 12 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
python 星号(*)的多种用途
Sep 21 Python
Python包资源下载路径报404解决方案
Nov 05 Python
python实现语音常用度量方法的代码详解
May 25 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
Django 中 cookie的使用
2017/08/17 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
在JavaScript中使用inline函数的问题
2007/03/08 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
2016/12/05 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
详解javascript对数组和json数组的操作
2019/04/15 Javascript
vue实现记事本功能
2019/06/26 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
JavaScript实现网页计算器功能
2020/10/29 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
MySQL最常见的操作语句小结
2015/05/07 Python
Pandas中resample方法详解
2019/07/02 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
《囚绿记》教学反思
2014/03/01 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
贷款担保书
2015/01/20 职场文书
开展警示教育活动总结
2015/05/09 职场文书
尊师重教主题班会
2015/08/14 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
python 三边测量定位的实现代码
2021/04/22 Python