regressions.py 文件源码

python
阅读 37 收藏 0 点赞 0 评论 0

项目:neurotools 作者: michaelerule 项目源码 文件源码
def weighted_least_squares(X,Y,W):
    '''
    Initialize power law fit
    EPS = 1e-10
    use = (X>EPS)&(Y>EPS)
    weighted_least_squares(np.log(X+EPS)[use],np.log(Y+EPS)[use],1/(EPS+X[use]))

    Parameters
    ----------
    X: List of distances
    Y: List of amplitudes
    W: Weights for points 

    Returns
    -------
    result : object 
        Optimization result returned by scipy.optimize.minimize. See
        scipy.optimize documentation for details.
    '''
    X = np.float64(X)
    Y = np.float64(Y)
    def objective(ab):
        a,b=(a,b)
        return np.sum( W*(Y-(X*a+b))**2)
    a,b,_,_,_ = linregress(X,Y)
    result = minimize(objective,[a,b])
    if not result.success:
        print(result.message)
        warnings.warn('Optimization failed: %s'%result.message)
    return result
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号