책도 구글링한 자료들도 매번 학습 데이터로 모델을 생성후 평가를 진행한다 라고 나와있는데 그럼 모델을 매번 만드는 게 아니라는 거네 - dc App
tpptpp(tpptpp)2023-02-06 11:04
답글
ㅇㅇ 모델은 만들어놓고 k fold로 성능 평가
익명(118.235)2023-02-06 11:05
답글
그럼 평가받는 모델은 어떤걸 기준으로 해서 만드는거?? 난 학습데이터랑 평가데이터 나눈걸로 모델 만드는걸로 알았는데 이걸로는 평가만 하는거라니까... - dc App
tpptpp(tpptpp)2023-02-06 11:09
답글
알려줘서 고마워!! - dc App
tpptpp(tpptpp)2023-02-07 01:29
cross validation에 대해서 조금 오해가 있는거 같은데 예를 들어 linear regression으로 모델을 만들었다 치면 평균적으로 linear regression의 정확도가 이 정도이다 말해주는 거. Test-validation set을 나누는 이유는 당연히 모든 데이터로 학습해서 모델 만들고 평가하면 정확도를 신뢰하기 어려우니까 그렇게 하는 거고.
ㅌㅂ(67.218)2023-02-06 13:22
답글
음 그러면 모델 생성 및 학습은 cv랑 다른 과정에서 이루어지는거 맞어?? - dc App
tpptpp(tpptpp)2023-02-06 13:51
답글
나같은 경우 cv로 모델, 알고리즘 평가한 다음에 선택한 알고리즘 가지고 모든 데이터로 학습시킴. 근데 나도 배우는 입장이라 최종 모델 만드는 건 잘 모르겠음. 아마 여기 고수들 많아서 잘 알려주지 않을려나 ㅋㅋ
ㅌㅂ(67.218)2023-02-06 13:58
답글
최종모델은 걍 하이퍼파라미터 조정해서 valid 제일 높은 모델쓰는거아님?
익명(118.235)2023-02-06 14:09
답글
알려줘서 고마워용!! - dc App
tpptpp(tpptpp)2023-02-07 01:29
k개의 fold별 체크포인트 다 저장해서 쓰는디 - dc App
Cytrus(minhyoo1)2023-02-06 14:43
답글
더 모르겠어 ㅠㅠ - dc App
tpptpp(tpptpp)2023-02-06 15:04
train(시험 공부하는 8반학생 학생30명): test(모의고사), 1-fold교차검증(학생 1명씩 돌아가면서 나머지 29명한테 문제내줌--> 점수평균이 8반이라는 모델의 훈련성능) - dc App
익명(175.192)2023-02-06 17:47
답글
그 알고리즘 자체는 이해가 되는데 내가 궁금한건 모델의 훈련 성능의 평균과는 별개로 모델 자체가 검증과정 동안 매번 새로 만들어 지는지 아니면 검증 이전에 train test 셋 나눠놓고 모델 만든 후에 k fold 교차 검증으로 '검증' 하여 성능만 구하는건지 궁금해서 ㅠㅠ - dc App
tpptpp(tpptpp)2023-02-06 17:53
답글
모델은 훈련성능 같은 단순한 수치가 아니니 평균 낼수는 없으니까... - dc App
tpptpp(tpptpp)2023-02-06 17:54
답글
위 예시에서 30명이 하나의 모델이고 train:test나눴던것처럼 train도 1:29로 나눠서 29명끼리 모형을만드는거야 그리고 1명한테 테스트받으면 점수가나오고 그렇게 반복해서 30개의 점수를 평균내면 곧 30명모델의 성능인거지 - dc App
익명(175.192)2023-02-06 18:41
답글
검증으로 30명의 성능을 구하는게 목적이고 그 검증과정에서 (29명)인 모형×30개가 새로 만들어지는거도 맞고. 궁금한게 이것도아니라면 어디서 오해가있는지 잘 모르겠다.. - dc App
익명(175.192)2023-02-06 19:01
답글
후자임
익명(118.235)2023-02-06 19:20
답글
바로 그 모델이 30개 만들어진다는 부분 ㅇㅇ 만약 학습 후의 8반이라는 모델한테 수능데이터를 가져와서 풀게 했을 때 8반은 수능데이터를 풀어낼 거 아냐?
이 때 수능데이터가 어떤 알고리즘을 통해 계산되는지 모르겠어 ㅇㅇ 교차검증에서 나온 모델이 30개인데 30개 모델에 전부 대입했을 때 수능 문제에 대합 답 또한 다 다르게 나올거 아냐?
요약해서 수능이라는 새 피쳐 데이터에 대해 이전에 학습된 모델이 예측한 라벨값이 나올텐데 이 라벨값이 어떤 방식으로 나오는지 모르겠어 ㅇㅇ 이전 검증과정에서 모델은 30개 만들어지는데 새로 예측한 라벨셋은 1개일거 아냐? - dc App
tpptpp(tpptpp)2023-02-06 20:51
답글
ㄴㄴ 후자면 이해가 쉽게 될텐데 책도 그렇고 구글링 해도 k번 모델을 만들어서 평가한다 라는 항목이 반복적으로 나오니까... - dc App
tpptpp(tpptpp)2023-02-06 20:52
답글
30개가 또다른 새로운 모델로 탄생되는게아니라 오로지 8반(1개의 모델)의 실력을 평가하기위해 train set만 가지고는 평가를해볼수없으니(test set은 훈련에 쓰이면 안되니까) 해결책으로 나온방법이 29명씩 무리지어서 돌아가면서 나머지 1명이 '임시로' 선생이되고 나머지를 평가를 해보는거야 8반에대한 '훈련'성능점수를 그렇게 추출 - dc App
익명(175.192)2023-02-06 21:56
답글
하고 이제 8반 30명이 분리시켜놨던 test set(9월 모의고사)를 보면 '테스트'성능이 나오는거지 훈련성능과 테스트성능이 차이가크면 30명끼리공부했던건 엉뚱한공부를 자기들끼리한것이고 차이가없다면 시험준비를 올바르게 잘한것이고. 수능데이터는 실전of실전 인것이야 (훈련된 모델을 실제로 런칭시켜보는것 - dc App
익명(175.192)2023-02-06 22:03
답글
그니까 결국 30개모델은 '임시로' 자기들실력을 대략 알고싶어서 한명씩돌아가면서 선생역할하는과정에서 생긴거고 이과정이끝난후 나온30개 점수를 평균내면 8반의실력을 나타낼수있는 하나의 수치가나오는거지 - dc App
익명(175.192)2023-02-06 22:11
답글
따라서 교차검증이끝나면 모델은 8반이라는 모델 하나만 남고 하나의 실력점수와함께 훈련이끝난다. - dc App
익명(175.192)2023-02-06 22:50
답글
긴 답변 고마워 ㅋㅋㅋㅋ 거의 다 이해가 된거 같아 마지막으로 딱 하나만 이해하면 될거 같은데 ㅇㅇ내가 책보고 구글링하고 너 포함 윗 사람들 설명 듣고 이해한건 다음과 같아처음에 train이랑 test 데이터로만 나눠 ㅇㅇ test set을 검증에 사용할 시에 발생할 과적합 문제로 인해 절대 건들면 안되니까 train set에서 검증후 튜닝까지 해결 해야함 ㅇㅇ 그렇지만 train set으로 모델 만들고 이걸로 검증까지 하면 정확도 1이 나와버리는 답정너 모델이 만들어짐 ㅇㅇ 따라서 train 데이터 안에서 검증데이터를 다시 나눔 ㅇㅇ 그렇지만 이렇게 되면 적은 데이터 수와 오직 하나의 검증 데이터로 인해 모델이 정확도가 약해짐. - dc App
tpptpp(tpptpp)2023-02-07 00:09
답글
따라서 여기에 k fold 교차검증을 사용하여 k번 검증 후 각각의 모델의 하이퍼 파라미터 값을 추출함 ㅇㅇ
이를 통해 여기서 평균을 내든 택 1을 하든 최적의 하이퍼 파라미터 값을 찾아서 모델을 튜닝함 ㅇㅇ
이 모델에 맨 처음에 나눈 테스트 데이터를 넣어서 최종 성능 평가후 만족할 만큼 나오면 실전 배치라고 이해했는데 맞는지 물어봐도 될까...?
줄넘기기 안되어서 ㅇㅇ 붙여서 씀.... - dc App
tpptpp(tpptpp)2023-02-07 00:13
답글
처음엔 모델 만들고 교차 검증 하는걸로 이해했는데 지금은 교차 검증을 통해 만든 k개의 모델을 통해 최적의 모델을 만든다라고 이해하는 중 - dc App
tpptpp(tpptpp)2023-02-07 00:17
답글
하이퍼파라미터는 평균내서 택1을 하는게아니구 위 학급 예시가 찰떡이라 한번 더 예를들면, 모델 세부튜닝은 모델에필요한 파라미터들을 조정해보면서 매번 CV로 점수를 매기는거야 (oo고등학교, 학년파라미터:[1,2,3] , 반파라미터:[1,2,3,4,5,6,7,8] ) 이제 1-1반부터...3-8반까지 파리미터를 바꿔가면서 전부 점수를 매 - dc App
익명(175.192)2023-02-07 00:44
답글
매기는데 이제야 비로소 위에서 8반예시 처럼 점수를 매기는거야 8반안에서 지들끼리 문제내고 답맞추면서 8반의 실력:30점 뭐 이런식으로. 1-1부터 3-8까지 각 학급이 전부 CV를통해 점수가 책정이되면 그중 점수가 가장좋은 (ex.2학년5반) 이 나오겠지? 그럼 최적의 파라미터는 학년:2 반:5 이렇게 세부튜닝으로 정할수있는거야. - dc App
익명(175.192)2023-02-07 00:49
답글
어.... 그럼 여전히 첫 모델에 관한 이해가 해결이 되지 않는데....처음에 train 데이터 전체로 모델을 만들고 이후에 교차 검증을 해서 훈련 성능을 평가하는거야...? - dc App
tpptpp(tpptpp)2023-02-07 00:53
답글
예시가 헷갈릴수있겠네 위에 예시에서 train set를 모든 학급에 똑같이 제공되는 문제집이라생각해봐. 2학년 8반(많은 파라미터 조합중 생성된 하나의 모델) 학생들은 열심히 문제집을풀고, 서로돌아가면서 임시로 선생역할을하면서 2학년 8반을 대표하는 점수를 만든다. 이걸 학년과 반을 바꿔가면서 제일 실력좋은 학급을 뽑으려는게 모델 세부튜닝 - dc App
익명(175.192)2023-02-07 01:09
답글
교차검증은 반안에서만 이뤄지는거야 모델세부튜닝을 할지안할지는 분석가가 결정하는거고 2학년5반이 제일 실력좋은데 튜닝을안해보면 그냥 2학년 8반애들만데리고 수능은 전부다 치는거니까 골든벨이라고하자 - dc App
익명(175.192)2023-02-07 01:13
답글
2학년 8반애들만 데리고 골든벨나가는거지. 계속 폰으로 쓰려니 힘들다ㅋㅋ - dc App
익명(175.192)2023-02-07 01:15
답글
아 그러니까 2학년 8반 학생들은 train set이라는 문제집을 풀면서 모델이 된거고 얘네가 반 안에서 교차검증을 통해 자신들의 대푯값, 즉 반 점수를 내고 실제 test set 이라는 모의고사를 풀어서 나온 점수가 실제 반 점수와 가까울수록 좋은 모델이라고 판단한다고 할 수 있는거지?? - dc App
tpptpp(tpptpp)2023-02-07 01:24
답글
yes yes - dc App
익명(175.192)2023-02-07 01:26
답글
늦은밤까지 상대해주셔서 감사합니다 ㅠㅠㅠ 많이 배워서 나중에 질문하는 친구들 있으면 많이 알려주도록 노력할게!! - dc App
tpptpp(tpptpp)2023-02-07 01:28
답글
죄송하지만 딱 한번만 더 이해한 것에 대해 여쭤보고 싶습니다. 사용 모델은 헷갈리지 않기 위해 DecisionTreeClassifier로 고정할게요. 학습 수준은 이제 막 그리드 서치 배우고 타이타닉 해본 정도입니다.
1. k fold 교차 검증에서 k는 모델의 평가 방법에 대한 조정이지 모델 자체에 대한 조정이 아니다.
2. k를 몇개로 조정하든 하이퍼 파라미터 조정을 따로 하지 않으면 같은 train 데이터 셋에선 같은 모델이다(2학년 8반이 내부에서 3번 시험을 보든 10번을 보든 2학년 8반이다)
3. 하이퍼파라미터 튜닝을 위해 모델들을 각 하이퍼 파라미터 값 별로 나누고 그중 가장 높은 정확도(이 정확도는 교차 검증을 통해 산출)가 나온 파라미터를 모델에 적용 함으로서 모델 - dc App
tpptpp(tpptpp)2023-02-09 01:22
답글
을 조정하는 것이다.
라고 이해했는데 개괄적으로 옳게 이해했는지 궁금합니다 - dc App
K fold cv가 최종 모델을 결정하는건 아니라고 들음.
그냥 평가만 해주는거지.
평균 내서 성능이 이 정도다 하는거야
책도 구글링한 자료들도 매번 학습 데이터로 모델을 생성후 평가를 진행한다 라고 나와있는데 그럼 모델을 매번 만드는 게 아니라는 거네 - dc App
ㅇㅇ 모델은 만들어놓고 k fold로 성능 평가
그럼 평가받는 모델은 어떤걸 기준으로 해서 만드는거?? 난 학습데이터랑 평가데이터 나눈걸로 모델 만드는걸로 알았는데 이걸로는 평가만 하는거라니까... - dc App
알려줘서 고마워!! - dc App
cross validation에 대해서 조금 오해가 있는거 같은데 예를 들어 linear regression으로 모델을 만들었다 치면 평균적으로 linear regression의 정확도가 이 정도이다 말해주는 거. Test-validation set을 나누는 이유는 당연히 모든 데이터로 학습해서 모델 만들고 평가하면 정확도를 신뢰하기 어려우니까 그렇게 하는 거고.
음 그러면 모델 생성 및 학습은 cv랑 다른 과정에서 이루어지는거 맞어?? - dc App
나같은 경우 cv로 모델, 알고리즘 평가한 다음에 선택한 알고리즘 가지고 모든 데이터로 학습시킴. 근데 나도 배우는 입장이라 최종 모델 만드는 건 잘 모르겠음. 아마 여기 고수들 많아서 잘 알려주지 않을려나 ㅋㅋ
최종모델은 걍 하이퍼파라미터 조정해서 valid 제일 높은 모델쓰는거아님?
알려줘서 고마워용!! - dc App
k개의 fold별 체크포인트 다 저장해서 쓰는디 - dc App
더 모르겠어 ㅠㅠ - dc App
train(시험 공부하는 8반학생 학생30명): test(모의고사), 1-fold교차검증(학생 1명씩 돌아가면서 나머지 29명한테 문제내줌--> 점수평균이 8반이라는 모델의 훈련성능) - dc App
그 알고리즘 자체는 이해가 되는데 내가 궁금한건 모델의 훈련 성능의 평균과는 별개로 모델 자체가 검증과정 동안 매번 새로 만들어 지는지 아니면 검증 이전에 train test 셋 나눠놓고 모델 만든 후에 k fold 교차 검증으로 '검증' 하여 성능만 구하는건지 궁금해서 ㅠㅠ - dc App
모델은 훈련성능 같은 단순한 수치가 아니니 평균 낼수는 없으니까... - dc App
위 예시에서 30명이 하나의 모델이고 train:test나눴던것처럼 train도 1:29로 나눠서 29명끼리 모형을만드는거야 그리고 1명한테 테스트받으면 점수가나오고 그렇게 반복해서 30개의 점수를 평균내면 곧 30명모델의 성능인거지 - dc App
검증으로 30명의 성능을 구하는게 목적이고 그 검증과정에서 (29명)인 모형×30개가 새로 만들어지는거도 맞고. 궁금한게 이것도아니라면 어디서 오해가있는지 잘 모르겠다.. - dc App
후자임
바로 그 모델이 30개 만들어진다는 부분 ㅇㅇ 만약 학습 후의 8반이라는 모델한테 수능데이터를 가져와서 풀게 했을 때 8반은 수능데이터를 풀어낼 거 아냐? 이 때 수능데이터가 어떤 알고리즘을 통해 계산되는지 모르겠어 ㅇㅇ 교차검증에서 나온 모델이 30개인데 30개 모델에 전부 대입했을 때 수능 문제에 대합 답 또한 다 다르게 나올거 아냐? 요약해서 수능이라는 새 피쳐 데이터에 대해 이전에 학습된 모델이 예측한 라벨값이 나올텐데 이 라벨값이 어떤 방식으로 나오는지 모르겠어 ㅇㅇ 이전 검증과정에서 모델은 30개 만들어지는데 새로 예측한 라벨셋은 1개일거 아냐? - dc App
ㄴㄴ 후자면 이해가 쉽게 될텐데 책도 그렇고 구글링 해도 k번 모델을 만들어서 평가한다 라는 항목이 반복적으로 나오니까... - dc App
30개가 또다른 새로운 모델로 탄생되는게아니라 오로지 8반(1개의 모델)의 실력을 평가하기위해 train set만 가지고는 평가를해볼수없으니(test set은 훈련에 쓰이면 안되니까) 해결책으로 나온방법이 29명씩 무리지어서 돌아가면서 나머지 1명이 '임시로' 선생이되고 나머지를 평가를 해보는거야 8반에대한 '훈련'성능점수를 그렇게 추출 - dc App
하고 이제 8반 30명이 분리시켜놨던 test set(9월 모의고사)를 보면 '테스트'성능이 나오는거지 훈련성능과 테스트성능이 차이가크면 30명끼리공부했던건 엉뚱한공부를 자기들끼리한것이고 차이가없다면 시험준비를 올바르게 잘한것이고. 수능데이터는 실전of실전 인것이야 (훈련된 모델을 실제로 런칭시켜보는것 - dc App
그니까 결국 30개모델은 '임시로' 자기들실력을 대략 알고싶어서 한명씩돌아가면서 선생역할하는과정에서 생긴거고 이과정이끝난후 나온30개 점수를 평균내면 8반의실력을 나타낼수있는 하나의 수치가나오는거지 - dc App
따라서 교차검증이끝나면 모델은 8반이라는 모델 하나만 남고 하나의 실력점수와함께 훈련이끝난다. - dc App
긴 답변 고마워 ㅋㅋㅋㅋ 거의 다 이해가 된거 같아 마지막으로 딱 하나만 이해하면 될거 같은데 ㅇㅇ내가 책보고 구글링하고 너 포함 윗 사람들 설명 듣고 이해한건 다음과 같아처음에 train이랑 test 데이터로만 나눠 ㅇㅇ test set을 검증에 사용할 시에 발생할 과적합 문제로 인해 절대 건들면 안되니까 train set에서 검증후 튜닝까지 해결 해야함 ㅇㅇ 그렇지만 train set으로 모델 만들고 이걸로 검증까지 하면 정확도 1이 나와버리는 답정너 모델이 만들어짐 ㅇㅇ 따라서 train 데이터 안에서 검증데이터를 다시 나눔 ㅇㅇ 그렇지만 이렇게 되면 적은 데이터 수와 오직 하나의 검증 데이터로 인해 모델이 정확도가 약해짐. - dc App
따라서 여기에 k fold 교차검증을 사용하여 k번 검증 후 각각의 모델의 하이퍼 파라미터 값을 추출함 ㅇㅇ 이를 통해 여기서 평균을 내든 택 1을 하든 최적의 하이퍼 파라미터 값을 찾아서 모델을 튜닝함 ㅇㅇ 이 모델에 맨 처음에 나눈 테스트 데이터를 넣어서 최종 성능 평가후 만족할 만큼 나오면 실전 배치라고 이해했는데 맞는지 물어봐도 될까...? 줄넘기기 안되어서 ㅇㅇ 붙여서 씀.... - dc App
처음엔 모델 만들고 교차 검증 하는걸로 이해했는데 지금은 교차 검증을 통해 만든 k개의 모델을 통해 최적의 모델을 만든다라고 이해하는 중 - dc App
하이퍼파라미터는 평균내서 택1을 하는게아니구 위 학급 예시가 찰떡이라 한번 더 예를들면, 모델 세부튜닝은 모델에필요한 파라미터들을 조정해보면서 매번 CV로 점수를 매기는거야 (oo고등학교, 학년파라미터:[1,2,3] , 반파라미터:[1,2,3,4,5,6,7,8] ) 이제 1-1반부터...3-8반까지 파리미터를 바꿔가면서 전부 점수를 매 - dc App
매기는데 이제야 비로소 위에서 8반예시 처럼 점수를 매기는거야 8반안에서 지들끼리 문제내고 답맞추면서 8반의 실력:30점 뭐 이런식으로. 1-1부터 3-8까지 각 학급이 전부 CV를통해 점수가 책정이되면 그중 점수가 가장좋은 (ex.2학년5반) 이 나오겠지? 그럼 최적의 파라미터는 학년:2 반:5 이렇게 세부튜닝으로 정할수있는거야. - dc App
어.... 그럼 여전히 첫 모델에 관한 이해가 해결이 되지 않는데....처음에 train 데이터 전체로 모델을 만들고 이후에 교차 검증을 해서 훈련 성능을 평가하는거야...? - dc App
예시가 헷갈릴수있겠네 위에 예시에서 train set를 모든 학급에 똑같이 제공되는 문제집이라생각해봐. 2학년 8반(많은 파라미터 조합중 생성된 하나의 모델) 학생들은 열심히 문제집을풀고, 서로돌아가면서 임시로 선생역할을하면서 2학년 8반을 대표하는 점수를 만든다. 이걸 학년과 반을 바꿔가면서 제일 실력좋은 학급을 뽑으려는게 모델 세부튜닝 - dc App
교차검증은 반안에서만 이뤄지는거야 모델세부튜닝을 할지안할지는 분석가가 결정하는거고 2학년5반이 제일 실력좋은데 튜닝을안해보면 그냥 2학년 8반애들만데리고 수능은 전부다 치는거니까 골든벨이라고하자 - dc App
2학년 8반애들만 데리고 골든벨나가는거지. 계속 폰으로 쓰려니 힘들다ㅋㅋ - dc App
아 그러니까 2학년 8반 학생들은 train set이라는 문제집을 풀면서 모델이 된거고 얘네가 반 안에서 교차검증을 통해 자신들의 대푯값, 즉 반 점수를 내고 실제 test set 이라는 모의고사를 풀어서 나온 점수가 실제 반 점수와 가까울수록 좋은 모델이라고 판단한다고 할 수 있는거지?? - dc App
yes yes - dc App
늦은밤까지 상대해주셔서 감사합니다 ㅠㅠㅠ 많이 배워서 나중에 질문하는 친구들 있으면 많이 알려주도록 노력할게!! - dc App
죄송하지만 딱 한번만 더 이해한 것에 대해 여쭤보고 싶습니다. 사용 모델은 헷갈리지 않기 위해 DecisionTreeClassifier로 고정할게요. 학습 수준은 이제 막 그리드 서치 배우고 타이타닉 해본 정도입니다. 1. k fold 교차 검증에서 k는 모델의 평가 방법에 대한 조정이지 모델 자체에 대한 조정이 아니다. 2. k를 몇개로 조정하든 하이퍼 파라미터 조정을 따로 하지 않으면 같은 train 데이터 셋에선 같은 모델이다(2학년 8반이 내부에서 3번 시험을 보든 10번을 보든 2학년 8반이다) 3. 하이퍼파라미터 튜닝을 위해 모델들을 각 하이퍼 파라미터 값 별로 나누고 그중 가장 높은 정확도(이 정확도는 교차 검증을 통해 산출)가 나온 파라미터를 모델에 적용 함으로서 모델 - dc App
을 조정하는 것이다. 라고 이해했는데 개괄적으로 옳게 이해했는지 궁금합니다 - dc App
맞아맞아 완전히 이해했넹 - dc App
고마워용!! - dc App