inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 머신 러닝 회귀분석 질문 있습니다.

207

정충효

작성한 질문수 8

0

머신러닝으로 회귀분석을 하면 훈련데이터에서는 99퍼 테스트데이터 92퍼가 나오는데 딥러닝으로 모델을 만들어서 돌리면 loss가 2천만 이렇게 나오는데 머신러닝과 딥러닝 모델이 이상한지 아니면 데이터가 이상한지 모르겠습니다

머신러닝 모델

xgb_reg = xgb.XGBRegressor(booster="dart",random_state=0)
params = {"subsample" : uniform(0,1),
         "max_depth" : randint(3,10),
         "n_estimators" : randint(100,300),
           'learning_rate':uniform(0.01, 0.1),
                    "gamma": randint(0,5),}
xgb_reg_random = RandomizedSearchCV(xgb_reg,params,n_jobs=-1,n_iter=100,scoring='neg_root_mean_squared_error',random_state=0,cv=kf)

딥러닝 모델

scaled_deep_train.shape,scaled_deep_test.shape
# ((180, 21), (45, 21))

scaled_deep_train = np.reshape(scaled_deep_train,(180,21,1))
scaled_deep_test = np.reshape(scaled_deep_test,(45,21,1))
# ((180, 21,1), (45, 21,1 ))

model.add(keras.layers.Conv1D(16,kernel_size=3, activation="relu",padding="same",input_shape = (21,1)))

model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(100,activation="relu"))


model.add(keras.layers.Dense(1))
adagrad= keras.optimizers.Adagrad(learning_rate=1e-5)
model.compile(optimizer = sgd,loss = "mean_squared_error",metrics=["mse"])
history = model.fit(scaled_deep_train,y_train, epochs=200,batch_size=8
                    ,validation_split=0.2,callbacks=[early_stopping_cb])

이런식으로 구성되어있습니다.

파이썬 딥러닝 케라스 머신러닝

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

정충효님, 회귀분석 관련 문제로 고민이 많으시군요. 머신러닝에서 상당히 준수한 결과를 얻은 것에 비해 딥러닝에서 매우 높은 loss가 나오는 것은 여러 요소 때문일 수 있습니다. 첫째, 딥러닝 모델의 구조나 파라미터 설정이 적절하지 않을 수 있습니다. 예를 들어, 학습률(learning rate)이 너무 낮거나 높아서 모델이 제대로 학습하지 못하는 경우가 있죠. 또한 초기 가중치 설정이나 활성화 함수의 선택 등이 결과에 영향을 줄 수 있습니다. 둘째, 오버피팅이 발생했는지 확인해 보세요. 적은 데이터셋에 대해 모델이 복잡하다면 훈련 데이터에 과적합되어 테스트 데이터에서 좋은 성능을 내지 못할 수 있습니다.

모델 컴파일 부분에 ‘sgd’ 옵티마이저를 사용하신 것으로 보입니다만, 이 부분이 ‘adagrad’로 지정되어 있어야 할 것 같습니다. 이 부분을 한 번 확인해 보세요. 또한 학습률이 매우 낮게 설정되어 있는데, 때로는 너무 작은 학습률로 인해서 학습이 잘 이루어지지 않을 수도 있습니다. 이에 대한 조정도 고려해 보시는 것이 좋겠습니다.

데이터 전처리 과정도 중요합니다. 스케일링이 적절히 이루어졌는지, 이상치 처리는 어떻게 되었는지 등을 다시 확인해보세요. 만약 모델과 데이터 모두에 문제가 없다고 생각되면, 다양한 네트워크 구조를 실험해보거나 하이퍼파라미터 튜닝을 통해 성능을 개선해보시는 것을 추천드립니다.

마지막으로 딥러닝 모델에서는 데이터의 양이 매우 중요한데, 현재 사용 중인 데이터셋이 충분히 큰가도 고려해보셔야 합니다. 데이터양이 충분하지 않다면 데이터 보강(augmentation), 전이 학습(transfer learning) 등을 활용해 볼 수 있습니다.

딥러닝 모델의 성능 향상에는 다양한 방법이 있으니 다양한 시도를 해보시면서 문제를 해결해 나가시길 바랍니다.

수업노트가 어디에 있나요?

0

9

1

[긴급요청] 28강 동영상 전체에 오디오가 잘못들어가있습니다.

0

10

1

실제 계좌 잔고 및 테스트중에

1

27

4

설치 및 설정 가이드 노션 자료는 없나요 ?

0

17

2

실기시험 제출관련

0

139

2

6.20 작업형 2 과적합

0

148

3

코딩팡 장업형2 베이스 라인 인코딩 종류 질문

0

47

2

로지스틱회귀, 회귀

0

47

2

회귀 문제를 풀때 질문입니다.

0

53

1

불균형 처리 후 성능이 더 낮아졌다면,

0

61

2

실기 체험 제2유형 에러 문의

0

61

1

LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요

0

48

2

안녕하세요

1

35

3

3번문제 등분산 가정

0

46

2

작업형3 target 형 변환 질문

0

34

2

[작업형1] 연습문제 섹션1 ~ 10 의 section4

0

36

3

원핫인코딩과 레이블 인코딩에서 concat

0

57

2

제2유형 질문입니다.

0

46

2

C()

0

44

2

작업형 2에서 strafity 적용 유무

0

51

2

수강 기간 연장 가능 여부 문의드립니다.

0

59

1

ols

0

43

2

2유형 작성관련 질문(일반 심화)

0

39

2

2유형 작성관련 질문

0

40

2