机器学习算法基础——梯度下降法之二元线性回归

Python梯度下降法实现二元逻辑回归 Python梯度在下降法实现二元逻辑回归 二元逻辑回归假设函数 定义当函数值大于等于0.5时,结果为1,当函数值小于0.5时,结果为0.函数的值域是(0, 1)。 二元逻辑回归的损失函数 上图为二元逻辑回归的概率公式,则代价函数可以表示为 损失函数求偏倒数为 可以发现和线性回归的结果是一样的,只不过是假设函数h发生了变化。 正则化 为了避免过拟合,通常在代价函数后加一个正则化项,针对二元逻... 阅读详情
import numpy as np
import matplotlib.pyplot as plt
from numpy import genfromtxt
from mpl_toolkits.mplot3d import Axes3D # 可以用来画3D图

# 导入数据
data = genfromtxt(r"C:\\ML\\chapter-1\\Delivery.csv",delimiter=",")
print(data)

# 切分数据
x_data = data[:,:-1] # 行,列
y_data = data[:,-1] # 行,列
print(x_data)
print(y_data)

# 学习率 learning rate
lr = 0.0001

# 参数
theta0 = 0
theta1 = 0
theta2 = 0

# 最大迭代次数
epochs = 1000

# 最小二乘法
def compute_error(theta0,theta1,theta2,x_data,y_data):
    totalError = 0
    for i in range(0,len(x_data)):
        totalError += (y_data[i] - (theta1 * x_data[i,0] + theta2*x_data[i,1] + theta0)) ** 2
    return totalError / float(len(x_data))

def gradient_descent_runner(x_data,y_data,theta0,theta1,theta2,lr,epochs):
    # 计算总数据量
    m = float(len(x_data))
    # 循环epochs次
    for i in range(epochs):
        theta0_grad = 0 # 梯度0
        theta1_grad = 0 # 梯度1
        theta2_grad = 0 # 梯度2
        # 计算梯度总和再求平均
        for j in range(0,len(x_data)):
            theta0_grad += -(1/m) * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
            theta1_grad += -(1/m) * x_data[j,0] * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
            theta2_grad += -(1/m) * x_data[j,0] * (y_data[j] - (theta1*x_data[j,0] + theta2*x_data[j,1] + theta0))
        # 更新参数
        theta0 = theta0 - (lr*theta0_grad)
        theta1 = theta1 - (lr*theta1_grad)
        theta2 = theta2 - (lr*theta2_grad)
    return theta0,theta1,theta2

print('Staring theta0 = {0},theta1 = {1},theta2 = {2},error = {3}'.format(theta0,theta1,theta2,compute_error(theta0,theta1,theta2,x_data,y_data)))
print('Running...')
theta0,theta1,theta2 = gradient_descent_runner(x_data,y_data,theta0,theta1,theta2,lr,epochs) # 开始建模
print('After {0} iterations theta0 = {1},theta1 = {2},theta2 = {3}, error = {4}'.format(epochs,theta0,theta1,theta2,compute_error(theta0,theta1,theta2,x_data,y_data)))

ax = plt.figure().add_subplot(111,projection = "3d")
ax.scatter(x_data[:,0],x_data[:,1],y_data,c = 'r',marker = 'o',s = 100) # 点为红色三角形 s代表点的大小
x0 = x_data[:,0]
x1 = x_data[:,1]
# 生成网络矩阵
x0,x1 = np.meshgrid(x0,x1)
z = theta0 + x0*theta1 + x1*theta2
# 画3D图
ax.plot_surface(x0,x1,z)
# 设置坐标轴
ax.set_xlabel('Miles')
ax.set_ylabel("Num of Deliveries")
ax.set_zlabel('Time')

# 显示图像
plt.show()

在这里插入图片描述

