标签: least-squares

sklearn上的Lasso不会收敛

当我运行类似的东西

import numpy
from sklearn import linear_model
A= #something
b= #something
clf=linear_model.Lasso(alpha=0.015, fit_intercept=False, tol=0.00000000000001,
          max_iter=10000000000000, positive=True)
clf.fit(A,b)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

usr/local/lib/python2.7/dist-packages/scikit_learn-0.14.1-py2.7-linux-x86_64.egg/
sklearn/linear_model/coordinate_descent.py:418: UserWarning: Objective did not
converge. You might want to increase the number of iterations
' to increase the number of iterations')
Run Code Online (Sandbox Code Playgroud)

有趣的是,A从来没有排名低效.(我认为)

python machine-learning least-squares scikit-learn

9
推荐指数
2
解决办法
1万
查看次数

在没有拦截的情况下执行戴明回归

我想执行Deming回归(或任何等效的回归方法,包括X和Y变量的不确定性,例如York回归).

在我的应用程序中,我有一个非常好的科学理由来故意将拦截设置为零.但是,我无法找到将其设置为零的方法,无论是在R包中deming,当我-1在公式中使用时都会出错:

df=data.frame(x=rnorm(10), y=rnorm(10), sx=runif(10), sy=runif(10))
library(deming)
deming(y~x-1, df, xstd=sy, ystd=sy)
Error in lm.wfit(x, y, wt/ystd^2) : 'x' must be a matrix
Run Code Online (Sandbox Code Playgroud)

在其他包(如mcr::mcregIsoplotR::yorkMethComp::Deming)中,输入是两个向量x和y,因此我无法输入模型矩阵或修改公式.

你对如何实现这个有任何想法吗?谢谢.

regression r linear-regression least-squares coefficients

9
推荐指数
1
解决办法
279
查看次数

scipy中最小二乘函数的雅可比行列式的方法签名

任何人都可以提供一种提供雅可比到的一个例子最小二乘功能scipy

我无法弄清楚他们想要的方法签名 - 他们说它应该是一个函数,但很难找出这个函数应该接受的输入参数.

python numpy scipy least-squares

8
推荐指数
1
解决办法
3036
查看次数

球面到点的线性最小二乘拟合

我正在寻找一种算法来找到点云和球体之间的最佳拟合.

也就是说,我想尽量减少

公式http://img855.imageshack.us/img855/6033/codecogseqn.gif

其中C是球体的中心,r是半径,每个P是我的n个点中的一个点.变量显然是Cx,Cy,Czr.在我的情况下,我可以预先获得已知的r,只留下C的组件作为变量.

我真的不想使用任何类型的迭代最小化(例如牛顿方法,Levenberg-Marquardt等) - 我更喜欢一组线性方程或明确使用SVD的解决方案.

algorithm 3d least-squares

8
推荐指数
1
解决办法
4451
查看次数

需要使用chebyshev多项式基拟合多项式

我已经使用polyfitmatlab中的函数将线性最小二乘多项式拟合到数据中.从我读到的,这使用标准多项式基础(单项式基础).我已经读过使用切比雪夫多项式基础来拟合导致更大的数值稳定性所以我想这样做.matlab有这个选项吗?

matlab curve-fitting polynomial-math least-squares

8
推荐指数
2
解决办法
1万
查看次数

将通过原点(0,0)的线拟合到数据

我有一组点(x,y),我需要找到使用MATLAB通过原点的最佳拟合线.

algorithm matlab numerical curve-fitting least-squares

8
推荐指数
1
解决办法
1万
查看次数

Lorentzian scipy.optimize.leastsq适合数据失败

自从我参加Python演讲以来,我想用它来拟合我的数据.虽然我现在已经尝试了一段时间,但我仍然不知道为什么这不起作用.

我想做什么

从子文件夹中获取一个接一个的数据文件(此处称为'Test'),稍微转换数据并使用Lorentzian函数拟合.

问题描述

当我运行下面发布的代码时,它不适合任何东西,只是在4次函数调用后返回我的初始参数.我想缩放数据,以玩耍ftolmaxfev一遍又一遍地检查Python文档后,但没有好转.我也尝试将列表更改为numpy.arrays明确,以及给出问题的解决方案scipy.optimize.leastsq返回最佳猜测参数,而不是新的最佳拟合,x = x.astype(np.float64).没有得到改善.奇怪的是,对于少数选定的数据文件,这些相同的代码在某些时候起作用,但对于大多数人来说,它从未这样做过.它绝对可以装,因为Levenberg-Marquard装配程序在Origin中给出了相当好的结果.

有人能告诉我出了什么问题或指出替代方案......?

import numpy,math,scipy,pylab
from scipy.optimize import leastsq
import glob,os
for files in glob.glob("*.txt"):
    x=[]
    y=[]
    z=[]
    f = open(files, 'r')
    raw=f.readlines()
    f.close()
    del raw[0:8]       #delete Header
    for columns in ( raw2.strip().split() for raw2 in raw ):  #data columns
        x.append(float(columns[0]))
        y.append(float(columns[1]))
        z.append(10**(float(columns[1])*0.1)) #transform data for the fit
    def lorentz(p,x):
        return (1/(1+(x/p[0] - 1)**4*p[1]**2))*p[2]
    def errorfunc(p,x,z):
        return lorentz(p,x)-z

    p0=[3.,10000.,0.001]

    Params,cov_x,infodict,mesg,ier = leastsq(errorfunc,p0,args=(x,z),full_output=True)
    print Params
    print …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy least-squares data-fitting

