哪个python回归函数用于线性回归曲线

时间:2017-11-18 01:55:47

标签: regression

我试图在python中复制一个函数,并且能够使用数据框中的多个列来编写以下代码,但是想知道是否存在可以更有效地执行此操作的python回归函数。这是函数描述的链接。对不起,高级不是真正的统计人员。 :)

http://tlc.thinkorswim.com/center/reference/thinkScript/Functions/Statistical/Inertia.html

它表明它的线性回归曲线使用最小二乘法来近似每组柱的数据。

输入y =关闭; 输入n = 20;

def x = x [1] + 1; #上一个值+ 1

def a =(n * Sum(x * y,n) - Sum(x,n)* Sum(y,n))/(n * Sum(Sqr(x),n)-Sqr(Sum( x,n)));

def b =(Sum(Sqr(x),n)* Sum(y,n) - Sum(x,n)* Sum(x * y,n))/(n * Sum(Sqr(x)) ,n) - Sqr(Sum(x,n)));

plot InertiaTS = a * x + b;

由于

更新

这里是pandas列和函数。我首先定义了xValue和yValue列,然后是以下原始计算:

    df['ind1']= ((10 * (df['xValue']*df['ysValue']).rolling(10, min_periods=10).sum() - df['xValue'].rolling(10, min_periods=10).sum()*df['ysValue'].rolling(10, min_periods=10).sum())/ (10 * (df['xValue'] ** 2).rolling(10, min_periods=10).sum() - (df['xValue'].rolling(10, min_periods=10).sum())**2)) * df['xValue'] + (((df['xValue'] ** 2).rolling(10, min_periods=10).sum()*df['ysValue'].rolling(10, min_periods=10).sum() -  df['xValue'].rolling(10, min_periods=10).sum()*(df['xValue']*df['ysValue']).rolling(10, min_periods=10).sum())/(10 * (df['xValue'] ** 2).rolling(10, min_periods=10).sum() - (df['xValue'].rolling(10, min_periods=10).sum())**2))

1 个答案:

答案 0 :(得分:2)

目前还不清楚你是在寻找在python中执行回归的方法,还是想自己编写算法代码。

  1. 如果您想要一个包进行回归,可以查看scikit-learn 使用,

    from sklearn import linear_model
    linear_model.LinearRegression()
    
  2. 如果您想编写自己的算法代码,可以查看gradient descent。你可以看看Andrew Ng关于课程的视频 - https://www.coursera.org/learn/machine-learning/lecture/GFFPB/gradient-descent-intuition。对算法进行编码非常直观,步骤如下,

    我。定义成本函数 - 这是基于OLS(普通最小二乘)看起来像,

    J = 1/2 (h(x) - y ) ^2

    II。取每个特征或j的成本函数的偏导数。这里X是由n个特征组成的输入向量,其中一个特征是j。

    III。使用渐变下降更新特征向量 -

  3. theta = theta - alpha * (partial derivative) 您可以在Andrew Ng的papaper http://cs229.stanford.edu/notes/cs229-notes1.pdf

    中找到详细信息

    抱歉,很难将乳胶放在SO