Метафильтрованный классификатор и вручную отфильтрованные классификаторы дают разные результаты
Я получаю противоречивые результаты с двумя методами, которые, по моему мнению, должны давать одинаковый результат. Может ли кто-то указать, в чем различия, потому что я не могу обдумать это:S
Я работаю над Drexel_Stats.arff. Я использую 1-NN классификатор с 10-кратной перекрестной проверкой. Без какой-либо предварительной обработки это матрица путаницы, которую я получаю:
a b <-- classified as
14 3 | a = Win
5 1 | b = Loss
Чтобы получить лучшие результаты, я использовал:
weka.attributeSelection.InfoGainAttributeEval
weka.attributeSelection.Ranker -T -1.0 -N 5
чтобы получить 5 самых отличительных особенностей набора данных. Затем я вручную избавился от всех других функций и перезапустил свой 1-NN, и я получил следующие результаты:
a b <-- classified as
16 1 | a = Win
1 5 | b = Loss
Вот где это сбивает с толку (по крайней мере, мне). Я попытался использовать метафильтрованный классификатор, чтобы избавить от необходимости вручную отбрасывать функции. Вот что я использовал (скопировано из GUI):
weka.classifiers.meta.FilteredClassifier
-F "weka.filters.supervised.attribute.AttributeSelection
-E \"weka.attributeSelection.InfoGainAttributeEval \"
-S \"weka.attributeSelection.Ranker -T -1.0 -N 5\""
-W weka.classifiers.lazy.IB1 -D
Я понимаю, что это автоматизация предыдущей операции, но на самом деле результаты, которые я получаю в этот раз, разные:
a b <-- classified as
15 2 | a = Win
4 2 | b = Loss
Что я не так понял?
Спасибо
редактировать: вот часть вывода WEKA:
=== Attribute Selection on all input data ===
Search Method:
Attribute ranking.
Attribute Evaluator (supervised, Class (nominal): 39 Outcome):
Information Gain Ranking Filter
Ranked attributes:
0.828 1 Opponent
0.469 38 Opp_Steals
0.42 24 Opp_Field_Goal_Pct
0.331 15 Def_Rebounds
0.306 28 Opp_Free_Throws_Made
Selected attributes: 1,38,24,15,28 : 5
Header of reduced data:
@relation 'Basketball_Statistics-weka.filters.unsupervised.attribute.Remove-V-R1,38,24,15,28,39'
@attribute Opponent {Florida_Gulf_Coast,Vermont,Penn,Rider,Toledo,Saint_Joseph,Fairleigh_Dickinson,Villanova,Syracuse,Temple,George_Mason,Georgia_State,UNC_Wilmington,James_Madison,Hofstra,Old_Dominion,Northeastern,Delaware,VCU,Towson}
@attribute Opp_Steals numeric
@attribute Opp_Field_Goal_Pct numeric
@attribute Def_Rebounds numeric
@attribute Opp_Free_Throws_Made numeric
@attribute Outcome {Win,Loss}
@data
Являются ли эти одинаковые признаки выбранными в каждом из этапов перекрестной проверки? Можно ли выбирать разные функции в зависимости от разделения экземпляров?
1 ответ
Ваш первый ("глобальный") выбор объектов использовал все точки данных, включая все метки, т.е. у него был доступ к информации о классе, к которой у вас не было бы доступа во время перекрестной проверки. Поэтому ваш первый подход ошибочен, что приводит к слишком хорошей оценке ошибок. Ваш второй подход правильный. Он работает хуже, потому что он, скорее всего, не выбирает те же пять функций для каждого из десяти прогонов во время перекрестной проверки. Бернхард