@pandas_udf-선형 회귀

다니엘 리바 자 나르디 니

누군가 나를 도울 수 있습니까?

선형 회귀를 수행하려면 두 그룹이 필요합니다.

예:

pdf = pd.DataFrame({'group_id':[1,1,1,2,2,2,3,3,3,3],
                    'sex':['M','M','F','F','M','F','M','F','F','M'],
                    'x':[0,1,2,0,1,5,2,3,4,5],
                    'y':[2,1,0,0,0.5,2.5,3,4,5,6]})
df = sqlContext.createDataFrame(pdf)


result_schema =StructType([
  StructField('group_id',DoubleType()),
  StructField('sex',StringType()),
  StructField('x',DoubleType())
 ])

@pandas_udf(result_schema, PandasUDFType.GROUPED_MAP)

def ols(df):
    group_id = df['group_id'].iloc[0]
    sex = df['sex'].iloc[0]
    y = df['y'].astype(int)
    X = df['x'].astype(int)
    X = sm.add_constant(X)
    model = sm.OLS(y, X).fit()
    
    
    return pd.DataFrame([[group_id] + [sex] + [model.params[1]]], columns=['group_id'] + ['sex'] + ['x'])


beta = df.groupby('group_id', 'sex').apply(ols)
beta.show()

반환 오류 :

PythonException : UDF에서 예외가 발생했습니다. 'IndexError : index out of bounds',

mck

점이 하나 뿐인 일부 그룹이있어 선형 회귀를 수행 할 수 없습니다. 함수에서이를 포착하기 위해 데이터 프레임의 행 수 확인을 추가하고 행 null이 하나만있는 경우 반환 할 수 있습니다 .

@pandas_udf(result_schema, PandasUDFType.GROUPED_MAP)
def ols(df):
    group_id = df['group_id'].iloc[0]
    sex = df['sex'].iloc[0]

    if len(df) == 1:
        return pd.DataFrame([[group_id] + [sex] + [None]], columns=['group_id'] + ['sex'] + ['x'])

    else:        
        y = df['y'].astype(int)
        X = df['x'].astype(int)
        X = sm.add_constant(X)
        model = sm.OLS(y, X).fit()
        return pd.DataFrame([[group_id] + [sex] + [model.params[1]]], columns=['group_id'] + ['sex'] + ['x'])


df.groupby('group_id', 'sex').apply(ols).show()
+--------+---+-------------------+
|group_id|sex|                  x|
+--------+---+-------------------+
|     2.0|  M|               null|
|     3.0|  F|                1.0|
|     1.0|  M|-1.0000000000000002|
|     1.0|  F|               null|
|     2.0|  F|0.39999999999999986|
|     3.0|  M| 0.9999999999999998|
+--------+---+-------------------+

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Pandas + sklearn 선형 회귀 실패

분류에서Dev

비선형 회귀

분류에서Dev

적응 형 선형 회귀

분류에서Dev

Python을 사용한 선형 회귀 (Pandas 및 Numpy)

분류에서Dev

For 루프의 선형 회귀

분류에서Dev

선형 회귀 기울기 행렬 계산 (상관 행렬과 유사)-Python / Pandas

분류에서Dev

ggplot의 회귀선

분류에서Dev

회귀선 그림

분류에서Dev

R의 다중 선형 회귀 모델

분류에서Dev

선형 회귀 구현 문제

분류에서Dev

선형 회귀-잘못된 출력

분류에서Dev

GEKKO 다변량 비선형 회귀

분류에서Dev

R에서 선형 회귀 수행

분류에서Dev

오픈 이력서의 선형 회귀?

분류에서Dev

선형 회귀 업데이트

분류에서Dev

R에 SVD 선형 회귀 적용

분류에서Dev

선형 회귀 수행 중 오류

분류에서Dev

선형 회귀 완전히 꺼짐

분류에서Dev

파이썬 선형 회귀 구현

분류에서Dev

선형 회귀 분석-행 롤링

분류에서Dev

statsmodel.formula.api python의 선형 회귀

분류에서Dev

Python에서 선형 회귀 구현

분류에서Dev

R을 사용한 로그 선형 회귀와 선형 회귀 비교

분류에서Dev

선형 / 비선형 회귀로 두 곡선 맞추기

분류에서Dev

ValueError : sklearn의 선형 회귀자를 Pandas 데이터 프레임 인스턴스에 맞추려고 할 때 matmul

분류에서Dev

선형 회귀, Tensorflow, 비선형 방정식, tf.contrib.learn

분류에서Dev

커널 회귀는 선형 커널 회귀와 동일합니까?

분류에서Dev

Scikit-learn : 선형 회귀는 직선이 아닙니다.

분류에서Dev

Chart.js에서 선형 회귀선을 그리는 방법