如何在 scipy.optimize 中使用 fmin_cg 获得正确的尺寸

2024-01-11

我一直在尝试使用 fmin_cg 来最小化逻辑回归的成本函数。

xopt = fmin_cg(costFn, fprime=grad, x0= initial_theta, 
                                 args = (X, y, m), maxiter = 400, disp = True, full_output = True )

这就是我调用 fmin_cg 的方式

这是我的 CostFn:

def costFn(theta, X, y, m):
    h = sigmoid(X.dot(theta))
    J = 0
    J = 1 / m * np.sum((-(y * np.log(h))) - ((1-y) * np.log(1-h)))
    return J.flatten()

这是我的毕业生:

def grad(theta, X, y, m):
    h = sigmoid(X.dot(theta))
    J = 1 / m * np.sum((-(y * np.log(h))) - ((1-y) * np.log(1-h)))
    gg = 1 / m * (X.T.dot(h-y))
    return gg.flatten()

它似乎抛出这个错误:

/Users/sugethakch/miniconda2/lib/python2.7/site-packages/scipy/optimize/linesearch.pyc in phi(s)
     85     def phi(s):
     86         fc[0] += 1
---> 87         return f(xk + s*pk, *args)
     88 
     89     def derphi(s):

ValueError: operands could not be broadcast together with shapes (3,) (300,) 

我知道这和我的身材有关。但我似乎无法弄清楚。 我是菜鸟,所以我可能会犯一个明显的错误。

我已阅读此链接:

fmin_cg:由于精度损失,不一定能达到期望的误差 https://stackoverflow.com/questions/33853929/fmin-cg-desired-error-not-necessarily-achieved-due-to-precision-loss

但是,它似乎对我不起作用。

有什么帮助吗?


更新了 X、y、m、theta 的尺寸

(100, 3) ----> X

(100, 1) -----> y

100---->米

(3, 1) ----> 西塔


这就是我初始化 X,y,m 的方式:

data = pd.read_csv('ex2data1.txt', sep=",", header=None)                        
data.columns = ['x1', 'x2', 'y']                                                       
x1 = data.iloc[:, 0].values[:, None]                                                     
x2 = data.iloc[:, 1].values[:, None]                                                    
y = data.iloc[:, 2].values[:, None]
# join x1 and x2 to make one array of X
X = np.concatenate((x1, x2), axis=1)
m, n = X.shape

ex2data1.txt:

34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
.....

如果有帮助的话,我正在尝试用 python 重新编写 Andrew Ng 的 Coursera ML 课程的作业之一


最后,我弄清楚了我最初的程序中的问题所在。

我的 'y' 是 (100, 1) 并且 fmin_cg 期望 (100, )。一旦我压平我的“y”,它就不再抛出最初的错误。但是,优化仍然不起作用。

 Warning: Desired error not necessarily achieved due to precision loss.
     Current function value: 0.693147
     Iterations: 0
     Function evaluations: 43
     Gradient evaluations: 41

这与我在没有优化的情况下实现的效果相同。

我发现优化这个的方法是使用“Nelder-Mead”方法。我遵循了这个答案:scipy 未优化并返回“由于精度损失不一定实现所需的错误” https://stackoverflow.com/questions/24767191/scipy-is-not-optimizing-and-returns-desired-error-not-necessarily-achieved-due

Result = op.minimize(fun = costFn, 
                x0 = initial_theta, 
                args = (X, y, m),
                method = 'Nelder-Mead',
                options={'disp': True})#,
                #jac = grad)

此方法不需要“雅可比”。 我得到了我想要的结果

