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使用scrapy解析js示例
Jan 23 Python
Python的类实例属性访问规则探讨
Jan 30 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python kmeans聚类简单介绍和实现代码
Feb 23 Python
详解python实现线程安全的单例模式
Mar 05 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
Python如何使用turtle库绘制图形
Feb 26 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
python获取带有返回值的多线程
May 02 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
更改Python命令行交互提示符的方法
2015/01/14 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Fabric 应用案例
2016/08/28 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
python使用建议技巧分享(三)
2020/08/18 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
服装电子商务创业计划书
2014/01/30 职场文书
新春寄语大全
2014/04/09 职场文书
受伤赔偿协议书
2014/09/24 职场文书
银行业务授权委托书
2014/10/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
中学社团活动总结
2015/05/07 职场文书
医院员工辞职信范文
2015/05/12 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
导游词之青城山景区
2019/09/27 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers