最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java 人工智能 - Weka - 分類算法

2021-10-01 14:53 作者:開源開發(fā)者  | 我要投稿

數(shù)據(jù)樣本



加載數(shù)據(jù)


Weka 接收的格式為 ARRF


數(shù)據(jù)源對象

ConverterUtils.DataSource source = new ConverterUtils.DataSource(AnimalClassify.class.getClassLoader().getResource("data/zoo.arff").getPath());


從數(shù)據(jù)源對象獲取數(shù)據(jù)集

Instances dataSet = source.getDataSet();


打印數(shù)據(jù)集數(shù)據(jù)量

System.out.println(dataSet.numInstances() + " instances loaded.");




打印整個數(shù)據(jù)集

System.out.println(dataSet.toString());


@relation zoo

@attribute animal {aardvark,antelope,bass,bear,boar,buffalo,calf,carp,catfish,cavy,cheetah,chicken,chub,clam,crab,crayfish,crow,deer,dogfish,dolphin,dove,duck,elephant,flamingo,flea,frog,fruitbat,giraffe,girl,gnat,goat,gorilla,gull,haddock,hamster,hare,hawk,herring,honeybee,housefly,kiwi,ladybird,lark,leopard,lion,lobster,lynx,mink,mole,mongoose,moth,newt,octopus,opossum,oryx,ostrich,parakeet,penguin,pheasant,pike,piranha,pitviper,platypus,polecat,pony,porpoise,puma,pussycat,raccoon,reindeer,rhea,scorpion,seahorse,seal,sealion,seasnake,seawasp,skimmer,skua,slowworm,slug,sole,sparrow,squirrel,starfish,stingray,swan,termite,toad,tortoise,tuatara,tuna,vampire,vole,vulture,wallaby,wasp,wolf,worm,wren}

@attribute hair {false,true}

@attribute feathers {false,true}

@attribute eggs {false,true}

@attribute milk {false,true}

@attribute airborne {false,true}

@attribute aquatic {false,true}

@attribute predator {false,true}

@attribute toothed {false,true}

@attribute backbone {false,true}

@attribute breathes {false,true}

@attribute venomous {false,true}

@attribute fins {false,true}

@attribute legs numeric

@attribute tail {false,true}

@attribute domestic {false,true}

@attribute catsize {false,true}

@attribute type {mammal,bird,reptile,fish,amphibian,insect,invertebrate}

@data

aardvark,true,false,false,true,false,false,true,true,true,true,false,false,4,false,false,true,mammal

antelope,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

bass,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,false,fish

bear,true,false,false,true,false,false,true,true,true,true,false,false,4,false,false,true,mammal

boar,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

buffalo,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

calf,true,false,false,true,false,false,false,true,true,true,false,false,4,true,true,true,mammal

carp,false,false,true,false,false,true,false,true,true,false,false,true,0,true,true,false,fish

catfish,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,false,fish

cavy,true,false,false,true,false,false,false,true,true,true,false,false,4,false,true,false,mammal

cheetah,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

chicken,false,true,true,false,true,false,false,false,true,true,false,false,2,true,true,false,bird

chub,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,false,fish

clam,false,false,true,false,false,false,true,false,false,false,false,false,0,false,false,false,invertebrate

crab,false,false,true,false,false,true,true,false,false,false,false,false,4,false,false,false,invertebrate

crayfish,false,false,true,false,false,true,true,false,false,false,false,false,6,false,false,false,invertebrate

crow,false,true,true,false,true,false,true,false,true,true,false,false,2,true,false,false,bird

deer,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

dogfish,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,true,fish

dolphin,false,false,false,true,false,true,true,true,true,true,false,true,0,true,false,true,mammal

dove,false,true,true,false,true,false,false,false,true,true,false,false,2,true,true,false,bird

duck,false,true,true,false,true,true,false,false,true,true,false,false,2,true,false,false,bird

elephant,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

flamingo,false,true,true,false,true,false,false,false,true,true,false,false,2,true,false,true,bird

flea,false,false,true,false,false,false,false,false,false,true,false,false,6,false,false,false,insect

frog,false,false,true,false,false,true,true,true,true,true,false,false,4,false,false,false,amphibian

frog,false,false,true,false,false,true,true,true,true,true,true,false,4,false,false,false,amphibian

