-
카테고리
-
해결 여부
미해결
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
답변을 작성해보세요.
0
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
답변 2