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 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
python中defaultdict的用法详解
Jun 07 Python
简单实现Python爬取网络图片
Apr 01 Python
Python数据处理numpy.median的实例讲解
Apr 02 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
python2 与 python3 实现共存的方法
Jul 12 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
wxpython布局的实现方法
Nov 01 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 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/05/27 PHP
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
php常用Stream函数集介绍
2013/06/24 PHP
PHP对象实例化单例方法
2017/01/19 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
JavaScript使用function定义对象并调用的方法
2015/03/23 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
Python异常处理知识点总结
2019/02/18 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python aiohttp的使用详解
2019/06/20 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
2014年建筑工程工作总结
2014/12/03 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
Python数据类型最全知识总结
2021/05/31 Python
分享几个简单MySQL优化小妙招
2022/03/31 MySQL
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA