문제1

다음 코드는 다항 회귀 분석(polynomial regession)을 위한 것이다. 코드에서 빠진 부분을 완성하세요.


In [1]:
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline

X = np.sort(np.random.rand(100))
y = np.cos(1.5 * np.pi * X) + np.random.randn(100) * 0.1
X = X[:, np.newaxis]

polynomial_features = PolynomialFeatures(degree=4);
linear_regression = LinearRegression();

#빠진 부분
model = Pipeline([("polynomial_features", polynomial_features), ("linear_regression", linear_regression)])

model.fit(X, y)


Out[1]:
Pipeline(steps=[('polynomial_features', PolynomialFeatures(degree=4, include_bias=True, interaction_only=False)), ('linear_regression', LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False))])

In [5]:
Pipeline([("polynomial_feafures", polynomial_features)])


Out[5]:
Pipeline(steps=[('polynomial_feafures', PolynomialFeatures(degree=4, include_bias=True, interaction_only=False))])

문제2

과최적화(overfitting)에 관한 사항 중 틀린 것은?

  • 모형 파라미터의 차수가 감소할수록 발생하기 쉬워진다. => 증가할수록 발생하기 쉬워짐

이건 전부 맞는 말

  • 다중공선성(multicollinearity)는 과최적화와 유사한 이유로 발생한다.
  • 동일한 표본 데이터에 대해 유사한 오차를 가지는 가중치가 복수개 존재하기 때문에 발생한다.
  • 과최적화된 모형에서는 샘플이 조금만 변화해도 결과가 크게 달라진다.