fruitbat,true,false,false,true,true,false,false,true,true,true,false,false,2,true,false,false,mammal

giraffe,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

girl,true,false,false,true,false,false,true,true,true,true,false,false,2,false,true,true,mammal

gnat,false,false,true,false,true,false,false,false,false,true,false,false,6,false,false,false,insect

goat,true,false,false,true,false,false,false,true,true,true,false,false,4,true,true,true,mammal

gorilla,true,false,false,true,false,false,false,true,true,true,false,false,2,false,false,true,mammal

gull,false,true,true,false,true,true,true,false,true,true,false,false,2,true,false,false,bird

haddock,false,false,true,false,false,true,false,true,true,false,false,true,0,true,false,false,fish

hamster,true,false,false,true,false,false,false,true,true,true,false,false,4,true,true,false,mammal

hare,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,false,mammal

hawk,false,true,true,false,true,false,true,false,true,true,false,false,2,true,false,false,bird

herring,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,false,fish

honeybee,true,false,true,false,true,false,false,false,false,true,true,false,6,false,true,false,insect

housefly,true,false,true,false,true,false,false,false,false,true,false,false,6,false,false,false,insect

kiwi,false,true,true,false,false,false,true,false,true,true,false,false,2,true,false,false,bird

ladybird,false,false,true,false,true,false,true,false,false,true,false,false,6,false,false,false,insect

lark,false,true,true,false,true,false,false,false,true,true,false,false,2,true,false,false,bird

leopard,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

lion,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

lobster,false,false,true,false,false,true,true,false,false,false,false,false,6,false,false,false,invertebrate

lynx,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

mink,true,false,false,true,false,true,true,true,true,true,false,false,4,true,false,true,mammal

mole,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,false,mammal

mongoose,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

moth,true,false,true,false,true,false,false,false,false,true,false,false,6,false,false,false,insect

newt,false,false,true,false,false,true,true,true,true,true,false,false,4,true,false,false,amphibian

octopus,false,false,true,false,false,true,true,false,false,false,false,false,8,false,false,true,invertebrate

opossum,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,false,mammal

oryx,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,true,mammal

ostrich,false,true,true,false,false,false,false,false,true,true,false,false,2,true,false,true,bird

parakeet,false,true,true,false,true,false,false,false,true,true,false,false,2,true,true,false,bird

penguin,false,true,true,false,false,true,true,false,true,true,false,false,2,true,false,true,bird

pheasant,false,true,true,false,true,false,false,false,true,true,false,false,2,true,false,false,bird

pike,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,true,fish

piranha,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,false,fish

pitviper,false,false,true,false,false,false,true,true,true,true,true,false,0,true,false,false,reptile

platypus,true,false,true,true,false,true,true,false,true,true,false,false,4,true,false,true,mammal

polecat,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

pony,true,false,false,true,false,false,false,true,true,true,false,false,4,true,true,true,mammal

porpoise,false,false,false,true,false,true,true,true,true,true,false,true,0,true,false,true,mammal

puma,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

pussycat,true,false,false,true,false,false,true,true,true,true,false,false,4,true,true,true,mammal

raccoon,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

reindeer,true,false,false,true,false,false,false,true,true,true,false,false,4,true,true,true,mammal

rhea,false,true,true,false,false,false,true,false,true,true,false,false,2,true,false,true,bird

scorpion,false,false,false,false,false,false,true,false,false,true,true,false,8,true,false,false,invertebrate

seahorse,false,false,true,false,false,true,false,true,true,false,false,true,0,true,false,false,fish

seal,true,false,false,true,false,true,true,true,true,true,false,true,0,false,false,true,mammal

sealion,true,false,false,true,false,true,true,true,true,true,false,true,2,true,false,true,mammal

seasnake,false,false,false,false,false,true,true,true,true,false,true,false,0,true,false,false,reptile

seawasp,false,false,true,false,false,true,true,false,false,false,true,false,0,false,false,false,invertebrate

skimmer,false,true,true,false,true,true,true,false,true,true,false,false,2,true,false,false,bird

skua,false,true,true,false,true,true,true,false,true,true,false,false,2,true,false,false,bird

slowworm,false,false,true,false,false,false,true,true,true,true,false,false,0,true,false,false,reptile

slug,false,false,true,false,false,false,false,false,false,true,false,false,0,false,false,false,invertebrate

