python使用梯度下降方法实现线性回归算法_python实现线性回归梯度下降算法

梯度下降模型线性回归公式推导查看梯度下降公式推导查看伪代码:读取数据(查看数据分布)拆分正负数据集实现逻辑回归算法建立分类器设定阈值,根据阈值完成数据结果sigmoid:映射到概率的函数model:返回预测结果值cost:根据参数计算损失gradient:计算每个参数的梯度方向descent:进行参数更新accuracy:计算精度优化及比较梯度下降处理原则首先优化数据,如归一化处理等然后优化模型,...
摘要由CSDN通过智能技术生成

梯度下降模型

线性回归公式推导查看

梯度下降公式推导查看

伪代码:

读取数据(查看数据分布)

拆分正负数据集

实现逻辑回归算法

建立分类器

设定阈值,根据阈值完成数据结果

sigmoid:映射到概率的函数

model:返回预测结果值

cost:根据参数计算损失

gradient:计算每个参数的梯度方向

descent:进行参数更新

accuracy:计算精度

优化及比较

梯度下降处理原则

首先优化数据,如归一化处理等

然后优化模型,如更换算法模型,调整参数等

比较三种梯度下降方法

1、迭代次数,限定梯度下降计算次数

2、计算损失值,比较损失值,与目标函数变化很小

3、梯度变化,判断梯度很小时

三种梯度下降法

1、批量梯度下降法BGD:目的是要误差函数尽可能的小

初始化weigths,然后不断反复的更新weights使得误差函数减小,直到满足要求时停止

2、随机梯度下降法SGD:利用每个样本的损失函数对θ求偏导得到对应的梯度,来更新θ

3、min-batch 小批量梯度下降法MBGD:结合批量梯度下降与随机梯度下降

运行效率高,代码收敛快

读取数据、图型化查看数据分布

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

#读取数据

path='F:\python\机器学习\data\梯度下降求解逻辑回归\梯度下降\data\logireg_data.txt'

data=pd.read_csv(path,header=None,names=['e1','e2','admitted'])

#数据图型化查看

positive=data[data['admitted']==1]

negative=data[data['admitted']==0]

fig,ax=plt.subplots(figsize=(10,5))

ax.scatter(positive['e1'],positive['e2'],s=30,marker='o',label='admitted')

ax.scatter(negative['e1'],negative['e2'],s=30,marker='x',label='not admitted')

ax.legend()

ax.set_xlabel('e1')

ax.set_ylabel('e2')

c2d3dd289523515e1c75f7fce07ba904.png

数据处理

#原始数据处理

data.insert(0,'ones',1) #增加常量列

theta=np.zeros([1,3])

#数据构造

orig_data=data.values #构造矩阵

cols=orig_data.shape[1]

X=orig_data[:,0:cols-1]

y=orig_data[:,cols-1:cols]

实现逻辑回归算法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值