8
推荐指数
1
解决办法
1万
查看次数

使用lm()的线性回归 - 结果令人惊讶

我使用函数对我拥有的数据进行了线性回归lm.一切正常(没有错误信息),但我对结果感到惊讶:我的印象是R"错过"一组积分,即截距和斜率不是最合适的.例如,我指的是坐标x = 15-25,y = 0-20处的点群.

我的问题:

  • 是否有一个函数来比较拟合与"预期"系数和"lm计算"系数?
  • 编码时我犯了一个愚蠢的错误,导致lm这样做吗?

以下是一些答案:x和y的附加信息

x和y都是疾病症状的视觉估计.两者都存在同样的不确定性. 数据图,具有线性回归和预期结果的预测

数据和代码在这里:

x1=c(24.0,23.9,23.6,21.6,21.0,20.8,22.4,22.6,
     21.6,21.2,19.0,19.4,21.1,21.5,21.5,20.1,20.1,
     20.1,17.2,18.6,21.5,18.2,23.2,20.4,19.2,22.4,
     18.8,17.9,19.1,17.9,19.6,18.1,17.6,17.4,17.5,
     17.5,25.2,24.4,25.6,24.3,24.6,24.3,29.4,29.4,
     29.1,28.5,27.2,27.9,31.5,31.5,31.5,27.8,31.2,
     27.4,28.8,27.9,27.6,26.9,28.0,28.0,33.0,32.0,
     34.2,34.0,32.6,30.8)

y1=c(100.0,95.5,93.5,100.0,98.5,99.5,34.8,
     45.8,47.5,17.4,42.6,63.0,6.9,12.1,30.5,
     10.5,14.3,41.1, 2.2,20.0,9.8,3.5,0.5,3.5,5.7,
     3.1,19.2,6.4, 1.2, 4.5, 5.7, 3.1,19.2, 6.4,
     1.2,4.5,81.5,70.5,91.5,75.0,59.5,73.3,66.5,
     47.0,60.5,47.5,33.0,62.5,87.0,86.0,77.0,
     86.0,83.0,78.5,83.0,83.5,73.0,69.5,82.5,78.5,
     84.0,93.5,83.5,96.5,96.0,97.5)   



## x11()
plot(x1,y1,xlim=c(0,35),ylim=c(0,100))

# linear regression
reg_lin=lm(y1 ~ x1)
abline(reg_lin,lty="solid", col="royalblue")
text(12.5,25,labels="R result",col="royalblue", cex=0.85)
text(12.5,20,labels=bquote(y== .(5.26)*x - .(76)),col="royalblue", cex=0.85)

# result I would have imagined
abline(a=-150,b=8,lty="dashed", col="red")
text(27.5,25,labels="What I think is better",col="red", cex=0.85)
text(27.5,20,labels=bquote(y== .(8)*x - .(150)),col="red", cex=0.85)
Run Code Online (Sandbox Code Playgroud)

r orthogonal linear-regression least-squares lm

8
推荐指数
2
解决办法
1118
查看次数

MATLAB中阈值内的最小二乘最小化

用于MATLAB 的cvx套件可以解决下面的(看似无辜的)优化问题,但对于我正在使用的大型完整矩阵来说,它相当慢.我希望这是因为使用cvx是过度的,并且问题实际上有一个分析解决方案,或者巧妙地使用一些内置的MATLAB函数可以更快地完成这项工作.

背景:它是公知的,这两个x1=A\bx2=pinv(A)*b解决最小二乘问题:

minimize norm(A*x-b)
Run Code Online (Sandbox Code Playgroud)

区别于此norm(x2)<=norm(x1).事实上,这x2解决问题的最小规范解决方案,因此norm(x2)<=norm(x)对于所有可能的解决方案x.

定义D=norm(A*x2-b)(等效D=norm(A*x1-b)),然后x2解决问题

minimize norm(x)
subject to
norm(A*x-b) == D
Run Code Online (Sandbox Code Playgroud)

问题:我想找到解决方案:

minimize norm(x)
subject to
norm(A*x-b) <= D+threshold
Run Code Online (Sandbox Code Playgroud)

换句话说,我不需要norm(A*x-b)尽可能小,只要在一定的容忍范围内.我想最小范数解x的是得到A*xD+thresholdb.

我无法在网上或手工找到问题的解析解(比如在经典的最小二乘问题中使用伪逆).我一直在搜索诸如"具有非线性约束的最小二乘"和"具有阈值的最小二乘"之类的东西.

任何见解都会非常感激,但我想我的真正问题是:在MATLAB中解决这个"阈值化"最小二乘问题的最快方法什么?

optimization matlab linear-algebra least-squares cvx

8
推荐指数
1
解决办法
273
查看次数

加权最小二乘估计的函数

R是否具有加权最小二乘函数?具体来说,我正在寻找能够计算拦截和斜率的东西.

数据集

  1. 1 3 5 7 9 11 14 17 19 25 29
  2. 17 31 19 27 31 62 58 35 29 21 18
  3. 102153 104123 96564 125565 132255 115454 114555 132255 129564 126455 124578

因变量是数据集3,数据集1和2是自变量.

r least-squares

7
推荐指数
2
解决办法
2万
查看次数