Optimization terminated successfully.
     Current function value: 0.203498
     Iterations: 157
     Function evaluations: 287
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 scipy.optimize 中使用 fmin_cg 获得正确的尺寸 的相关文章

  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用 Ansible playbook 中的 service_facts 模块检查服务是否存在且未安装在服务器中?

    我用过service facts检查服务是否正在运行并启用 在某些服务器中 未安装特定的软件包 现在 我如何知道这个特定的软件包没有安装在该特定的服务器上service facts module 在 Ansible 剧本中 它显示以下错误
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 向 Altair 图表添加背景实心填充

    I like Altair a lot for making graphs in Python As a tribute I wanted to regenerate the Economist graph s in Mistakes we
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 动态客户关系管理。子网格中完全自定义的 FetchXml

    我正在为帐户创建一个子网格 以按多个字段显示所有相关联系人 这是我试图设置的 fetch xml
  • 连接被拒绝的解决方法是什么:连接

    我正在尝试从另一个网站获取信息 当我尝试做的时候 URL url new URL theSite url getContent 它抛出一个Connection refused connect exception 这是否意味着该网站将不允许自
  • FormEditor 的“与编辑器链接”

    我正在寻找 与编辑器链接 的解决方案 但对于 FormEditor 而不是 ViewPart 如中所述http murygin wordpress com 2012 06 13 link eclipse view to editor htt
  • Boost::asio async_wait 处理程序签名

    我正在查看 boost asio 示例 我正在看实施例4 http www boost org doc libs 1 38 0 doc html boost asio tutorial tuttimer4 html 令人困惑的是 此示例中的
  • 如何防止结果集在连接关闭时失效?

    我想从执行查询并关闭连接的函数中传递结果集 但是 一旦其父 Connection 关闭 ResultSet 就会失效并抛出异常 java sql SQLException Operation not allowed after Result
  • 如何使用 TSQL 将属性添加到现有根 XML 节点?

    我已经用 SQL 构建了一些 XML declare requestXML xml set requestXML select dataXML for xml raw rtEvent 我现在的一般输出遵循与此类似的模式
  • 休息; VS 继续;与返回;

    我从以下网站下载了一份用 php 编写的免费新闻通讯Hotscripts com http hotscripts com 我更新了一些代码以添加新功能 但我看到了一些我不明白的东西 在代码中我看到 foreach if break else
  • Ionic 2 不生成 scss 源映射。 “main.css.map”包含“null”

    你能帮我理解为什么 Ionic 2 不生成 scss 源映射吗 在 ionicserve 之后 我导航到 www build 文件夹 有 main css map 但它包含 null 而不是生成的源映射 如何修复它 有人遇到过这个问题吗 您
  • 如何在react-router v6中使用element传递props?

    我正在尝试将 MainSection 组件重用于两个不同的目的 单个故事和所有故事 为了实现此目的 我想在转到该组件的渲染的路由中传递一个属性 home Home 是 true 或 false 我想根据该布尔值渲染 MainSection
  • 用户:使用selenium传递代理

    在程序中使用用户验证代理的最佳 最简单方法是什么 我目前有这个 但我需要在浏览器打开时填写用户名和密码 from selenium import webdriver PROXY 123 123 123 243 80 chrome optio
  • Android Webview 和 Facebook 登录不工作

    我遇到了问题WebView我正在开发的应用程序 我们有一个通过 android 显示的响应式网站WebView 该网站有一个使用 Facebook 登录选项 这在移动浏览器和网站本身上运行良好 每当我尝试使用WebView应用程序登录使用F
  • 为什么循环中的任务工厂打印超出循环索引?

    我正在学习在 C 中使用任务并行库 TPL 并编写了以下代码 您可以复制粘贴并运行它 using System using System Collections Generic using System Linq using System
  • 使用 PHP S3 类时出现 RequestTimeTooSkewed 错误

    这是我的第一个PHP项目 所以我真的一点也不了解PHP 我想做的是使用 PHP S3 类将文件上传到 S3 存储桶 一个示例代码片段昨天可以工作 但是当我今天再次开始使用它时 几乎完全相同的代码停止工作 现在我只收到 putObject 函
  • 如何测试 Braintree 交易退款?

    我正在尝试对 Braintree 交易退款进行测试 但遇到了问题 Braintree 的 API 仅允许您为已结算的交易发放退款 然而 在沙箱环境中创建的交易仅每 24 小时 结算 一次 因此 当我尝试在测试套件中退款时 退款总是被拒绝 因
  • NSPopupButton 中带有绑定的分隔符项

    的内容NSPopupButton绑定到一个NSArray字符串 我们如何通过绑定插入分隔符项目 The 字符串 就像在过去 经典时代一样 不起作用 即字面上显示为 菜单项 是否有任何带有标准 Cocoa 类和绑定的开箱即用的解决方案 这应该
  • CATextLayer旋转?

    这应该确实有效 但不是 CATextLayer textLayer CATextLayer layer textLayer string text textLayer setValue NSNumber numberWithDouble M
  • 如何在 Pygame 中插入滑块?

    我目前正在 Python 上进行物理模拟 使用 Pygame 模拟室内的气体云 我的问题是我无法在代码中插入工作滑块来更改参数的值 我有一个运行模拟的 运行时 循环 当我想在其中插入工作滑块时 模拟就会停止 我无法让模拟和滑块同时工作 下面
  • 为什么正则语言的补语仍然是正则语言?

    根据我的教科书 只要L1是正则语言 L1 A L1的补集就是正则语言 A 不是还包括上下文无关语言 上下文相关语言和递归可枚举语言吗 A L1 也将包括所有这些 不是吗 那怎么可能有规律呢 在有限状态机的表示下 我理解为什么补码仍然是常规语
  • 向静态 Azure 网站添加身份验证

    我们有一个 Azure 网站 托管一个静态站点 仅一些 HTML CSS Javascript 然后通过 AJAX 调用与我们的 Azure 移动服务进行通信 我们想向该站点添加一些非常简单的身份验证 只需静态用户名 密码就足够了 请推荐最
  • 如何在 scipy.optimize 中使用 fmin_cg 获得正确的尺寸

    我一直在尝试使用 fmin cg 来最小化逻辑回归的成本函数 xopt fmin cg costFn fprime grad x0 initial theta args X y m maxiter 400 disp True full ou