逻辑回归基本思想及通用代码 sigmoid函数的值域为$(0,1)$,因此可以将模型输出的结果解释为样本属于某一类别的概率,即$h_{\theta}(x)$表示样本属于正类的概率,$1-h_{\theta}(x)$表示样本属于负类的概率。逻辑回归的优化问题可以通过梯度下降算法来求解,即从一个随机初始化的参数向量$\theta$开始,不断迭代更新参数,直到损失函数收敛或达到最大迭代次数。其中,$x^{(i)}$为第$i$个样本的特征向量,$y^{(i)}$为第$i$个样本的标签(0或1)。 阅读详情

相关推荐

预测房价--基于python的线性回归模型

线性回归-机器学习(预测房价) 影响房价最大的因素就是房屋的面积和地段,本文章中针对房屋的面积作为主要影响因素,分析房屋面积对房价的影响 1.

@木子李的博客 8734

二元线性回归之梯度下降法

from numpy import genfromtxt import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 读入数据 Data = genfromtxt(r"data2.csv", delimiter=',') # 切分数据 X_data = Data[:, :-1] # 除最后一列所有列 Y_data = Data[:, -1] # 最后一列 # 学习率 LR

weixin_43087913的博客 1151

梯度向量与梯度下降法

最近非常热门的“深度学习”领域,用到了一种名为“梯度下降法”的算法。梯度下降法是机器学习中常用的一种方法,它主要用于快速找到“最小误差”(the minimum error)。要掌握“梯度下降法”,就需要先搞清楚什么是“梯度”,本文将从这些基本概念:方向导数(directional derivative)与偏导数、梯度(gradient)、梯度向量(gradient vector)等出发,带您领略“

Sagittarius_Warrior的博客 1万+

多元线性回归_梯度下降法实现【Python机器学习系列(六)】

多元线性回归_梯度下降法实现【Python机器学习系列(六)】1. 读取数据2.定义代价函数3. 梯度下降4.可视化展示

侯小啾技术博客 5629

【机器学习】梯度下降法及使用一元二次方程模拟使用梯度下降法的代码实现

文本主要讲述了梯度下降法作为机器学习中的一种优化方法用于最小化损失函数。它并非直接解决机器学习问题,而是作为求解最优参数的工具。通过二维坐标图直观展示了梯度下降法的原理,即通过调整参数值来逐步减小损失函数值,直至找到最小值点。同时,强调了导数在梯度下降中的作用,即指示了损失函数随参数变化的趋势,从而指导参数调整的方向。

聚焦大数据、AI、数据库三大核心领域,分享 Flink/Spark 实时计算、数仓架构设计、AI 模型落地、数据库性能调优的实战干货,附可直接运行的源码与方案。提供企业技术内训、项目咨询与定制化服务,助力开发者与企业高效搞定数智技术难题。 1214

机器学习(6)——从线性回归到逻辑斯特回归