sole,false,false,true,false,false,true,false,true,true,false,false,true,0,true,false,false,fish

sparrow,false,true,true,false,true,false,false,false,true,true,false,false,2,true,false,false,bird

squirrel,true,false,false,true,false,false,false,true,true,true,false,false,2,true,false,false,mammal

starfish,false,false,true,false,false,true,true,false,false,false,false,false,5,false,false,false,invertebrate

stingray,false,false,true,false,false,true,true,true,true,false,true,true,0,true,false,true,fish

swan,false,true,true,false,true,true,false,false,true,true,false,false,2,true,false,true,bird

termite,false,false,true,false,false,false,false,false,false,true,false,false,6,false,false,false,insect

toad,false,false,true,false,false,true,false,true,true,true,false,false,4,false,false,false,amphibian

tortoise,false,false,true,false,false,false,false,false,true,true,false,false,4,true,false,true,reptile

tuatara,false,false,true,false,false,false,true,true,true,true,false,false,4,true,false,false,reptile

tuna,false,false,true,false,false,true,true,true,true,false,false,true,0,true,false,true,fish

vampire,true,false,false,true,true,false,false,true,true,true,false,false,2,true,false,false,mammal

vole,true,false,false,true,false,false,false,true,true,true,false,false,4,true,false,false,mammal

vulture,false,true,true,false,true,false,true,false,true,true,false,false,2,true,false,true,bird

wallaby,true,false,false,true,false,false,false,true,true,true,false,false,2,true,false,true,mammal

wasp,true,false,true,false,true,false,false,false,false,true,true,false,6,false,false,false,insect

wolf,true,false,false,true,false,false,true,true,true,true,false,false,4,true,false,true,mammal

worm,false,false,true,false,false,false,false,false,false,true,false,false,0,false,false,false,invertebrate

wren,false,true,true,false,true,false,false,false,true,true,false,false,2,true,false,false,bird?


我們預測 Animal 屬性


因為對于新樣本 我們只知道其他屬性 不知道 Animal 屬性


所以要從數(shù)據(jù)集中去除該屬性


實例化一個移除屬性對象

Remove remove = new Remove();



實例化一個字符串數(shù)組對象

-R 為移除屬性

1 為移除第一個屬性

String[] opts = new String[]{"-R", "1"};


設置字符串數(shù)組對象

remove.setOptions(opts);

設置數(shù)據(jù)集


remove.setInputFormat(dataSet);

調用過濾器類的使用過濾器的靜態(tài)方法 把數(shù)據(jù)集以及要移除的屬性移除出去


dataSet = Filter.useFilter(dataSet, remove);

重新打印數(shù)據(jù)集


System.out.println(dataSet.toString());




特征選擇

也叫預處理 數(shù)據(jù)清洗

也就是選擇屬性

從屬性中選擇一個子集

可以簡化模型

減少訓練的時間 降低過擬合風險


用屬性選擇算法估評屬性的子集 計算出一個分數(shù)

分數(shù)可以表明屬性的品質

品質分數(shù)有信息增益 基尼指數(shù)


再用搜索算法 比如窮舉搜索 最佳優(yōu)先搜索進行屬性分類排序




信息增益 通過計算的個數(shù)等等 計算出屬性重要的程度 會給出一個分數(shù)

InfoGainAttributeEval eval = new InfoGainAttributeEval();


根據(jù)分數(shù)分類屬性的算法

Ranker search = new Ranker();




對象屬性選擇類

AttributeSelection attributeSelection = new AttributeSelection();

設置信息增益



attributeSelection.setEvaluator(eval);

設置搜索算法

attributeSelection.setSearch(search);

設置數(shù)據(jù)集

attributeSelection.SelectAttributes(dataSet);


調用 selectedAttributes 實例方法進行選擇

int[] indices = attributeSelection.selectedAttributes();


打印屬性索引數(shù)組

System.out.println(Arrays.toString(indices));

[12, 3, 7, 2, 0, 1, 8, 9, 13, 4, 11, 5, 15, 10, 6, 14, 16]

12 是 fins

3 是 eggs

7 是 aquatic

2 是 hair


@attribute hair {false,true}

@attribute feathers {false,true}

@attribute eggs {false,true}

@attribute milk {false,true}

@attribute airborne {false,true}

@attribute aquatic {false,true}

@attribute predator {false,true}

