2017-11-18 21 views
0

私はPythonで関数を複製しようとしていますが、データフレーム内の複数の列を使って以下のコードを書くことができましたが、これをより効果的に行うPython回帰関数。関数の説明へのリンクです。進んで申し訳ありません本当に統計人。 :)python回帰関数は線形回帰曲線に使用する

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

それはバーの各セットのためのデータを近似するために最小二乗法を使用して線形回帰曲線と述べています。

入力y = close; 入力n = 20;

def x = x [1] + 1; (x、y)、(x、y)、(x、y)、(x、y)、y )-Sqr(Sum(x、n))); (x、y)/(n * Sum(Sqr(x)、n)* Sum(x、n)* Sum(x、y) )、n)-Sqr(Sum(x、n)));プロットイナーシャTS = a * x + b;

おかげでここ

を更新しました

はパンダの列と機能です。私は最初の生の計算ではxValueとyValue列を押し、以下に定義:あなただけのpythonで回帰を実行するための方法を探しているかどうかを

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)) 

答えて

0

それは本当にはっきりしないのか、アルゴリズムを自分でコーディングしたいです。

  1. あなたが回帰を行うためのパッケージをしたい場合は、あなたがあなた自身のアルゴリズムをコーディングする場合は、gradient descentで見ることができ、

    from sklearn import linear_model 
    linear_model.LinearRegression() 
    
  2. を使用してscikit-learn で見ることができます。あなたは教室でAndrew Ngのビデオを見ることができます - https://www.coursera.org/learn/machine-learning/lecture/GFFPB/gradient-descent-intuition。アルゴリズムをコード化することはかなり直感的であり、ステップは以下の通りである。

    i。コスト関数を定義する - これはOLS(最小二乗)に基づいており、

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

    II

    、のように見えています。各特徴またはjに対してコスト関数の偏微分をとる。ここで、Xは、n個の特徴のうちの1つがjである入力ベクトルである。

    iii。勾配降下を使用して特徴ベクトルを更新 -

theta = theta - alpha * (partial derivative) あなたはアンドリュー・ウのpapaperから、ここで詳細を見つけることができます:http://cs229.stanford.edu/notes/cs229-notes1.pdf

申し訳ありませんが、それはSO

+0

にラテックスを置くことは困難ですはいイム探しをパンダ内でインジケータを実際にコーディングする。私はそれをすることができたが、人はそれは醜いです! :)元のメッセージを更新しました。ありがとう。これをきれいにするパッケージ/機能があるかどうかを調べるだけです。 –