catspeake

我认为您的代码有点太复杂了,它需要更多的结构,因为否则您将迷失在所有方程式和运算中。最后,此回归可归结为以下四个操作:计算假设h = X * theta计算损耗= h-y,也许是成本的平方(loss ^ 2)/ 2m计算梯度= X'*损耗/ m更新参数theta = theta-alpha *渐变就您而言,我想您已经m与混淆了n。这里m表示训练集中的示例数量,而不是特征数量。让我们看看我的代码变化:import numpy as npimport random# m denotes the number of examples here, not the number of featuresdef gradientDescent(x, y, theta, alpha, m, numIterations):    xTrans = x.transpose()    for i in range(0, numIterations):        hypothesis = np.dot(x, theta)        loss = hypothesis - y        # avg cost per example (the 2 in 2*m doesn't really matter here.        # But to be consistent with the gradient, I include it)        cost = np.sum(loss ** 2) / (2 * m)        print("Iteration %d | Cost: %f" % (i, cost))        # avg gradient per example        gradient = np.dot(xTrans, loss) / m        # update        theta = theta - alpha * gradient    return thetadef genData(numPoints, bias, variance):    x = np.zeros(shape=(numPoints, 2))    y = np.zeros(shape=numPoints)    # basically a straight line    for i in range(0, numPoints):        # bias feature        x[i][0] = 1        x[i][1] = i        # our target variable        y[i] = (i + bias) + random.uniform(0, 1) * variance    return x, y# gen 100 points with a bias of 25 and 10 variance as a bit of noisex, y = genData(100, 25, 10)m, n = np.shape(x)numIterations= 100000alpha = 0.0005theta = np.ones(n)theta = gradientDescent(x, y, theta, alpha, m, numIterations)print(theta)首先,我创建一个小的随机数据集,其外观应如下所示:线性回归如您所见,我还添加了由excel计算的生成的回归线和公式。您需要注意使用梯度下降的回归直觉。当您完成对数据X的完整批量传递时,需要将每个示例的m损失减少为一次权重更新。在这种情况下,这是所有梯度之和的平均值,因此除以m。接下来需要注意的是跟踪收敛并调整学习率。为此,您应该始终跟踪每次迭代的成本,甚至可能将其绘制出来。如果运行我的示例,返回的theta将如下所示:Iteration 99997 | Cost: 47883.706462Iteration 99998 | Cost: 47883.706462Iteration 99999 | Cost: 47883.706462[ 29.25567368   1.01108458]实际上,这与excel计算的方程非常接近(y = x + 30)。请注意,当我们将偏差传递到第一列时,第一个theta值表示偏差权重。

python 矩阵乘法梯度下降_使用python和numpy进行梯度下降相关推荐

  1. python矩阵乘法 点乘_转(matlab和numpy矩阵乘法异同)

    广义的矩阵的矩阵乘法包括:矩阵相乘,矩阵点乘,向量乘法与向量点乘,内积. 对应的MATLAB有[* , .* , dot]三种运算符.分别表示的相乘,点乘和内积. 而在numpy中呢,也有*和dot两 ...

  2. python矩阵乘法分治算法_矩阵乘法的Strassen算法详解 --(算法导论分治法求矩阵)...

    1 题目描述 2 思路分析 3 解法 4 小结 1 题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 2 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数 ...

  3. python矩阵的共轭转置_基础 | Python 下的矩阵操作

    关键词:线性代数 / 矩阵 / 运算 今天小编将详细介绍矩阵的运算规则与数学符号应用在矩阵上的含义,如同算数字的加减法需要了解计算公式的规则一样,矩阵的运算虽然与单纯数字运算相似,但其细节的相异处还需 ...

  4. 用python做乘法口诀表_使用python写乘法口诀表

    代码如下: def chengfab(n): #定义一个chengfab函数,参数为n for x in range(1,n): #遍历x for y in range(1,n): #内层嵌套遍历y ...

  5. python矩阵乘法菜鸟_Python中的几种矩阵乘法(转)

    一.  np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 2.代码 [code] import ...

  6. python矩阵乘法基础小结

    Python的numpy矩阵乘法相关: 1.直接对array之间使用表示进行点乘,维度较低的array_x1最高纬度(设为n维)的数字,必须与纬度较高array_x2对应维度上的数字相同.x1和x2第 ...

  7. python 矩阵乘法 跳过nan_奇怪的numpy矩阵运算bug

    记录一个昨晚调到4点的奇妙bug 昨晚把服务器调试正确的训练程序放到集群上跑,发现其中有个depth map转点云的函数结果不正确,正常结果点云坐标会非常小,最大值不会超过2,但是集群上数值有好几百. ...

  8. python 矩阵乘法

    一 np.dot() 同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. import numpy as np# 2-D ...

  9. python矩阵乘法

    原理: python中矩阵乘法,可以通过 NumPy 的np.dot()函数计算(乘积也称为点积). np.dot()接收两个NumPy数组作为参数,并返回数组的乘积.类似于数学中的两个矩阵相乘,A中 ...

  10. python怎么编程乘法口诀表_用python编写乘法口诀表的方法

    用python编写乘法口诀表的方法 发布时间:2020-08-25 11:46:35 来源:亿速云 阅读:60 作者:小新 用python编写乘法口诀表的方法?这个问题可能是我们日常学习或工作经常见到 ...

最新文章

  1. P1223 排队接水
  2. 三大框架开发时,spring配置文件出现异常
  3. Gradle of Android Example
  4. 用python实现TCP协议传输功能(服务端代码)
  5. 如何自己去写一个鼠标驱动_为什么要用哈密顿采样器(Hamiltonian Monte Carlo),以及如何自己写一个...
  6. php devel 5.3.3 26,php-5.3.27安装
  7. pycharm 中文_环境搭建:3.pycharm社区版安装配置
  8. (转)MapReduce中的两表join几种方案简介
  9. 网站不收录的原因和提高网站收录量的方法
  10. js实现下载excel
  11. 什么是Promise
  12. 武汉音乐学院计算机音乐作曲,武汉音乐学院作曲系6部学生作品入围2019年中国大学生计算机设计大赛决赛...
  13. upc Cafebazaar’s Chess Tournament 思维 + FFT
  14. 个人电脑秒变服务器 简单几步,你的电脑也可以成为服务器 (内网穿透)
  15. 【富文本】亿图思维导图MindMaster Pro限时赠送正版
  16. 导数求函数最大值和最小值习题
  17. 电路邱关源学习笔记——1.5电压源和电流源
  18. 图灵奖得主Geoffrey Hinton最新研究:利用神经网络对有关节三维模型进行估计的方法NASA
  19. 关联规则 置信度定义
  20. 艾伟:一个让人遗忘的角落--Exception(一)

热门文章

  1. 微擎不升级解决头像显示问题。
  2. springboot拦截异常信息发送邮件提醒
  3. 邮件标题乱码问题解决一例
  4. 禁止chrome浏览器自动填充表单的解决方案
  5. 【报告分享】巨量算数:疫情期间汽车专题研究洞察.pdf(附下载链接)
  6. 赛道二周冠分享:石头哥有些心里话要说一说
  7. SIGIR'21「微软」:强化学习过滤负样本噪声提升点击率
  8. 为什么BERT在商业环境碰壁?
  9. python数据库管理软件_数据库管理工具神器-DataGrip,可同时管理多个主流数据库[SQL Server,MySQL,Oracle等]连接 - Python社区...
  10. asp系统转换php系统时间函数,window_Asp常用通用函数之生成时间的整数,'函数名:GetMyTimeNumber()' - phpStudy...