@attribute toothed {false,true}

@attribute backbone {false,true}

@attribute breathes {false,true}

@attribute venomous {false,true}

@attribute fins {false,true}

@attribute legs numeric

@attribute tail {false,true}

@attribute domestic {false,true}

@attribute catsize {false,true}

@attribute type {mammal,bird,reptile,fish,amphibian,insect,invertebrate}


保留的屬性應該是有助于進一步改進模型


學習算法

從訓練數(shù)據(jù)中學習算法

學習分類模型


J48 類 實現(xiàn)了 著名的 Quinlan's C4.5 決策樹學習算法


剪枝 tree pruning

控制模型的復雜度


未剪枝 un-pruned tree

可以傳遞一個 -U 參數(shù)



創(chuàng)建一個 J48 決策樹分類器空模型


J48 tree = new J48();

字符串數(shù)組


String[] options = new String[1];

-U 代表 未剪枝參數(shù)



options[0] = "-U";

設置決策樹分離器屬性


tree.setOptions(options);

調用構建分類器 存入數(shù)據(jù)集進行學習


tree.buildClassifier(dataSet);


經(jīng)過訓練的模型存儲在tree對象當中


輸出未剪枝的樹

System.out.println(tree);



未剪枝數(shù) 17個節(jié)點

9個葉子節(jié)點


J48 unpruned tree

------------------


feathers = false

| ? milk = false

| ? | ? backbone = false

| ? | ? | ? airborne = false

| ? | ? | ? | ? predator = false

| ? | ? | ? | ? | ? legs <= 2: invertebrate (2.0)

| ? | ? | ? | ? | ? legs > 2: insect (2.0)

| ? | ? | ? | ? predator = true: invertebrate (8.0)

| ? | ? | ? airborne = true: insect (6.0)

| ? | ? backbone = true

| ? | ? | ? fins = false

| ? | ? | ? | ? tail = false: amphibian (3.0)

| ? | ? | ? | ? tail = true: reptile (6.0/1.0)

| ? | ? | ? fins = true: fish (13.0)

| ? milk = true: mammal (41.0)

feathers = true: bird (20.0)


Number of Leaves ?: 9


Size of the tree : 17


可視化剪枝樹

TreeVisualizer tv = new TreeVisualizer(null, tree.graph(), new PlaceNode2());


JFrame frame = new JFrame("Tree Visualizer");

frame.setSize(800, 500);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(tv);

frame.setVisible(true);


feathers 為根節(jié)點也稱為節(jié)點

會在當前節(jié)點檢查節(jié)點的屬性值

會先檢查feathers的屬性的值

如果feathers的屬性值存在 會進入右手分支

遍歷為bird是葉子節(jié)點就會輸出當前有多少個bird 樣本 當前有 20個


如果 feathers 屬性值不存在 會進入左手分支 到達下一個屬性 milk

繼續(xù)檢查milk屬性值

然后進入屬性值相匹配的分支 不斷重復這個過程 直到到達葉子節(jié)點



預測新數(shù)據(jù)


有其他屬性的未知動物的標簽

可以用已經(jīng)分類過的模型進行預測


構造一個特征向量

double[] vals = new double[dataSet.numAttributes()];

vals[0] = 1.0; // hair {false, true}

vals[1] = 0.0; // feathers {false, true}

vals[2] = 0.0; // eggs {false, true}

vals[3] = 1.0; // milk {false, true}

vals[4] = 0.0; // airborne {false, true}

vals[5] = 0.0; // aquatic {false, true}

vals[6] = 0.0; // predator {false, true}

vals[7] = 1.0; // toothed {false, true}

vals[8] = 1.0; // backbone {false, true}

vals[9] = 1.0; // breathes {false, true}

vals[10] = 1.0; // venomous {false, true}

vals[11] = 0.0; // fins {false, true}

vals[12] = 4.0; // legs INTEGER [0,9]

vals[13] = 1.0; // tail {false, true}

vals[14] = 1.0; // domestic {false, true}

vals[15] = 0.0; // catsize {false, true}

Instance myUnicorn = new DenseInstance(1.0,vals);

myUnicorn.setDataset(dataSet);

調用模型的classifyInstance方法獲取樣本的值 并返回標簽的索引

result的值為索引

模型訓練之后會存在各個樣本的標簽的索引

