Как сделать набор для обучения и тестирования из набора данных?

Какой лучший метод:

  1. разделить мои данные на наборы для обучения и тестирования, сделав 70% данных обучающими и 30% тестовыми, или
  2. использование аналогичных данных для обучения и тестирования набора.

A- Правилен ли второй способ и в чем его недостатки?

B- Мой набор данных содержит 3 атрибута и 1000 объектов, подходит ли он для выбора обучающих и тестовых наборов из этого набора данных?


person user3236918    schedule 17.04.2014    source источник


Ответы (3)


Второй метод неверен (по крайней мере, если под «похожим» вы подразумеваете «такой же»).

Не следует использовать тестовый набор для обучения.

Если вы используете только один набор данных, вы можете достичь идеальной точности, просто изучив этот набор (с риском переобучения). Как правило, это не то, что вам нужно, потому что алгоритм должен изучить общую концепцию, лежащую в основе примеров. Способ тестирования, если это произойдет, состоит в том, чтобы использовать отдельный набор данных для обучения и тестирования.

Набор тестов дает вам прогноз производительности вашей модели в «реальном мире», потому что он независим (на этапе обучения/проверки вы не делаете никакого выбора на основе тестовых данных).

person manlio    schedule 18.04.2014

Второй вариант неверный. Первый вариант самый лучший....

Используя классификатор ling-pipe, мы можем обучать и тестировать новостные данные. Но если вы предоставляете те же данные, которые использовались при обучении для целей тестирования, несомненно, они показывают точные результаты. Мы хотим предсказать вывод для неизвестных случаев, чтобы правильно проверить точность.

Итак, что вам нужно сделать, это

1)Train your data
2)Build a model
3)Apply test data to the model to get output for unknown sets/ cases too. 

Построение модели — это не что иное, как запись обученного объекта в файл. Таким образом, каждый раз, когда вы запускаете программу, вы должны вводить данные в эту модель вместо того, чтобы каждый раз тренироваться. Это экономит ваше время. Надеюсь, мой ответ поможет вам. С наилучшими пожеланиями.

person chopss    schedule 09.07.2014

  1. Вы можете создать Train-Test из набора данных в командной строке:

    java -cp weka.jar weka.filters.unsupervised.instance.RemovePercentage -P 30 -i набор данных.arff -o train.arff java -cp weka.jar weka.filters.unsupervised.instance.RemovePercentage -P 70 -i набор данных. arff -o test.arff

  2. и A): за исключением случаев, когда в вашем наборе данных существуют «все» будущие возможные комбинации данных, использование одних и тех же данных для обучения и тестирования является плохим решением. Он не оценивает, как ваша модель способна обрабатывать различные новые случаи, и не может оценить, не переобучаетесь ли вы (она соответствует вашим текущим данным без многократно используемой логики). Почему бы вам не использовать «перекрестную проверку», это очень эффективно, если вы хотите использовать один и тот же набор данных. Он автоматически разбивается на разные части и проверяет каждую часть на соответствие остальным данным, а затем вычисляет средний результат.

B) если вы имеете в виду 3 атрибута и 1000 экземпляров, все может быть в порядке, если у вас не слишком много разных типов выходных данных (классов) для прогнозирования, и эти экземпляры отображают хорошие варианты использования.

К вашему сведению: если вы хотите проверить свои данные на множестве разных классификаторов, чтобы найти лучший, используйте экспериментатор< /а>.

person doxav    schedule 09.07.2014