Lab3. Normal Equation 코드 관련 문의드립니다.

18.08.09 00:15 작성 조회수 92

0

아래와 같이 작성하여 Lab 설명 내용대로 테스트해보면

결과는 테스트 내용과 동일하게 나옵니다.

헌데, 퀴즈를 제출하면 모두 Fail로 표시되어 문의드립니다.

class LinearRegression(object):

def __init__(self, fit_intercept=True, copy_X=True):

self.fit_intercept = fit_intercept

self.copy_X = copy_X

self._coef = None

self._intercept = None

self._new_X = None

def fit(self, X, y):

self.X = np.array(X)

self.y = np.array(y).reshape(-1, 1)

if self.fit_intercept == True:

self.X = np.concatenate((np.ones((len(self.X), 1)), np.array(self.X).reshape(len(self.X), -1)), axis=1)

self._intercept = np.linalg.inv(self.X.T.dot(self.X)).dot(self.X.T).dot(y)[0]

self._coef = np.linalg.inv(self.X.T.dot(self.X)).dot(self.X.T).dot(y)[1:]

return self

def predict(self, X):

self.X = np.array(X)

if self.fit_intercept == True:

self.X = np.concatenate((np.ones((len(self.X), 1)), np.array(self.X).reshape(len(self.X), -1)), axis=1)

return self.X.dot(np.concatenate((np.array([self._intercept]), self._coef)).reshape(-1, 1))

@property

def coef(self):

return self._coef

@property

def intercept(self):

return self._intercept

답변 2

·

답변을 작성해보세요.

0

Sunouk Mun님의 프로필

Sunouk Mun

2020.03.08

X 를 매트릭스로 만드셔야 되는데 Y를 매트릭스로 만드신것 같네요.

그리고  self._intercept = np.linalg.inv(self.X.T.dot(self.X)).dot(self.X.T).dot(y)[0]

여기서 X.T * Y 를 하실때 () 를 치셔야 따로따로 곱해지지않고 둘이 곱해진상태에서 X.T * X 를 곱해지는것 같아요.

그 외에는 딱히 제가 찾을수 있는게 없어보이네요

0

저희가 따로 Lab assignment에 대해서는 답을 드리진 않습니다. 혹시 문제가 지속되고 있으신가요?