Linear Regression在学习李航《统计学习方法》的逻辑斯特回归时,正好coursera上相应的线性回归和逻辑斯特回归都学习完成,在此就一起进行总结,其中图片多来自coursera课程上。 线性回归是机器学习中很好理解的一种算法。我们以常见的房屋销售为例来进行简单分析: 假设我们统计的一个房屋销售的数据如下: 在此,我们从单一变量谈起,直观上比较容易理解。训练集定义为{(x(1)

Lyndon_zheng的专栏 4893

python 机器学习 一元和二元多项式回归 梯度下降算法

python 机器学习 一元多项式回归 一元多项式 一元多项式表达式为: Y=WTX=[w0+w1+⋯+wn]⋅[1+x+⋯+xn−1]T Y=W^TX=\left[ w_0+w_1+\cdots +w_n \right] \cdot \left[ 1+x+\cdots +x^{n-1} \right] ^T Y=WTX=[w0​+w1​+⋯+wn​]⋅[1+x+⋯+xn−1]T 其中高次项为一次项的高次幂,将该式写为多元表达式: Y=WTX=[w0+w1+⋯+wn]⋅[x1+x2+⋯+xn]T Y=W^T

Big_SHOe的博客 3524

Linux下libdrm实战:从零搭建一个简单的DRM显示程序(附完整代码)

本文是一份Linux下libdrm的实战指南,详细介绍了如何从零开始搭建一个简单的DRM显示程序。通过对比传统Framebuffer的局限性,阐述了现代DRM架构的核心优势与核心对象(FrameBuffer、Plane、CRTC等)的协作流程。文章提供了完整的代码示例,演示了如何打开设备、创建并填充Dumb Buffer、设置CRTC以依次显示红绿蓝纯色画面,并涵盖了编译、运行及进阶开发要点,为嵌入式Linux图形开发提供了扎实的入门基础。

weixin_29183637的博客 407

机器学习2-逻辑回归

目录前言算法思想二元逻辑回归模型二元逻辑回归梯度推导多元逻辑回归模型逻辑回归&朴素贝叶斯逻辑回归优缺点优点:缺点应用面试问题收集 前言 逻辑回归是一个分类算法(二元/多分类),并不是回归算法。Y是连续的才是回归模型。这里打算把公式推一遍。 算法思想 假设数据服从伯努利分布,在训练数据集中基于对数似然函数,利用梯度下降,找出最佳拟合曲线(最佳分类线θTX\theta^TXθTX),通过sig...

qq_42012732的博客 972

Cadence psspxf实战:手把手教你仿真250MHz环形VCO的电源抑制比(附Verilog代码)

本文详细介绍了使用Cadence psspxf仿真器对250MHz环形VCO的电源抑制比(PSRR)进行仿真的全流程。从环形VCO的设计原理、Verilog代码实现,到Cadence环境配置、仿真参数设置,再到结果分析与优化技巧,提供了完整的实战指南。特别适合电路设计工程师学习如何评估和优化VCO的抗电源噪声能力。

weixin_42567752的博客 415

使用moveit控制机械臂

位置设置:`target_pose.position.x = 0.12`, `target_pose.position.y = 0.41`, 和 `target_pose.position.z = 0.44` 分别设置了机械臂末端执行器的X, Y, 和 Z坐标。设定目标位置:`group.set_pose_target(target_pose)` 这一命令将之前定义的目标位置和姿态设置为当前机械臂组的目标,为接下来的路径规划做准备。在机械臂控制的过程中,设定精确的目标位置和姿态是实现精确操作的关键步骤。

realman_Rop的博客 3688

机器学习笔记目录

线性回归公式法推导 线性回归梯度下降法推导 逻辑斯蒂回归法二元分类 逻辑斯蒂回归法多元分类

蓬某某的博客 312

U-Net图像分割实战:从论文解析到PyTorch代码实现

本文深入解析了U-Net图像分割模型的经典架构与核心思想,并提供了从零开始的PyTorch代码实现教程。通过详细拆解编码器-解码器结构、跳跃连接等关键组件,手把手指导读者构建完整的U-Net网络,涵盖数据准备、模型训练、推理部署全流程,是掌握图像分割实战技能的实用指南。

fire9的博客 343

算法系列——有监督学习——3.逻辑回归

逻辑回归

穿梭的编织者 1093

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 685

2024年全国大学生电子设计竞赛A题_AC-AC变换电路并联运行

AC-AC变换电路并联运行(A 题)【本科组】

qq_74395263的博客 7839

机器学习算法——线性回归(超级详细且通俗)

通俗理解线性回归 回归分析 什么是回归分析呢?这是一个来自统计学的概念。回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。通常使用线/曲线来拟合数据点,然后研究如何使曲线到数据点的距离差异最小。 例如,存在以下数据 然后我们拟合一条曲线f(x): 回归分析的目标就是要拟合一条曲线,让图中红色线段加起来的和最小。 线性回归(简介) 线性回归是回归分析的一种。 假设目标值(因变量)与特征值(自变量)之间线性相关(即满足一个多元一次方程,如:f(x)=w1x1+…+wnxn+b.)。 然后构

weixin_44697198的博客 5万+

学好超几何分布的核心公式,破解双色球!

彩票本质是概率游戏,不存在"必中公式"科学投注的核心是风险收益比管理长期投注的期望值始终为负(理论回报率约47%-63%)数学维度:运用概率工具优化策略经济维度:控制投注成本在可承受范围人文维度:将彩票视为社会公益的参与方式通过本文构建的数学模型,彩民可以在概率框架内实现更理性的投注决策。但最终能否收获幸运,仍取决于那个永恒的未知数——概率女神的眷顾。一、超几何分布的核心公式。

weixin_44904675的博客 1万+

机器学习基础——梯度下降法之二元线性回归

二元线性回归 import numpy as np import matplotlib.pyplot as plt from numpy import genfromtxt from mpl_toolkits.mplot3d import Axes3D # 可以用来画3D图 # 导入数据 data = genfromtxt(r"C:\\ML\\chapter-1\\Delivery.csv",d...

小黄的博客 630

时间序列分析(Time Series Analysis) 原理与代码实例讲解

时间序列分析(Time Series Analysis) - 原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 关键词:时间序列预测,ARIMA模型,状态空间模型,SARIMA模型,机器学习

AI天才研究院 1248

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【机器学习基础】一元线性回归(适合初学者的保姆级文章)

一元线性回归是一种统计分析方法,用于建立一个自变量和一个因变量之间的线性关系模型。在一元线性回归中,只有一个自变量(即解释变量)与一个因变量(即被解释变量)相关。

z135733的博客 3287

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spark MLlib 源码学习---线性回归模型(LinearRegression)

Spark的机器学习库MLlib应该是自己接触的第二个分布式机器学习库,第一个是Mahout。MLlib本身提供了常用的分类和回归算法,还有特征提取与频繁项集的一些数据挖掘算法,因此构建数据清洗+数据建模的pipeline是比较方便的。当然,作为构建于Spark计算引擎之上的算法应用也自然比Mahout高效不少。目前Spark已经到了3.x的版本,但是MLlib的更新迭代并不是很快。但这没关系,有很多第三方的算法应用可以拿来使用,包括intel的一些库还有github上独立的一些repo,这个后续会逐步介绍

万宫玺的专栏 1609

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

机器学习之线性回归

机器学习之线性回归

abc1234564546的博客 6388

【ML系列】简单的二元分类——Logistic回归

对于了解机器学习中二元分类问题的来源与分析,我认为王树义老师这篇文章讲的非常好,通俗且易懂: http://blog.sciencenet.cn/blog-377709-1121098.html 但王树义老师的这篇文章并未详细的展开说明二元分类的具体实现方法,只是在宏观上的一个概述。在阅读这篇文章后,我便心生实现一个简单的二元分类并把前后过程记录下来的念头,所以本篇的主体以算法实现为...

489

机器学习_从线性回归到逻辑回归原理和实战

机器学习_从线性回归到逻辑回归原理和实战

weixin_42504788的博客 1626

机器学习之-梯度下降法学习笔记

1 简介 梯度下降法又被称为最速下降法(Steepest descend method),其理论基础是梯度的概念。 梯度与方向导数的关系为:梯度的方向与取得最大方向导数值的方向一致,而梯度的模就是函数在该点的方向导数的最大值。 现在假设我们要求函数的最值,采用梯度下降法,如图所示: 以一个人下山为例。比如刚开始的初始位置是在红色的山顶位置,那么现在的问题是该如何达到蓝色的山底呢?按照梯度下降算法...

xxzzg的博客 683
上一篇: 机器学习算法基础——sklearn求一元线性回归
下一篇: 机器学习基础——梯度下降法之二元线性回归
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值