可以遍歷模型的標簽索引


double result = tree.classifyInstance(myUnicorn);

System.out.println(result);

System.out.println(dataSet.classAttribute().value((int)result));


0.0

0.0

預測的標簽結果為

mammal


評估模型的預測誤差以及性能

Classifier cl = new J48();

實現(xiàn)交叉驗證的類


Evaluation eval_roc = new Evaluation(dataSet);

cl 為模型 dataSet 提供數(shù)據(jù)集 10為折數(shù) random 隨機種子

eval_roc.crossValidateModel(cl, dataSet, 10, new Random(1), new Object[]{});

打印評估結果

System.out.println(eval_roc.toSummaryString());


Correctly Classified Instances ? ? ? ? ?93 ? ? ? ? ? ? ? 92.0792 %

Incorrectly Classified Instances ? ? ? ? 8 ? ? ? ? ? ? ? ?7.9208 %

Kappa statistic ? ? ? ? ? ? ? ? ? ? ? ? ?0.8955

Mean absolute error ? ? ? ? ? ? ? ? ? ? ?0.0225

Root mean squared error ? ? ? ? ? ? ? ? ?0.14 ?

Relative absolute error ? ? ? ? ? ? ? ? 10.2478 %

Root relative squared error ? ? ? ? ? ? 42.4398 %

Coverage of cases (0.95 level) ? ? ? ? ?96.0396 %

Mean rel. region size (0.95 level) ? ? ?15.4173 %

Total Number of Instances ? ? ? ? ? ? ?101 ? ?


正確數(shù)為 93

錯誤數(shù)為 8



混淆矩陣

查看特定的錯誤分類出現(xiàn)在什么地方

一個特定類值是如何進行預測的


double[][] confusionMatrix = eval_roc.confusionMatrix();

System.out.println(eval_roc.toMatrixString());


=== Confusion Matrix ===


?a ?b ?c ?d ?e ?f ?g ? <-- classified as

41 ?0 ?0 ?0 ?0 ?0 ?0 | ?a = mammal

?0 20 ?0 ?0 ?0 ?0 ?0 | ?b = bird

?0 ?0 ?3 ?1 ?0 ?1 ?0 | ?c = reptile

?0 ?0 ?0 13 ?0 ?0 ?0 | ?d = fish

?0 ?0 ?1 ?0 ?3 ?0 ?0 | ?e = amphibian

?0 ?0 ?0 ?0 ?0 ?5 ?3 | ?f = insect

?0 ?0 ?0 ?0 ?0 ?2 ?8 | ?g = invertebrate



第一行的字母為分類模型指派的標簽 對應于分類后的索引

其他行對應一個實際值為真的類值

比如說第二行是mammal的標簽 所有的都正確分類為該標簽為哺乳動物

第4行為爬行動物 有3個樣本被正確分類為reptile

一個分類為fish 一個被分類為insect?



package com.osrcd.weka;

import weka.attributeSelection.AttributeSelection;

import weka.attributeSelection.InfoGainAttributeEval;

import weka.attributeSelection.Ranker;

import weka.classifiers.Classifier;

import weka.classifiers.Evaluation;

import weka.classifiers.trees.J48;

import weka.core.DenseInstance;

import weka.core.Instance;

import weka.core.Instances;

import weka.core.converters.ConverterUtils;

import weka.filters.Filter;

import weka.filters.unsupervised.attribute.Remove;

import weka.gui.treevisualizer.PlaceNode2;

import weka.gui.treevisualizer.TreeVisualizer;

import javax.swing.*;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.Random;

