Анализ: если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Tech-support, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Craft-repair и семейный статус = Wife и раса = White, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Craft-repair и семейный статус = Wife и раса = Asian-Pac-Islander, то <=50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Craft-repair и семейный статус = Own-child, то>50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Craft-repair и семейный статус = Husband, то <=50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Sales, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Exec-managerial и workclass = Private и семейный статус = Wife, то <=50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Exec-managerial и workclass = Private и семейный статус = Husband, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Exec-managerial и workclass = Federal-gov или Local-gov илиState-gov, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Prof-specialty и workclass = Private, то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Prof-specialty и workclass = Local-gov, то <=50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Adm-clerical или Farming-fishing то >50K
если образование = Bachelors и семейное положение = Married-civ-spouse и занятость = Protective-serv, то <=50K
если образование = Bachelors и семейное положение = Divorced, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Tech-support, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Craft-repair, то >50K
если образование = Bachelors и семейное положение = Never-married и занятость = Other-service или Sales то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Exec-managerial и семейный статус = Own-child и workclass = Private, то >50K
если образование = Bachelors и семейное положение = Never-married и занятость = Exec-managerial и семейный статус = Own-child и workclass = Self-emp-inc, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Exec-managerial и семейный статус = Not-in-family, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Prof-specialty и sex = Female, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Prof-specialty и sex = Male и семейный статус = Own-child или Other-relative, то <=50K
если образование = Bachelors и семейное положение = Never-married и занятость = Prof-specialty и sex = Male и семейный статус = Not-in-family, то >50K
если образование = Bachelors и семейное положение = Never-married и занятость = Adm-clerical или Protective-serv, то <=50K
если образование = Bachelors и семейное положение = Separated или Widowed, то <=50K
если образование = Some-college и семейный статус = Wife и занятость = Craft-repair или Other-service, то <=50K
если образование = Some-college и семейный статус = Wife и занятость = Adm-clerical, то >50K
если образование = Some-college и семейный статус = Own-child, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Tech-support или Craft-repair, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Other-service, то >50K
если образование = Some-college и семейный статус = Husband и занятость = Sales и раса = White или Amer-Indian-Eskimo, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Sales и раса = Asian-Pac-Islander, то >50K
если образование = Some-college и семейный статус = Husband и занятость = Exec-managerial и workclass = Self-emp-not-inc или Self-emp-inc или Local-gov, то >50K
если образование = Some-college и семейный статус = Husband и занятость = Exec-managerial и workclass = State-gov, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Prof-specialty или Handlers-cleaners или Machine-op-inspct или Adm-clerical, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Transport-moving, то >50K
если образование = Some-college и семейный статус = Husband и занятость = Protective-serv и workclass = Local-gov, то <=50K
если образование = Some-college и семейный статус = Husband и занятость = Protective-serv и workclass = State-gov, то >50K
если образование = Some-college и семейный статус = Not-in-family или Other-relative или Unmarried, то <=50K
если образование = 11th и занятость = Craft-repair или Machine-op-inspct или Adm-clerical или Farming-fishing или Transport-moving, то <=50K
если образование = 11th и занятость = Exec-managerial и семейное положение = Married-civ-spouse, то >50K
если образование = 11th и занятость = Exec-managerial и семейное положение = Divorced, то <=50K
если образование = 11th и занятость = Prof-specialty, то >50K
если образование = HS-grad и семейный статус = Wife и занятость = Other-service и workclass = Private, то <=50K
если образование = HS-grad и семейный статус = Wife и занятость = Other-service и workclass = Local-gov, то >50K
если образование = HS-grad и семейный статус = Wife и занятость = Sales или Machine-op-inspct, то <=50K
если образование = HS-grad и семейный статус = Wife и занятость = Adm-clerical, то >50K
если образование = HS-grad и семейный статус = Own-child, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Tech-support или Other-service, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Craft-repair и workclass = Private или Self-emp-not-inc или Local-gov, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Craft-repair и workclass = Self-emp-inc, то >50K
если образование = HS-grad и семейный статус = Husband и занятость = Sales иworkclass = Private или Self-emp-inc или State-gov, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Exec-managerial или Handlers-cleaners, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Machine-op-inspct и native-country = United-States и раса = White или Amer-Indian-Eskimo, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Machine-op-inspct и native-country = Italy, то >50K
если образование = HS-grad и семейный статус = Husband и занятость = Adm-clerical и workclass = Private, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Adm-clerical и workclass = Federal-gov, то >50K
если образование = HS-grad и семейный статус = Husband и занятость = Farming-fishing и workclass = Private, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Farming-fishing и workclass = Self-emp-not-inc и раса = White, то >50K
если образование = HS-grad и семейный статус = Husband и занятость = Farming-fishing и workclass = Self-emp-not-inc и раса = Asian-Pac-Islander, то <=50K
если образование = HS-grad и семейный статус = Husband и занятость = Transport-moving и workclass = Private или Local-gov, то <=50K
если образование = HS-grad и семейный статус = Not-in-family или Other-relative или Unmarried, то <=50K
если образование = Prof-school, то >50K
если образование = Assoc-acdm и занятость = Sales или Prof-specialty или= Handlers-cleaners, то <=50K
если образование = Assoc-acdm и занятость = Exec-managerial или Farming-fishing, то >50K
если образование = Assoc-acdm и занятость = Adm-clerical и workclass = Private, то <=50K
если образование = Assoc-acdm и занятость = Adm-clerical и workclass = Federal-gov, то >50K
если образование = Assoc-voc и семейный статус = Wife или Own-child, то <=50K
если образование = Assoc-voc и семейный статус = Husband и workclass = Private, то >50K
если образование = Assoc-voc и семейный статус = Husband и workclass = Federal-gov, то <=50K
если образование = Assoc-voc и семейный статус = Not-in-family или Unmarried, то <=50K
если образование = Assoc-voc и семейный статус = Unmarried, то <=50K
если образование = 9th или 7th -8th , то <=50K
если образование = 12th и занятость = Craft-repair, то <=50K
если образование = 12th и занятость = Prof-specialty, то >50K
если образование = Masters и занятость = Tech-support, то <=50K
если образование = Masters и занятость = Sales или Exec-managerial или Protective-serv, то >50K
если образование = Masters и занятость = Prof-specialty и семейный статус = Wife или Own-child, то >50K
если образование = Masters и занятость = Prof-specialty и семейный статус = Husband и workclass = Private или Self-emp-not-inc, то >50K
если образование = Masters и занятость = Prof-specialty и семейный статус = Not-in-family или Unmarried, то <=50K
если образование = 1st -4th или 5th -6th , то <=50K
если образование = 10th и workclass = Private или Local-gov, то <=50K
если образование = 10th и workclass = Self-emp-not-inc, то >50K
если образование = Doctorate и workclass = Private и семейное положение = Married-civ-spouse, то >50K
если образование = Doctorate и workclass = Private и семейное положение = Never-married, то <=50K
если образование = Doctorate и workclass = Self-emp-not-inc или Local-gov, то <=50K
если образование = Doctorate и workclass = Federal-gov, то >50K
Классификация методом J4.8 (модификация С4.5)
Этот алгоритм также применяется к исходным данным без их изменения. Результатом его работы является дерево решений, которое можно увидеть в виде дерева(рисунок 2), и текста (листинг 3).
Листинг 4
=== Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: laba43
Instances: 400
Attributes: 15
age
workclass
fnlwgt
education
education-num
marital-status
occupation
relationship
race
sex
capital-gain
capital-loss
hours-per-week
native-country
income
Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree
------------------ education-num <= 11
| capital-gain <= 3908: <=50K (286.0/29.0)
| capital-gain > 3908
| | capital-gain <= 4064: <=50K (2.0)
| | capital-gain > 4064: >50K (6.0)
education-num > 11
| marital-status = Married-civ-spouse
| | age <= 28: <=50K (3.0)
| | age > 28: >50K (49.0/8.0)
| marital-status = Divorced
| | hours-per-week <= 45: <=50K (13.0)
| | hours-per-week > 45: >50K (5.0/1.0)
| marital-status = Never-married
| | capital-gain <= 5178: <=50K (30.0/3.0)
| | capital-gain > 5178: >50K (3.0)
| marital-status = Separated: >50K (2.0/1.0)
| marital-status = Widowed: <=50K (1.0)
| marital-status = Married-spouse-absent: <=50K (0.0)
| marital-status = Married-AF-spouse: <=50K (0.0) Number of Leaves : 13 Size of the tree : 20
Time taken to build model: 0.02 seconds === Stratified cross-validation ===
=== Summary === Correctly Classified Instances 347 86.75 %
Incorrectly Classified Instances 53 13.25 %
Kappa statistic 0.5697
Mean absolute error 0.208
Root mean squared error 0.3436
Relative absolute error 60.9529 %
Root relative squared error 83.273 %
Total Number of Instances 400 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class
0.563 0.048 0.766 0.563 0.649 >50K
0.952 0.437 0.887 0.952 0.918 <=50K === Confusion Matrix === a b <-- classified as
49 38 | a = >50K
15 298 | b = <=50K
Рисунок 3
В этом случае дерево имеет лучший вид, чем при использовании метода ID3. Это вызвано 2 улучшениями алгоритма, по сравнению с ID3:
Возможность работать не только с категориальными атрибутами, но также с числовыми.
После построения дерева происходит усечение его ветвей. Если получившееся дерево слишком велико, выполняется либо группировка нескольких узлов в один лист, либо замещение узла дерева нижележащим поддеревом. Перед операцией над деревом вычисляется ошибка правила классификации, содержащегося в рассматриваемом узле. Если после замещения (или группировки) ошибка не возрастает (и не сильно увеличивается энтропия), значит замену можно произвести без ущерба для построенной модели.
При этом достигается более высокий процент правильности классификации (86.75 % против 74.25 %у ID3). По результатам вывода, а точнее дереву можно увидеть достаточно логичную классификацию объектов. В нашем случае получается что дальнейшее ветвление дерева происходит при marital-status = Married-civ-spouse, marital-status = Divorced и marital-status = Widowed, для остальных имеем статистику верно/неверно классифицированных объектов
marital-status = Never-married: <=50K (114.0/3.0)
marital-status = Separated: <=50K (7.0)
marital-status = Married-spouse-absent: <=50K (4.0)
marital-status = Married-AF-spouse: <=50K (0.0)
Значения (х.х/у.у) характеризуют соответственно верную/неверную классификацию примеров. Они стоят после определения принадлежности к классу <=50K или >50K.
Анализ:
если education-num <= 11 и capital-gain <= 3908,то <=50K (286.0/29.0)
если education-num <= 11 и capital-gain > 3908 и capital-gain <= 4064,то <=50K (2.0)
если education-num <= 11 и capital-gain > 4064,то >50K (6.0)
если education-num > 11 и marital-status = Married-civ-spouse и age <= 28,то <=50K (3.0)
если education-num > 11 и marital-status = Married-civ-spouse и age > 28,то >50K (49.0/8.0)
если education-num > 11 и marital-status = Divorced и hours-per-week <= 45,то <=50K (13.0)
если education-num > 11 и marital-status = Divorced и hours-per-week > 45,то >50K (5.0/1.0)
если education-num > 11 и marital-status = Never-married и capital-gain <= 5178,то <=50K (30.0/3.0)
если education-num > 11 и marital-status = Never-married и capital-gain > 5178,то >50K (3.0)
если education-num > 11 и marital-status = Separated, то >50K (2.0/1.0)
если education-num > 11 и marital-status = Widowed, то <=50K (1.0)
если education-num > 11 и marital-status = Married-spouse-absent, то <=50K (0.0)
если education-num > 11 и marital-status = Married-AF-spouse, то <=50K (0.0)
Классификация методом 1R (в системе Weka называется OneRule)
Метод классификации 1R – один из самых простых и понятных методов классификации. Применяется как к числовым данным, которые разбиваются на промежутки, так и к данным типа nominal.
Пример вывода алгоритма представлен в листинге 5.
Листинг 5
=== Run information === Scheme: weka.classifiers.rules.OneR -B 6
Relation: laba43
Instances: 400
Attributes: 15
age
workclass
fnlwgt
education
education-num
marital-status
occupation
relationship
race
sex
capital-gain
capital-loss
hours-per-week
native-country
income
Test mode: 10-fold cross-validation === Classifier model (full training set) === capital-gain:
< 4621.0 -> <=50K
>= 4621.0 -> >50K
(329/400 instances correct)
Time taken to build model: 0.02 seconds === Stratified cross-validation ===
=== Summary === Correctly Classified Instances 321 80.25 %
Incorrectly Classified Instances 79 19.75 %
Kappa statistic 0.1963
Mean absolute error 0.1975
Root mean squared error 0.4444
Relative absolute error 57.8673 %
Root relative squared error 107.7134 %
Total Number of Instances 400 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class
0.161 0.019 0.7 0.161 0.262 >50K
0.981 0.839 0.808 0.981 0.886 <=50K === Confusion Matrix === a b <-- classified as
14 73 | a = >50K
6 307 | b = <=50K Пример вывода алгоритма представлен в листинге 5.
Применительно к нашим данным этот метод показал себя не очень хорошо. Как известно, он обладает так называемой сверхчувствительностью (overfitting). Метод выбирает переменные принимающие наибольшее возможное количество значений, для таких переменных ошибка и будет наименьшей. Так, например, для переменной по которой у каждого ключа свое уникальное значение ошибка будет равно нулю, но для таких переменных правила бесполезны. В нашем случае такой переменной является Capital Gain. Соответственно после кросс-проверки точность результата также достаточно высока – 80.25 %.
Анализ:
Если прирост капитала < 4621.0, то <=50K Если прирост капитала >= 4621.0, то >50K
Классификация методом SVM (в Weka называется SMO)
Для этого метода не требуется каких-либо преобразований исходной выборки.
Данный метод является алгоритмом классификации с использованием математических функций. Метод использует нелинейные математические функции. Номинальные данные преобразуются в числовые. Основная идея метода опорных векторов – перевод исходных векторов в пространство более высокой размерности и поиск максимальной разделяющей гиперплоскости в этом пространстве. Результат выполнения алгоритма представлен в листинге 6.
Листинг 6.
=== Run information === Scheme: weka.classifiers.functions.SMO -C 1.0 -E 1.0 -G 0.01 -A 250007 -L 0.0010 -P 1.0E-12 -N 0 -V -1 -W 1
Relation: laba43
Instances: 400
Attributes: 15
age
workclass
fnlwgt
education
education-num
marital-status
occupation
relationship
race
sex
capital-gain
capital-loss
hours-per-week
native-country
income
Test mode: 10-fold cross-validation === Classifier model (full training set) === SMO Classifier for classes: >50K, <=50K BinarySMO Machine linear: showing attribute weights, not support vectors. -0.0585 * (normalized) age
+ 0.0084 * (normalized) workclass=Private
+ -0.0213 * (normalized) workclass=Self-emp-not-inc
+ -0.2018 * (normalized) workclass=Self-emp-inc
+ -0.2739 * (normalized) workclass=Federal-gov
+ 0.2433 * (normalized) workclass=Local-gov
+ 0.2452 * (normalized) workclass=State-gov
+ 0.0193 * (normalized) fnlwgt
+ -0.7706 * (normalized) education=Bachelors
+ 0.6757 * (normalized) education=Some-college
+ 0.3256 * (normalized) education=11th
+ 0.5779 * (normalized) education=HS-grad
+ -0.9101 * (normalized) education=Prof-school
+ -0.7434 * (normalized) education=Assoc-acdm
+ 1 * (normalized) education=Assoc-voc
+ 0.1488 * (normalized) education=9th
+ 0.2148 * (normalized) education=7th-8th
+ -0.3453 * (normalized) education=12th
+ -0.9079 * (normalized) education=Masters
+ 0.0496 * (normalized) education=1st-4th
+ 0.2341 * (normalized) education=10th
+ -0.3222 * (normalized) education=Doctorate
+ 0.773 * (normalized) education=5th-6th
+ -1.6111 * (normalized) education-num
+ -1.1023 * (normalized) marital-status=Married-civ-spouse
+ 0.4264 * (normalized) marital-status=Divorced
+ 0.7828 * (normalized) marital-status=Never-married
+ -0.4317 * (normalized) marital-status=Separated
+ 0.3247 * (normalized) marital-status=Widowed
+ 0.1073 * (normalized) occupation=Tech-support
+ -0.0689 * (normalized) occupation=Craft-repair
+ -0.0632 * (normalized) occupation=Other-service
+ -0.042 * (normalized) occupation=Sales
+ -0.2862 * (normalized) occupation=Exec-managerial
+ -0.1301 * (normalized) occupation=Prof-specialty
+ 1 * (normalized) occupation=Handlers-cleaners
+ 0.1839 * (normalized) occupation=Machine-op-inspct
+ -0.0754 * (normalized) occupation=Adm-clerical
+ -0.2496 * (normalized) occupation=Farming-fishing
+ -0.0682 * (normalized) occupation=Transport-moving
+ -0.3074 * (normalized) occupation=Protective-serv
+ -0.6652 * (normalized) relationship=Wife
+ -0.0987 * (normalized) relationship=Own-child
+ 0.111 * (normalized) relationship=Husband
+ -0.0157 * (normalized) relationship=Not-in-family
+ 0.1003 * (normalized) relationship=Other-relative
+ 0.5683 * (normalized) relationship=Unmarried
+ -0.208 * (normalized) race=White
+ 0.0377 * (normalized) race=Asian-Pac-Islander
+ 0.582 * (normalized) race=Other
+ -0.4117 * (normalized) race=Black
+ -0.5355 * (normalized) sex
+ -1.1261 * (normalized) capital-gain
+ -1.2683 * (normalized) capital-loss
+ -0.2404 * (normalized) hours-per-week
+ 0.2201 * (normalized) native-country=United-States
+ -0.6401 * (normalized) native-country=Canada
+ 0.2992 * (normalized) native-country=Germany
+ 0.6778 * (normalized) native-country=China
+ -0.9273 * (normalized) native-country=Cuba
+ -1 * (normalized) native-country=Italy
+ 1 * (normalized) native-country=Vietnam
+ 0.1772 * (normalized) native-country=Mexico
+ 0.193 * (normalized) native-country=Nicaragua
+ 2.9283 Number of kernel evaluations: 38130 (96.102% cached)
Time taken to build model: 0.59 seconds === Stratified cross-validation ===
=== Summary === Correctly Classified Instances 331 82.75 %
Incorrectly Classified Instances 69 17.25 %
Kappa statistic 0.4293
Mean absolute error 0.1725
Root mean squared error 0.4153
Relative absolute error 50.5423 %
Root relative squared error 100.6655 %
Total Number of Instances 400 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class
0.448 0.067 0.65 0.448 0.531 >50K
0.933 0.552 0.859 0.933 0.894 <=50K === Confusion Matrix === a b <-- classified as
39 48 | a = >50K
21 292 | b = <=50K
На выводе алгоритма показываются веса для всех возможных атрибутов, при этом заметна задержка его вывода из-за проведения расчетов. Процент верной классификации оказывается достаточно высоким – 82.75 %, а средняя ошибка классификатора среди всех рассмотренных методов уступает только средней ошибке полученной в методе Naïve Bayes.
В итоге вывод данного алгоритма представлен в виде вектора n-мерного пространства. Цифры указанные в выводе – коэффициенты задающие плоскость, разделяющую исходные данные на типы. <=50K получают в основном в этих категориях:
workclass=Private, Local-gov, State-gov
education= Some-college, 11th, 9th, 7th -8th, 1st -4th, 10th, 5th -6th
marital-status=Divorced, Never-married, Widowed
occupation=Tech-support, Handlers-cleaners, Machine-op-inspct
relationship=Husband, Other-relative, Unmarried
race= Asian-Pac-Islander, Other
native-country=United-States, Germany, China, Vietnam, Mexico, Nicaragua
>50K получают в основном в этих категориях:
workclass= Self-emp-not-inc, Self-emp-inc, Federal-gov, HS-grad, Assoc-voc,
education= Bachelors, Prof-school, Assoc-acdm, 12th, Masters, Doctorate,
marital-status=Married-civ-spouse, Separated
occupation=Craft-repair, Other-service, Sales, Exec-managerial, Prof-specialty, Adm-clerical, Farming-fishing, Transport-moving, Protective-serv
relationship=Wife, Own-child, Not-in-family
race=White, Black
native-country=Canada, Cuba, Italy
|