2016-04-21 4 views
0

У меня есть мой набор данных, которые являются моими правилами, и я хочу создать дерево решений, которое, по крайней мере, имеет 100% точность при классификации моих правил, но я никогда не смогу получить 100%. Я установил minNumObjs равным 1 и сделал это unpruned, но я получаю только 84% правильно классифицированных экземпляров.Создание дерева решений, которое идеально моделирует набор упражнений?

Мои атрибуты:

@attribute users numeric 
@attribute bandwidth numeric 
@attribute latency numeric 
@attribute mode {C,H,DCF,MP,DC,IND} 

экс данные:

2,200000,0,C 
2,200000,1000,C 
2,200000,2000,MP 
2,200000,5000,C 
2,400000,0,C 
2,400000,1000,DCF 

Может кто-то помочь мне понять, почему я никогда не могу получить 100% моих экземпляров, классифицируемых и как я могу получить 100% из них (в то же время позволяя моим атрибутам быть числовыми)

СООБЩЕНИЕ

ответ

2

Иногда невозможно получить 100% -ную точность из-за идентичных векторов признаков, имеющих разные метки. Я предполагаю в вашем случае, что users, bandwidth и latency являются функциями, а mode - это метка, которую вы пытаетесь предсказать. Если это так, то могут быть одинаковые значения {users, bandwidth, latency}, которые имеют разные метки mode.

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

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

Теперь вы можете сделать свой тренировочный набор через дерево решений и найти предметы, которые были неправильно классифицированы. Попытайтесь определить, почему они ошибаются, и посмотрите, показывают ли какие-либо экземпляры данных то, что я написал выше (а именно, что есть экземпляры данных с теми же функциями, но с разными метками).

+0

Все функции уникальны. То, что он ошибается, - это очертания, например, , у нас может быть увеличение полосы пропускания со скоростью 100, 100-1000, и все они являются режимом C, а при 600 это режим DC. Это те, кто ошибается. Это угловые случаи. – jmasterx

+0

Я попробовал дерево Best First, и ему удалось классифицировать 96% из них, но дерево было уродливым. – jmasterx

+0

Вы также можете применить масштабирование функции, чтобы числовые функции находились в одном масштабе (например, между 0.0 и 1.0). Два подхода: «масштабирование z-балла» (ака стандартизация) и «макс-мин-масштабирование». В Википедии есть очень четкое объяснение: https://en.wikipedia.org/wiki/Feature_scaling. По сути, у Weka есть эта возможность: http://stackoverflow.com/questions/20904071/how-to-use-different-scaling-approaches-in-weka – stackoverflowuser2010

 Смежные вопросы

  • Нет связанных вопросов^_^