2017-11-18 7 views
0

저는 파이썬에서 함수를 복제하려고 시도하고 있으며 데이터 프레임의 여러 열을 사용하여 다음을 코딩 할 수 있었지만 더 효과적으로 수행 할 수있는 파이썬 회귀 함수가 있는지 궁금해하고있었습니다 . 여기에 함수에 대한 설명 링크가 있습니다. 진지하게 진지하게 유감스럽게도 통계 남자. :)파이썬 회귀 함수가 선형 회귀 곡선에 사용

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

IT는 최소 제곱 법을 사용하여 선형 회귀 곡선 막대들의 각 세트에 대한 데이터를 근사하는 것을 말한다.

입력 y = 닫기; 입력 n = 20;

def x = x [1] + 1; (x * y, n) * Sum (y, n) */(n * Sum (Sqr (x), n) * 이전 값 + 1

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

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

플롯 InertiaTS = a * x + b;

덕분에 여기

업데이트

는 팬더 열 및 기능입니다. 내가 먼저 원시 계산이다가 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)) 

답변

0

정말 분명하지 않다 또는 당신은 알고리즘 자신을 원하는 코드를 . 당신이 패키지는 회귀 분석을 수행하려는 경우 당신이 당신의 자신의 알고리즘을 코딩 할 경우

  1. , 당신은 당신이 gradient descent 볼 수, 사용 scikit-learn 에서

    from sklearn import linear_model 
    linear_model.LinearRegression() 
    
  2. 볼 수 있습니다. 너는 coursera에 Andrew Ng에 의하여 영상을 볼 수 있는다 - https://www.coursera.org/learn/machine-learning/lecture/GFFPB/gradient-descent-intuition. 알고리즘을 코드화하는 것은 상당히 직관적이며 단계는 다음과 같습니다.

    i. ,

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

    II를 이것은 OLS (정규 방정식)을 기반으로하며 모양 - 비용 함수를 정의한다. 각 기능 또는 j와 비용 함수의 편미분을 취하십시오. 여기서 X는 n 개의 특징 중 하나가 j 인 입력 벡터이다.

    iii.그라데이션 하강을 사용하여 특징 벡터를 업데이트 -

theta = theta - alpha * (partial derivative) 당신은 앤드류 응의 papaper에서 여기에 세부 사항을 찾을 수 있습니다 http://cs229.stanford.edu/notes/cs229-notes1.pdf

죄송합니다, 그렇게

+0

에 라텍스를 넣어 어려운 예 메신저 찾고 팬더 내에서 지표를 실제로 코딩하는 것. 나는 그것을 할 수 있었지만 사람은 못생긴 것이다! :) 원본 메시지를 업데이트했습니다. 감사. 이 문제를 해결할 패키지/기능이 있는지 찾고 있습니다. –