동일한 작업을 수행하는 다른 라이브러리의 두 가지 다른 방법에 대한 질문이 있습니다. 선형 회귀 모델을 만들려고합니다.
다음은 OLS와 함께 statsmodel 라이브러리를 사용하는 코드입니다.
X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1)
x_train = sm.add_constant(X_train)
model = sm.OLS(y_train, x_train)
results = model.fit()
print "GFT + Wiki / GT R-squared", results.rsquared
이 글은 GFT + Wiki / GT R-squared 0.981434611923을 출력합니다
두 번째는 scikit learn 라이브러리 선형 모델 방법입니다.
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print 'GFT + Wiki / GT R-squared: %.4f' % model.score(X_test, y_test)
이 글은 GFT + Wiki / GT R-squared입니다 : 0.8543
그래서 내 질문은 두 방법 모두 R ^ 2 결과를 인쇄하지만 하나는 0.98로 인쇄되고 다른 하나는 0.85입니다.
내 이해에서 OLS는 교육 데이터 세트와 함께 작동합니다. 제 질문은
- OLS로 테스트 데이터 세트로 작업하는 방법이 있습니까?
- traning 데이터 세트 점수에 의미가 있습니까 (OLS에서는 테스트 데이터 세트를 사용하지 않았습니다)? 나의 과거 지식으로부터 우리는 테스트 데이터로 작업해야합니다.
- OLS와 scikit 선형 회귀의 차이점은 무엇입니까? 모델의 점수를 계산하기 위해 어떤 것을 사용합니까?
도움을 주셔서 감사합니다.