Создание набора тестов и поездов, сохраняя определенные элементы в одном наборе - PullRequest
0 голосов
/ 25 мая 2018

У меня есть набор данных, состоящий из около 500 различных параграфов.Для каждого абзаца я пытаюсь увидеть, есть ли ссылка на какой-либо другой абзац.На основании этого я создал пара абзацев.Ранее я пытался решить эту проблему как бинарные проблемы (0 или 1, есть ссылка или нет), но теперь я хочу попробовать ранжирование (присвоение вероятности каждой паре параграфов).

Моя проблема: Как разделить мой набор тестов и обучений случайным образом, но сохранить все пары абзацев для каждого абзаца в одном наборе?Например, для пункта 1 я хочу, чтобы все связанные пары (1-2, 1-3, 1-4, 1-5 ... 1-500) были либо в тестовом наборе, либо в наборе поездов.Мой рейтинг не сработает, если, например, половина пары входит в тренировочный набор, с тех пор в рейтинге набора тестов будут отсутствовать некоторые пары ...

Формат

Пункт A |Параграф Б |Этикетка |Особенности ...


Пункт 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 Ответ

0 голосов
/ 25 мая 2018

Вы спрашиваете нас, как сделать так, чтобы вы могли переоснастить свою модель ...

Мой рейтинг не будет работать, если, например, половина пар находится в тренировочном наборе, с тех пор рейтингдля набора тестов будут отсутствовать некоторые пары ...

Ваш рейтинг должен работать, если некоторые (большинство!) из ваших пар не входят в набор тестов, иначе чтоточка создания сети?

В любом случае, то, что вы спрашиваете, математически невозможно.Единственный способ, которым вы можете отделить абзацы так, как вы просите, - это если у вас есть два совершенно не связанных набора без перекрытия вообще.Если вы представляете свои абзацы как узлы на графике, а соединения - как векторы, ваш лучший вариант развития событий состоит в том, что в итоге вы получите два островка с единственной связью между ними.Если эта связь находится между параграфами 1 и 2, то ясно, что оба из них должны иметь хотя бы одну пару в каждом наборе.

...