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搭建简易服务器分析与实现
Dec 15 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
python实现员工管理系统
Jan 11 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
python 使用值来排序一个字典的方法
Nov 16 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Python运行异常管理解决方案
Mar 09 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 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
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
php简单复制文件的方法
2016/05/09 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
微信小程序绘制半圆(弧形)进度条
2020/11/18 Javascript
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
市场营销专业推荐信
2013/11/03 职场文书
电子信息科学专业自荐信
2014/01/30 职场文书
合作经营协议书
2014/04/17 职场文书
化工工艺设计求职信
2014/06/25 职场文书
机械专业求职信范文
2014/07/15 职场文书
团队拓展活动方案
2014/08/28 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
Python使用OpenCV实现虚拟缩放效果
2022/02/28 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL