|
|
|
@@ -0,0 +1,526 @@
|
|
|
|
|
{
|
|
|
|
|
"cells": [
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 1,
|
|
|
|
|
"id": "0e48f7d2-7481-4eca-9c38-56d21c203093",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stderr",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"DEBUG:weka.core.jvm:Adding bundled jars\n",
|
|
|
|
|
"DEBUG:weka.core.jvm:Classpath=['/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/javabridge/jars/rhino-1.7R4.jar', '/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/javabridge/jars/runnablequeue.jar', '/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/javabridge/jars/cpython.jar', '/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/weka/lib/python-weka-wrapper.jar', '/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/weka/lib/weka.jar']\n",
|
|
|
|
|
"DEBUG:weka.core.jvm:MaxHeapSize=default\n",
|
|
|
|
|
"DEBUG:weka.core.jvm:Package support disabled\n",
|
|
|
|
|
"WARNING: An illegal reflective access operation has occurred\n",
|
|
|
|
|
"WARNING: Illegal reflective access by weka.core.WekaPackageClassLoaderManager (file:/Users/rmontanana/miniconda3/envs/pyweka/lib/python3.10/site-packages/weka/lib/weka.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)\n",
|
|
|
|
|
"WARNING: Please consider reporting this to the maintainers of weka.core.WekaPackageClassLoaderManager\n",
|
|
|
|
|
"WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations\n",
|
|
|
|
|
"WARNING: All illegal access operations will be denied in a future release\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"import weka.core.jvm as jvm\n",
|
|
|
|
|
"jvm.start()"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 4,
|
|
|
|
|
"id": "2ac4e479-3818-4562-a967-bb303d8dd573",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"from weka.core.converters import Loader\n",
|
|
|
|
|
"data_dir = \"/Users/rmontanana/Code/discretizbench/datasets/\"\n",
|
|
|
|
|
"loader = Loader(classname=\"weka.core.converters.ArffLoader\")\n",
|
|
|
|
|
"data = loader.load_file(data_dir + \"iris.arff\")\n",
|
|
|
|
|
"data.class_is_last()\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 5,
|
|
|
|
|
"id": "ceb9f912-db42-4cbc-808f-48b5a9d89d44",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"@relation iris\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"@attribute sepallength numeric\n",
|
|
|
|
|
"@attribute sepalwidth numeric\n",
|
|
|
|
|
"@attribute petallength numeric\n",
|
|
|
|
|
"@attribute petalwidth numeric\n",
|
|
|
|
|
"@attribute class {Iris-setosa,Iris-versicolor,Iris-virginica}\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"@data\n",
|
|
|
|
|
"5.1,3.5,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"4.9,3,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"4.7,3.2,1.3,0.2,Iris-setosa\n",
|
|
|
|
|
"4.6,3.1,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3.6,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"5.4,3.9,1.7,0.4,Iris-setosa\n",
|
|
|
|
|
"4.6,3.4,1.4,0.3,Iris-setosa\n",
|
|
|
|
|
"5,3.4,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"4.4,2.9,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"4.9,3.1,1.5,0.1,Iris-setosa\n",
|
|
|
|
|
"5.4,3.7,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"4.8,3.4,1.6,0.2,Iris-setosa\n",
|
|
|
|
|
"4.8,3,1.4,0.1,Iris-setosa\n",
|
|
|
|
|
"4.3,3,1.1,0.1,Iris-setosa\n",
|
|
|
|
|
"5.8,4,1.2,0.2,Iris-setosa\n",
|
|
|
|
|
"5.7,4.4,1.5,0.4,Iris-setosa\n",
|
|
|
|
|
"5.4,3.9,1.3,0.4,Iris-setosa\n",
|
|
|
|
|
"5.1,3.5,1.4,0.3,Iris-setosa\n",
|
|
|
|
|
"5.7,3.8,1.7,0.3,Iris-setosa\n",
|
|
|
|
|
"5.1,3.8,1.5,0.3,Iris-setosa\n",
|
|
|
|
|
"5.4,3.4,1.7,0.2,Iris-setosa\n",
|
|
|
|
|
"5.1,3.7,1.5,0.4,Iris-setosa\n",
|
|
|
|
|
"4.6,3.6,1,0.2,Iris-setosa\n",
|
|
|
|
|
"5.1,3.3,1.7,0.5,Iris-setosa\n",
|
|
|
|
|
"4.8,3.4,1.9,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3,1.6,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3.4,1.6,0.4,Iris-setosa\n",
|
|
|
|
|
"5.2,3.5,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"5.2,3.4,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"4.7,3.2,1.6,0.2,Iris-setosa\n",
|
|
|
|
|
"4.8,3.1,1.6,0.2,Iris-setosa\n",
|
|
|
|
|
"5.4,3.4,1.5,0.4,Iris-setosa\n",
|
|
|
|
|
"5.2,4.1,1.5,0.1,Iris-setosa\n",
|
|
|
|
|
"5.5,4.2,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"4.9,3.1,1.5,0.1,Iris-setosa\n",
|
|
|
|
|
"5,3.2,1.2,0.2,Iris-setosa\n",
|
|
|
|
|
"5.5,3.5,1.3,0.2,Iris-setosa\n",
|
|
|
|
|
"4.9,3.1,1.5,0.1,Iris-setosa\n",
|
|
|
|
|
"4.4,3,1.3,0.2,Iris-setosa\n",
|
|
|
|
|
"5.1,3.4,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3.5,1.3,0.3,Iris-setosa\n",
|
|
|
|
|
"4.5,2.3,1.3,0.3,Iris-setosa\n",
|
|
|
|
|
"4.4,3.2,1.3,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3.5,1.6,0.6,Iris-setosa\n",
|
|
|
|
|
"5.1,3.8,1.9,0.4,Iris-setosa\n",
|
|
|
|
|
"4.8,3,1.4,0.3,Iris-setosa\n",
|
|
|
|
|
"5.1,3.8,1.6,0.2,Iris-setosa\n",
|
|
|
|
|
"4.6,3.2,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"5.3,3.7,1.5,0.2,Iris-setosa\n",
|
|
|
|
|
"5,3.3,1.4,0.2,Iris-setosa\n",
|
|
|
|
|
"7,3.2,4.7,1.4,Iris-versicolor\n",
|
|
|
|
|
"6.4,3.2,4.5,1.5,Iris-versicolor\n",
|
|
|
|
|
"6.9,3.1,4.9,1.5,Iris-versicolor\n",
|
|
|
|
|
"5.5,2.3,4,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.5,2.8,4.6,1.5,Iris-versicolor\n",
|
|
|
|
|
"5.7,2.8,4.5,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.3,3.3,4.7,1.6,Iris-versicolor\n",
|
|
|
|
|
"4.9,2.4,3.3,1,Iris-versicolor\n",
|
|
|
|
|
"6.6,2.9,4.6,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.2,2.7,3.9,1.4,Iris-versicolor\n",
|
|
|
|
|
"5,2,3.5,1,Iris-versicolor\n",
|
|
|
|
|
"5.9,3,4.2,1.5,Iris-versicolor\n",
|
|
|
|
|
"6,2.2,4,1,Iris-versicolor\n",
|
|
|
|
|
"6.1,2.9,4.7,1.4,Iris-versicolor\n",
|
|
|
|
|
"5.6,2.9,3.6,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.7,3.1,4.4,1.4,Iris-versicolor\n",
|
|
|
|
|
"5.6,3,4.5,1.5,Iris-versicolor\n",
|
|
|
|
|
"5.8,2.7,4.1,1,Iris-versicolor\n",
|
|
|
|
|
"6.2,2.2,4.5,1.5,Iris-versicolor\n",
|
|
|
|
|
"5.6,2.5,3.9,1.1,Iris-versicolor\n",
|
|
|
|
|
"5.9,3.2,4.8,1.8,Iris-versicolor\n",
|
|
|
|
|
"6.1,2.8,4,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.3,2.5,4.9,1.5,Iris-versicolor\n",
|
|
|
|
|
"6.1,2.8,4.7,1.2,Iris-versicolor\n",
|
|
|
|
|
"6.4,2.9,4.3,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.6,3,4.4,1.4,Iris-versicolor\n",
|
|
|
|
|
"6.8,2.8,4.8,1.4,Iris-versicolor\n",
|
|
|
|
|
"6.7,3,5,1.7,Iris-versicolor\n",
|
|
|
|
|
"6,2.9,4.5,1.5,Iris-versicolor\n",
|
|
|
|
|
"5.7,2.6,3.5,1,Iris-versicolor\n",
|
|
|
|
|
"5.5,2.4,3.8,1.1,Iris-versicolor\n",
|
|
|
|
|
"5.5,2.4,3.7,1,Iris-versicolor\n",
|
|
|
|
|
"5.8,2.7,3.9,1.2,Iris-versicolor\n",
|
|
|
|
|
"6,2.7,5.1,1.6,Iris-versicolor\n",
|
|
|
|
|
"5.4,3,4.5,1.5,Iris-versicolor\n",
|
|
|
|
|
"6,3.4,4.5,1.6,Iris-versicolor\n",
|
|
|
|
|
"6.7,3.1,4.7,1.5,Iris-versicolor\n",
|
|
|
|
|
"6.3,2.3,4.4,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.6,3,4.1,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.5,2.5,4,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.5,2.6,4.4,1.2,Iris-versicolor\n",
|
|
|
|
|
"6.1,3,4.6,1.4,Iris-versicolor\n",
|
|
|
|
|
"5.8,2.6,4,1.2,Iris-versicolor\n",
|
|
|
|
|
"5,2.3,3.3,1,Iris-versicolor\n",
|
|
|
|
|
"5.6,2.7,4.2,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.7,3,4.2,1.2,Iris-versicolor\n",
|
|
|
|
|
"5.7,2.9,4.2,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.2,2.9,4.3,1.3,Iris-versicolor\n",
|
|
|
|
|
"5.1,2.5,3,1.1,Iris-versicolor\n",
|
|
|
|
|
"5.7,2.8,4.1,1.3,Iris-versicolor\n",
|
|
|
|
|
"6.3,3.3,6,2.5,Iris-virginica\n",
|
|
|
|
|
"5.8,2.7,5.1,1.9,Iris-virginica\n",
|
|
|
|
|
"7.1,3,5.9,2.1,Iris-virginica\n",
|
|
|
|
|
"6.3,2.9,5.6,1.8,Iris-virginica\n",
|
|
|
|
|
"6.5,3,5.8,2.2,Iris-virginica\n",
|
|
|
|
|
"7.6,3,6.6,2.1,Iris-virginica\n",
|
|
|
|
|
"4.9,2.5,4.5,1.7,Iris-virginica\n",
|
|
|
|
|
"7.3,2.9,6.3,1.8,Iris-virginica\n",
|
|
|
|
|
"6.7,2.5,5.8,1.8,Iris-virginica\n",
|
|
|
|
|
"7.2,3.6,6.1,2.5,Iris-virginica\n",
|
|
|
|
|
"6.5,3.2,5.1,2,Iris-virginica\n",
|
|
|
|
|
"6.4,2.7,5.3,1.9,Iris-virginica\n",
|
|
|
|
|
"6.8,3,5.5,2.1,Iris-virginica\n",
|
|
|
|
|
"5.7,2.5,5,2,Iris-virginica\n",
|
|
|
|
|
"5.8,2.8,5.1,2.4,Iris-virginica\n",
|
|
|
|
|
"6.4,3.2,5.3,2.3,Iris-virginica\n",
|
|
|
|
|
"6.5,3,5.5,1.8,Iris-virginica\n",
|
|
|
|
|
"7.7,3.8,6.7,2.2,Iris-virginica\n",
|
|
|
|
|
"7.7,2.6,6.9,2.3,Iris-virginica\n",
|
|
|
|
|
"6,2.2,5,1.5,Iris-virginica\n",
|
|
|
|
|
"6.9,3.2,5.7,2.3,Iris-virginica\n",
|
|
|
|
|
"5.6,2.8,4.9,2,Iris-virginica\n",
|
|
|
|
|
"7.7,2.8,6.7,2,Iris-virginica\n",
|
|
|
|
|
"6.3,2.7,4.9,1.8,Iris-virginica\n",
|
|
|
|
|
"6.7,3.3,5.7,2.1,Iris-virginica\n",
|
|
|
|
|
"7.2,3.2,6,1.8,Iris-virginica\n",
|
|
|
|
|
"6.2,2.8,4.8,1.8,Iris-virginica\n",
|
|
|
|
|
"6.1,3,4.9,1.8,Iris-virginica\n",
|
|
|
|
|
"6.4,2.8,5.6,2.1,Iris-virginica\n",
|
|
|
|
|
"7.2,3,5.8,1.6,Iris-virginica\n",
|
|
|
|
|
"7.4,2.8,6.1,1.9,Iris-virginica\n",
|
|
|
|
|
"7.9,3.8,6.4,2,Iris-virginica\n",
|
|
|
|
|
"6.4,2.8,5.6,2.2,Iris-virginica\n",
|
|
|
|
|
"6.3,2.8,5.1,1.5,Iris-virginica\n",
|
|
|
|
|
"6.1,2.6,5.6,1.4,Iris-virginica\n",
|
|
|
|
|
"7.7,3,6.1,2.3,Iris-virginica\n",
|
|
|
|
|
"6.3,3.4,5.6,2.4,Iris-virginica\n",
|
|
|
|
|
"6.4,3.1,5.5,1.8,Iris-virginica\n",
|
|
|
|
|
"6,3,4.8,1.8,Iris-virginica\n",
|
|
|
|
|
"6.9,3.1,5.4,2.1,Iris-virginica\n",
|
|
|
|
|
"6.7,3.1,5.6,2.4,Iris-virginica\n",
|
|
|
|
|
"6.9,3.1,5.1,2.3,Iris-virginica\n",
|
|
|
|
|
"5.8,2.7,5.1,1.9,Iris-virginica\n",
|
|
|
|
|
"6.8,3.2,5.9,2.3,Iris-virginica\n",
|
|
|
|
|
"6.7,3.3,5.7,2.5,Iris-virginica\n",
|
|
|
|
|
"6.7,3,5.2,2.3,Iris-virginica\n",
|
|
|
|
|
"6.3,2.5,5,1.9,Iris-virginica\n",
|
|
|
|
|
"6.5,3,5.2,2,Iris-virginica\n",
|
|
|
|
|
"6.2,3.4,5.4,2.3,Iris-virginica\n",
|
|
|
|
|
"5.9,3,5.1,1.8,Iris-virginica\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"print(data)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 6,
|
|
|
|
|
"id": "ded59d25-c34c-4fb8-a35f-1162f1218414",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": [
|
|
|
|
|
"from weka.classifiers import Classifier\n",
|
|
|
|
|
"cls = Classifier(classname=\"weka.classifiers.trees.J48\", options=[\"-C\", \"0.3\"])"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 7,
|
|
|
|
|
"id": "4c82f2ae-4071-4571-9a19-433b98463143",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"['-C', '0.3', '-M', '2']\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"print(cls.options)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 8,
|
|
|
|
|
"id": "4c5c7893-ebbe-407d-872c-fd0bf41f8dc8",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"weka.classifiers.trees.J48 -C 0.3 -M 2\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"print(cls.to_commandline())"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 14,
|
|
|
|
|
"id": "7b73c18d-e0b0-469d-8a60-03bae8e01128",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"1: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"2: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"3: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"4: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"5: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"6: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"7: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"8: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"9: label index=0.0, class distribution=[0.96326708 0.02223308 0.01449983]\n",
|
|
|
|
|
"10: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"11: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"12: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"13: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"14: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"15: label index=0.0, class distribution=[0.9382677 0.03162683 0.03010547]\n",
|
|
|
|
|
"16: label index=0.0, class distribution=[0.9382677 0.03162683 0.03010547]\n",
|
|
|
|
|
"17: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"18: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"19: label index=0.0, class distribution=[0.9382677 0.03162683 0.03010547]\n",
|
|
|
|
|
"20: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"21: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"22: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"23: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"24: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"25: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"26: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"27: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"28: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"29: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"30: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"31: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"32: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"33: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"34: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"35: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"36: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"37: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"38: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"39: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"40: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"41: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"42: label index=0.0, class distribution=[0.96326708 0.02223308 0.01449983]\n",
|
|
|
|
|
"43: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"44: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"45: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"46: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"47: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"48: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"49: label index=0.0, class distribution=[0.99688403 0.00188598 0.00122999]\n",
|
|
|
|
|
"50: label index=0.0, class distribution=[0.99487322 0.00310305 0.00202373]\n",
|
|
|
|
|
"51: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"52: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"53: label index=1.0, class distribution=[0.010867 0.52425197 0.46488102]\n",
|
|
|
|
|
"54: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"55: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"56: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"57: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"58: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"59: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"60: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"61: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"62: label index=1.0, class distribution=[0.00732671 0.98195521 0.01071808]\n",
|
|
|
|
|
"63: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"64: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"65: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"66: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"67: label index=1.0, class distribution=[0.00732671 0.98195521 0.01071808]\n",
|
|
|
|
|
"68: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"69: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"70: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"71: label index=2.0, class distribution=[0.00920087 0.06127297 0.92952615]\n",
|
|
|
|
|
"72: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"73: label index=2.0, class distribution=[0.00409632 0.47019227 0.5257114 ]\n",
|
|
|
|
|
"74: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"75: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"76: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"77: label index=2.0, class distribution=[0.00409632 0.47019227 0.5257114 ]\n",
|
|
|
|
|
"78: label index=1.0, class distribution=[0.010867 0.52425197 0.46488102]\n",
|
|
|
|
|
"79: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"80: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"81: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"82: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"83: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"84: label index=1.0, class distribution=[0.02353491 0.65433551 0.32212958]\n",
|
|
|
|
|
"85: label index=1.0, class distribution=[0.01727259 0.943168 0.03955941]\n",
|
|
|
|
|
"86: label index=1.0, class distribution=[0.06513736 0.90310001 0.03176263]\n",
|
|
|
|
|
"87: label index=1.0, class distribution=[0.00545355 0.97466198 0.01988447]\n",
|
|
|
|
|
"88: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"89: label index=1.0, class distribution=[0.00732671 0.98195521 0.01071808]\n",
|
|
|
|
|
"90: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"91: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"92: label index=1.0, class distribution=[0.00732671 0.98195521 0.01071808]\n",
|
|
|
|
|
"93: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"94: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"95: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"96: label index=1.0, class distribution=[0.00732671 0.98195521 0.01071808]\n",
|
|
|
|
|
"97: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"98: label index=1.0, class distribution=[0.00228744 0.97269152 0.02502104]\n",
|
|
|
|
|
"99: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"100: label index=1.0, class distribution=[0.00308382 0.98338244 0.01353374]\n",
|
|
|
|
|
"101: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"102: label index=2.0, class distribution=[0.01274667 0.02829538 0.95895795]\n",
|
|
|
|
|
"103: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"104: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"105: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"106: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"107: label index=1.0, class distribution=[0.00725727 0.94287877 0.04986396]\n",
|
|
|
|
|
"108: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"109: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"110: label index=2.0, class distribution=[0.00431289 0.0395258 0.95616131]\n",
|
|
|
|
|
"111: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"112: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"113: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"114: label index=2.0, class distribution=[0.01274667 0.02829538 0.95895795]\n",
|
|
|
|
|
"115: label index=2.0, class distribution=[0.01274667 0.02829538 0.95895795]\n",
|
|
|
|
|
"116: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"117: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"118: label index=2.0, class distribution=[0.00431289 0.0395258 0.95616131]\n",
|
|
|
|
|
"119: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"120: label index=1.0, class distribution=[0.02353491 0.65433551 0.32212958]\n",
|
|
|
|
|
"121: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"122: label index=2.0, class distribution=[0.01274667 0.02829538 0.95895795]\n",
|
|
|
|
|
"123: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"124: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"125: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"126: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"127: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"128: label index=2.0, class distribution=[0.00920087 0.06127297 0.92952615]\n",
|
|
|
|
|
"129: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"130: label index=1.0, class distribution=[0.010867 0.52425197 0.46488102]\n",
|
|
|
|
|
"131: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"132: label index=2.0, class distribution=[0.00431289 0.0395258 0.95616131]\n",
|
|
|
|
|
"133: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"134: label index=2.0, class distribution=[0.00409632 0.47019227 0.5257114 ]\n",
|
|
|
|
|
"135: label index=1.0, class distribution=[0.02353491 0.65433551 0.32212958]\n",
|
|
|
|
|
"136: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"137: label index=2.0, class distribution=[0.00431289 0.0395258 0.95616131]\n",
|
|
|
|
|
"138: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"139: label index=2.0, class distribution=[0.00920087 0.06127297 0.92952615]\n",
|
|
|
|
|
"140: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"141: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"142: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"143: label index=2.0, class distribution=[0.01274667 0.02829538 0.95895795]\n",
|
|
|
|
|
"144: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"145: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"146: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"147: label index=2.0, class distribution=[0.00139749 0.01280739 0.98579512]\n",
|
|
|
|
|
"148: label index=2.0, class distribution=[0.00102485 0.02817698 0.97079816]\n",
|
|
|
|
|
"149: label index=2.0, class distribution=[0.00431289 0.0395258 0.95616131]\n",
|
|
|
|
|
"150: label index=2.0, class distribution=[0.00920087 0.06127297 0.92952615]\n"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"from weka.classifiers import Classifier\n",
|
|
|
|
|
"cls = Classifier(classname=\"weka.classifiers.bayes.BayesNet\", options=[\"-Q\", \"weka.classifiers.bayes.net.search.local.TAN\"])\n",
|
|
|
|
|
"cls.build_classifier(data)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"for index, inst in enumerate(data):\n",
|
|
|
|
|
" pred = cls.classify_instance(inst)\n",
|
|
|
|
|
" dist = cls.distribution_for_instance(inst)\n",
|
|
|
|
|
" print(str(index+1) + \": label index=\" + str(pred) + \", class distribution=\" + str(dist))"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": 13,
|
|
|
|
|
"id": "0b74f00a-15b3-4177-bb8c-e02ed1a3fd38",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"text": [
|
|
|
|
|
"Bayes Network Classifier\n",
|
|
|
|
|
"Using ADTree\n",
|
|
|
|
|
"#attributes=5 #classindex=4\n",
|
|
|
|
|
"Network structure (nodes followed by parents)\n",
|
|
|
|
|
"sepallength(3): class \n",
|
|
|
|
|
"sepalwidth(3): class petalwidth \n",
|
|
|
|
|
"petallength(3): class sepallength \n",
|
|
|
|
|
"petalwidth(3): class petallength \n",
|
|
|
|
|
"class(3): \n",
|
|
|
|
|
"LogScore Bayes: -484.0749140715054\n",
|
|
|
|
|
"LogScore BDeu: -653.8524681760015\n",
|
|
|
|
|
"LogScore MDL: -654.6252712234647\n",
|
|
|
|
|
"LogScore ENTROPY: -499.2955771064808\n",
|
|
|
|
|
"LogScore AIC: -561.2955771064808\n",
|
|
|
|
|
"\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"ename": "OSError",
|
|
|
|
|
"evalue": "[Errno 63] File name too long: '<?xml version=\"1.0\"?>\\n<!-- DTD for the XMLBIF 0.3 format -->\\n<!DOCTYPE BIF [\\n\\t<!ELEMENT BIF ( NETWORK )*>\\n\\t <!ATTLIST BIF VERSION CDATA #REQUIRED>\\n\\t<!ELEMENT NETWORK ( NAME, ( PROPERTY | VARIABLE | DEFINITION )* )>\\n\\t<!ELEMENT NAME (#PCDATA)>\\n\\t<!ELEMENT VARIABLE ( NAME, ( OUTCOME | PROPERTY )* ) >\\n\\t <!ATTLIST VARIABLE TYPE (nature|decision|utility) \"nature\">\\n\\t<!ELEMENT OUTCOME (#PCDATA)>\\n\\t<!ELEMENT DEFINITION ( FOR | GIVEN | TABLE | PROPERTY )* >\\n\\t<!ELEMENT FOR (#PCDATA)>\\n\\t<!ELEMENT GIVEN (#PCDATA)>\\n\\t<!ELEMENT TABLE (#PCDATA)>\\n\\t<!ELEMENT PROPERTY (#PCDATA)>\\n]>\\n\\n\\n<BIF VERSION=\"0.3\">\\n<NETWORK>\\n<NAME>iris-weka.filters.supervised.attribute.Discretize-Rfirst-last-precision6-weka.filters.unsupervised.attribute.ReplaceMissingValues</NAME>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>sepallength</NAME>\\n<OUTCOME>'\\\\'(-inf-5.55]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(5.55-6.15]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(6.15-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>sepalwidth</NAME>\\n<OUTCOME>'\\\\'(-inf-2.95]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(2.95-3.35]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(3.35-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>petallength</NAME>\\n<OUTCOME>'\\\\'(-inf-2.45]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(2.45-4.75]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(4.75-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>petalwidth</NAME>\\n<OUTCOME>'\\\\'(-inf-0.8]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(0.8-1.75]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(1.75-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>class</NAME>\\n<OUTCOME>Iris-setosa</OUTCOME>\\n<OUTCOME>Iris-versicolor</OUTCOME>\\n<OUTCOME>Iris-virginica</OUTCOME>\\n</VARIABLE>\\n<DEFINITION>\\n<FOR>sepallength</FOR>\\n<GIVEN>class</GIVEN>\\n<TABLE>\\n0.9223300970873787 0.06796116504854369 0.009708737864077669 \\n0.22330097087378642 0.4563106796116505 0.32038834951456313 \\n0.02912621359223301 0.20388349514563106 0.7669902912621359 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>sepalwidth</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>petalwidth</GIVEN>\\n<TABLE>\\n0.04854368932038835 0.3592233009708738 0.5922330097087378 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.6831683168316832 0.2871287128712871 0.0297029702970297 \\n0.2 0.6 0.2 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.6923076923076923 0.23076923076923078 0.07692307692307693 \\n0.3763440860215054 0.5053763440860215 0.11827956989247312 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>petallength</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>sepallength</GIVEN>\\n<TABLE>\\n0.979381443298969 0.010309278350515464 0.010309278350515464 \\n0.7777777777777778 0.1111111111111111 0.1111111111111111 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.04 0.92 0.04 \\n0.02040816326530612 0.8775510204081632 0.10204081632653061 \\n0.02857142857142857 0.7142857142857143 0.2571428571428571 \\n0.2 0.6 0.2 \\n0.043478260869565216 0.043478260869565216 0.9130434782608695 \\n0.012345679012345678 0.012345679012345678 0.9753086419753086 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>petalwidth</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>petallength</GIVEN>\\n<TABLE>\\n0.9805825242718447 0.009708737864077669 0.009708737864077669 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.01098901098901099 0.978021978021978 0.01098901098901099 \\n0.06666666666666667 0.7333333333333333 0.2 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.2 0.6 0.2 \\n0.009900990099009901 0.0891089108910891 0.900990099009901 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>class</FOR>\\n<TABLE>\\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n</TABLE>\\n</DEFINITION>\\n</NETWORK>\\n</BIF>\\n'",
|
|
|
|
|
"output_type": "error",
|
|
|
|
|
"traceback": [
|
|
|
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
|
|
|
"\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)",
|
|
|
|
|
"Cell \u001b[0;32mIn [13], line 9\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;28mcls\u001b[39m)\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mweka\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mplot\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgraph\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mgraph\u001b[39;00m \u001b[38;5;66;03m# NB: pygraphviz and PIL are required\u001b[39;00m\n\u001b[0;32m----> 9\u001b[0m \u001b[43mgraph\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot_dot_graph\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mcls\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgraph\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
|
|
|
"File \u001b[0;32m~/miniconda3/envs/pyweka/lib/python3.10/site-packages/weka/plot/graph.py:49\u001b[0m, in \u001b[0;36mplot_dot_graph\u001b[0;34m(graph, filename)\u001b[0m\n\u001b[1;32m 46\u001b[0m logger\u001b[38;5;241m.\u001b[39merror(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPIL is not installed, cannot display graph plot!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 47\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m\n\u001b[0;32m---> 49\u001b[0m agraph \u001b[38;5;241m=\u001b[39m \u001b[43mAGraph\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgraph\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 50\u001b[0m agraph\u001b[38;5;241m.\u001b[39mlayout(prog\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdot\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 51\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m filename \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
|
|
|
|
|
"File \u001b[0;32m~/miniconda3/envs/pyweka/lib/python3.10/site-packages/pygraphviz/agraph.py:157\u001b[0m, in \u001b[0;36mAGraph.__init__\u001b[0;34m(self, thing, filename, data, string, handle, name, strict, directed, **attr)\u001b[0m\n\u001b[1;32m 154\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_owns_handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 155\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m filename \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 156\u001b[0m \u001b[38;5;66;03m# load new graph from file (creates self.handle)\u001b[39;00m\n\u001b[0;32m--> 157\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 158\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m string \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 159\u001b[0m \u001b[38;5;66;03m# load new graph from string (creates self.handle)\u001b[39;00m\n\u001b[1;32m 160\u001b[0m \u001b[38;5;66;03m# get the charset from the string to properly encode it for\u001b[39;00m\n\u001b[1;32m 161\u001b[0m \u001b[38;5;66;03m# writing to the temporary file in from_string()\u001b[39;00m\n\u001b[1;32m 162\u001b[0m match \u001b[38;5;241m=\u001b[39m re\u001b[38;5;241m.\u001b[39msearch(\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcharset\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124ms*=\u001b[39m\u001b[38;5;124m\\\u001b[39m\u001b[38;5;124ms*\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m([^\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m]+)\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m, string)\n",
|
|
|
|
|
"File \u001b[0;32m~/miniconda3/envs/pyweka/lib/python3.10/site-packages/pygraphviz/agraph.py:1243\u001b[0m, in \u001b[0;36mAGraph.read\u001b[0;34m(self, path)\u001b[0m\n\u001b[1;32m 1233\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread\u001b[39m(\u001b[38;5;28mself\u001b[39m, path):\n\u001b[1;32m 1234\u001b[0m \u001b[38;5;124;03m\"\"\"Read graph from dot format file on path.\u001b[39;00m\n\u001b[1;32m 1235\u001b[0m \n\u001b[1;32m 1236\u001b[0m \u001b[38;5;124;03m path can be a file name or file handle\u001b[39;00m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 1241\u001b[0m \n\u001b[1;32m 1242\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m-> 1243\u001b[0m fh \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_fh\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1244\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 1245\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_close_handle()\n",
|
|
|
|
|
"File \u001b[0;32m~/miniconda3/envs/pyweka/lib/python3.10/site-packages/pygraphviz/agraph.py:1791\u001b[0m, in \u001b[0;36mAGraph._get_fh\u001b[0;34m(self, path, mode)\u001b[0m\n\u001b[1;32m 1789\u001b[0m fh \u001b[38;5;241m=\u001b[39m os\u001b[38;5;241m.\u001b[39mpopen(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbzcat \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m path) \u001b[38;5;66;03m# probably not portable\u001b[39;00m\n\u001b[1;32m 1790\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1791\u001b[0m fh \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1792\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(path, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwrite\u001b[39m\u001b[38;5;124m\"\u001b[39m):\n\u001b[1;32m 1793\u001b[0m \u001b[38;5;66;03m# Note, mode of file handle is unchanged.\u001b[39;00m\n\u001b[1;32m 1794\u001b[0m fh \u001b[38;5;241m=\u001b[39m path\n",
|
|
|
|
|
"\u001b[0;31mOSError\u001b[0m: [Errno 63] File name too long: '<?xml version=\"1.0\"?>\\n<!-- DTD for the XMLBIF 0.3 format -->\\n<!DOCTYPE BIF [\\n\\t<!ELEMENT BIF ( NETWORK )*>\\n\\t <!ATTLIST BIF VERSION CDATA #REQUIRED>\\n\\t<!ELEMENT NETWORK ( NAME, ( PROPERTY | VARIABLE | DEFINITION )* )>\\n\\t<!ELEMENT NAME (#PCDATA)>\\n\\t<!ELEMENT VARIABLE ( NAME, ( OUTCOME | PROPERTY )* ) >\\n\\t <!ATTLIST VARIABLE TYPE (nature|decision|utility) \"nature\">\\n\\t<!ELEMENT OUTCOME (#PCDATA)>\\n\\t<!ELEMENT DEFINITION ( FOR | GIVEN | TABLE | PROPERTY )* >\\n\\t<!ELEMENT FOR (#PCDATA)>\\n\\t<!ELEMENT GIVEN (#PCDATA)>\\n\\t<!ELEMENT TABLE (#PCDATA)>\\n\\t<!ELEMENT PROPERTY (#PCDATA)>\\n]>\\n\\n\\n<BIF VERSION=\"0.3\">\\n<NETWORK>\\n<NAME>iris-weka.filters.supervised.attribute.Discretize-Rfirst-last-precision6-weka.filters.unsupervised.attribute.ReplaceMissingValues</NAME>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>sepallength</NAME>\\n<OUTCOME>'\\\\'(-inf-5.55]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(5.55-6.15]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(6.15-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>sepalwidth</NAME>\\n<OUTCOME>'\\\\'(-inf-2.95]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(2.95-3.35]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(3.35-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>petallength</NAME>\\n<OUTCOME>'\\\\'(-inf-2.45]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(2.45-4.75]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(4.75-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>petalwidth</NAME>\\n<OUTCOME>'\\\\'(-inf-0.8]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(0.8-1.75]\\\\''</OUTCOME>\\n<OUTCOME>'\\\\'(1.75-inf)\\\\''</OUTCOME>\\n</VARIABLE>\\n<VARIABLE TYPE=\"nature\">\\n<NAME>class</NAME>\\n<OUTCOME>Iris-setosa</OUTCOME>\\n<OUTCOME>Iris-versicolor</OUTCOME>\\n<OUTCOME>Iris-virginica</OUTCOME>\\n</VARIABLE>\\n<DEFINITION>\\n<FOR>sepallength</FOR>\\n<GIVEN>class</GIVEN>\\n<TABLE>\\n0.9223300970873787 0.06796116504854369 0.009708737864077669 \\n0.22330097087378642 0.4563106796116505 0.32038834951456313 \\n0.02912621359223301 0.20388349514563106 0.7669902912621359 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>sepalwidth</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>petalwidth</GIVEN>\\n<TABLE>\\n0.04854368932038835 0.3592233009708738 0.5922330097087378 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.6831683168316832 0.2871287128712871 0.0297029702970297 \\n0.2 0.6 0.2 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.6923076923076923 0.23076923076923078 0.07692307692307693 \\n0.3763440860215054 0.5053763440860215 0.11827956989247312 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>petallength</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>sepallength</GIVEN>\\n<TABLE>\\n0.979381443298969 0.010309278350515464 0.010309278350515464 \\n0.7777777777777778 0.1111111111111111 0.1111111111111111 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.04 0.92 0.04 \\n0.02040816326530612 0.8775510204081632 0.10204081632653061 \\n0.02857142857142857 0.7142857142857143 0.2571428571428571 \\n0.2 0.6 0.2 \\n0.043478260869565216 0.043478260869565216 0.9130434782608695 \\n0.012345679012345678 0.012345679012345678 0.9753086419753086 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>petalwidth</FOR>\\n<GIVEN>class</GIVEN>\\n<GIVEN>petallength</GIVEN>\\n<TABLE>\\n0.9805825242718447 0.009708737864077669 0.009708737864077669 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.01098901098901099 0.978021978021978 0.01098901098901099 \\n0.06666666666666667 0.7333333333333333 0.2 \\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n0.2 0.6 0.2 \\n0.009900990099009901 0.0891089108910891 0.900990099009901 \\n</TABLE>\\n</DEFINITION>\\n<DEFINITION>\\n<FOR>class</FOR>\\n<TABLE>\\n0.3333333333333333 0.3333333333333333 0.3333333333333333 \\n</TABLE>\\n</DEFINITION>\\n</NETWORK>\\n</BIF>\\n'"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"source": [
|
|
|
|
|
"from weka.classifiers import Classifier\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"cls = Classifier(classname=\"weka.classifiers.bayes.BayesNet\", options=[\"-Q\", \"weka.classifiers.bayes.net.search.local.TAN\"])\n",
|
|
|
|
|
"cls.build_classifier(data)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"print(cls)\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"import weka.plot.graph as graph # NB: pygraphviz and PIL are required\n",
|
|
|
|
|
"graph.plot_dot_graph(cls.graph)"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"execution_count": null,
|
|
|
|
|
"id": "3f59f200-4f23-4add-86ae-6df1494ede82",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"source": []
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"metadata": {
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
"display_name": "Python 3 (ipykernel)",
|
|
|
|
|
"language": "python",
|
|
|
|
|
"name": "python3"
|
|
|
|
|
},
|
|
|
|
|
"language_info": {
|
|
|
|
|
"codemirror_mode": {
|
|
|
|
|
"name": "ipython",
|
|
|
|
|
"version": 3
|
|
|
|
|
},
|
|
|
|
|
"file_extension": ".py",
|
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
|
"name": "python",
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
|
"version": "3.10.6"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
"nbformat_minor": 5
|
|
|
|
|
}
|