public class AnimalClassify {

? ?public static void main(String[] args) throws Exception {

? ? ? ?// 加載數(shù)據(jù)

? ? ? ?ConverterUtils.DataSource source = new ConverterUtils.DataSource(AnimalClassify.class.getClassLoader().getResource("data/zoo.arff").getPath());

? ? ? ?Instances dataSet = source.getDataSet();

? ? ? ?System.out.println(dataSet.numInstances() + " instances loaded.");

? ? ? ?System.out.println(dataSet.toString());

? ? ? ?Remove remove = new Remove();

? ? ? ?String[] opts = new String[]{"-R", "1"};

? ? ? ?remove.setOptions(opts);

? ? ? ?remove.setInputFormat(dataSet);

? ? ? ?dataSet = Filter.useFilter(dataSet, remove);

? ? ? ?System.out.println(dataSet.toString());

? ? ? ?// 特征選擇 預處理 數(shù)據(jù)清洗

? ? ? ?// 信息增益 通過計算的個數(shù)等等 計算出屬性重要的程度 會給出一個分數(shù)

? ? ? ?InfoGainAttributeEval eval = new InfoGainAttributeEval();

? ? ? ?// 根據(jù)分數(shù)分類屬性的算法

? ? ? ?Ranker search = new Ranker();

? ? ? ?AttributeSelection attributeSelection = new AttributeSelection();

? ? ? ?attributeSelection.setEvaluator(eval);

? ? ? ?attributeSelection.setSearch(search);

? ? ? ?attributeSelection.SelectAttributes(dataSet);

? ? ? ?int[] indices = attributeSelection.selectedAttributes();

? ? ? ?System.out.println(Arrays.toString(indices));

? ? ? ?// 學習算法

? ? ? ?J48 tree = new J48();

? ? ? ?String[] options = new String[1];

? ? ? ?options[0] = "-U";

? ? ? ?tree.setOptions(options);

? ? ? ?tree.buildClassifier(dataSet);

? ? ? ?System.out.println(tree);

? ? ? ?TreeVisualizer tv = new TreeVisualizer(null, tree.graph(), new PlaceNode2());

? ? ? ?JFrame frame = new JFrame("Tree Visualizer");

? ? ? ?frame.setSize(800, 500);

? ? ? ?frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

? ? ? ?frame.getContentPane().add(tv);

? ? ? ?frame.setVisible(true);

? ? ? ?double[] vals = new double[dataSet.numAttributes()];

? ? ? ?vals[0] = 1.0; // hair {false, true}

? ? ? ?vals[1] = 0.0; // feathers {false, true}

? ? ? ?vals[2] = 0.0; // eggs {false, true}

? ? ? ?vals[3] = 1.0; // milk {false, true}

? ? ? ?vals[4] = 0.0; // airborne {false, true}

? ? ? ?vals[5] = 0.0; // aquatic {false, true}

? ? ? ?vals[6] = 0.0; // predator {false, true}

? ? ? ?vals[7] = 1.0; // toothed {false, true}

? ? ? ?vals[8] = 1.0; // backbone {false, true}

? ? ? ?vals[9] = 1.0; // breathes {false, true}

? ? ? ?vals[10] = 1.0; // venomous {false, true}

? ? ? ?vals[11] = 0.0; // fins {false, true}

? ? ? ?vals[12] = 4.0; // legs INTEGER [0,9]

? ? ? ?vals[13] = 1.0; // tail {false, true}

? ? ? ?vals[14] = 1.0; // domestic {false, true}

? ? ? ?vals[15] = 0.0; // catsize {false, true}

? ? ? ?Instance myUnicorn = new DenseInstance(1.0,vals);

? ? ? ?myUnicorn.setDataset(dataSet);

? ? ? ?double result = tree.classifyInstance(myUnicorn);

? ? ? ?System.out.println(result);

? ? ? ?System.out.println(dataSet.classAttribute().value((int)result));

? ? ? ?Classifier cl = new J48();

? ? ? ?Evaluation eval_roc = new Evaluation(dataSet);

? ? ? ?eval_roc.crossValidateModel(cl, dataSet, 10, new Random(1), new Object[]{});

? ? ? ?System.out.println(eval_roc.toSummaryString());

? ? ? ?double[][] confusionMatrix = eval_roc.confusionMatrix();

? ? ? ?System.out.println(eval_roc.toMatrixString());

? ?}

}







Java 人工智能 - Weka - 分類算法的評論 (共 條)

分享到微博請遵守國家法律
清流县| 彭阳县| 南宁市| 牡丹江市| 长寿区| 南通市| 泽州县| 青浦区| 古交市| 长垣县| 古丈县| 延边| 隆尧县| 盐城市| 汤阴县| 塔河县| 丹东市| 弥勒县| 兴和县| 饶河县| 红桥区| 延边| 瑞昌市| 麻阳| 巴中市| 轮台县| 海兴县| 黄山市| 江口县| 岚皋县| 江都市| 马公市| 宣武区| 丹棱县| 青冈县| 长白| 长丰县| 安顺市| 晋州市| 宁安市| 汤原县|