>

약 500 개의 다른 단락으로 구성된 데이터 집합이 있습니다. 각 단락마다 다른 단락에 대한 링크가 있는지 확인하려고합니다. 이를 바탕으로 단락 쌍을 만들었습니다. 이전에는이 ​​문제를 이진 문제 (0 또는 1, 링크가 있는지 여부)로 접근하려고했지만 순위를 매기려고합니다 (각 단락 쌍에 확률을 할당).

내 문제는 : 테스트와 기차 세트를 무작위로 나누지 만 각 단락의 모든 단락 쌍을 동일한 세트로 유지하는 방법은 무엇입니까? 예를 들어, 단락 1의 경우 테스트 또는 기차 세트에서 모든 관련 쌍 (1-2, 1-3, 1-4, 1-5 ... 1-500)을 원합니다. 예를 들어 테스트 세트의 순위에 일부 페어가 누락되므로 내 페어가 절반이 훈련 세트에있는 경우 작동하지 않습니다 ...

형식

단락 A | 단락 B | 라벨 | 기능 ...

<시간>

단락 1 | 단락 4 | 1 | ...

단락 2 | 단락 6 | 1 | ...

문단 6 | 단락 8 | 0 | ...

문단 10 | 단락 2 | 1 | ...

나는 sklearn train_test_split을 사용하고 있습니다 :

import pandas as pd
from sklearn.model_selection import train_test_split
feature_headers = ['tfidf_cosine', 'count_vec_cosine', 'lda_50topics_cosine', 'lda_200topics_cosine']
target_header = ['label']
train_x, test_x, train_y, test_y = train_test_split(result[feature_headers], result[target_header],
                                                    train_size=0.7)

  • 답변 # 1

    모델을 과적 합할 수 있도록 만드는 방법을 요청하고 있습니다 ...

    와이즈 비즈

    귀하의 페어 중 일부 (대부분!)가 테스트 세트에 없으면귀하의 순위가 작동해야합니다. 그렇지 않으면 네트워크 생성의 요점은 무엇입니까?

    어쨌든, 당신이 묻는 것은 수학적으로 불가능합니다. 원하는 방식으로 단락을 분리 할 수있는 유일한 방법은 전혀 관련이없는 두 세트가 전혀 겹치지 않는 것입니다. 단락을 그래프에서 노드로, 연결을 벡터로 생각하면 가장 좋은 시나리오는 두 개의 섬으로 연결되는 것입니다. 해당 연결이 단락 1과 2 사이에있는 경우 두 세트 모두 각 세트마다 하나 이상의 페어링이 있어야합니다.

    My ranking will not work if half the pairs are in the training set for example, since then the ranking for the test set will be missing some pairs...

관련 자료

  • 이전 android - React-nativeProject에서 앱 폴더 경로를 찾는 방법
  • 다음 ios - 스크롤보기가 효과적으로 작동하기 위해 적절한 제약 조건을 정의하는 방법