Commit Inicial

This commit is contained in:
2020-11-20 11:23:40 +01:00
commit 5611e5bc01
2914 changed files with 2625178 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
4 0 6 5 7
2 1 3 9 8

View File

@@ -0,0 +1,8 @@
4 0 3 1 5 8 6 7
2 9
3 0 1 2 6 7 8 5
4 9
3 1 0 2 8 6 5 7
4 9
3 1 0 2 9 8 5 6
4 7

View File

@@ -0,0 +1,90 @@
EAST-WEST CHALLENGE
-------------------
THE CHALLENGE
-------------
These files describe the competition and contain all of the material
that was made available to the competitors. The files are from:
ftp://ftp.comlab.ox.ac.uk/pub/Packages/ILP/trains.tar.Z
The authors are Donald Michie, Stephen Muggleton, David Page and
Ashwin Srinivasan.
FILE DESCRIPTION
------------ ----------------------------------------------------
ml-header.1 an introduction to the trains competition.
ml-chall.ps a postscript document providing details of the
trains competitions.
20trains.pl a Prolog representation of 20 classified trains
(Michalski's original 10 trains plus 10 new trains).
100trains.pl a Prolog representation of 100 trains, unclassified.
train_gen.pl Prolog code for train generation and concept testing.
complex.pl Prolog code for measuring theory complexity.
THE RESULTS
-----------
These files describe the results of the competition. The files
are from:
ftp://ftp.comlab.ox.ac.uk/pub/Packages/ILP/results.tar.Z
The authors are Donald Michie, Stephen Muggleton, David Page and
Ashwin Srinivasan.
FILE DESCRIPTION
------------ ----------------------------------------------------
michie.txt: the text of Donald Michie's COMPUTING article summarizing
the results of Competition 1.
results1.txt: a detailed account of the results of Competition 1.
results2.txt: a detailed account of the results of Competition 2.
results3.txt: a detailed account of the results of Competition 3.
pfahr.txt: a description of Bernhard Pfahringer's winning program for
Competitions 1 and 3.
kaufmsg.txt: email message from Ken Kaufman of George Mason University,
expressing concern over the competition's complexity
measurement, and noting a loophole in Competition 2.
michie2.txt: response of Donald Michie to Ken Kaufman's message.
RL-ICET
-------
These files describe one of the algorithms that was used in the
competition. The author is Peter Turney.
FILE DESCRIPTION
------------ ----------------------------------------------------
RL-ICET.ps a paper, "Low Size_Complexity ILP: The East-West
Challenge Considered as a Problem in Cost-Sensitive
Classification", Proceedings of the 5th Int. Workshop
on ILP, Leuven '95.
RL-ICET.pl the data preprocessor described in RL-ICET.ps, which
converts the data from relational form to feature
vector form.

48
data/tanveer/trains/le_datos.m Executable file
View File

@@ -0,0 +1,48 @@
printf('lendo problema %s ...\n', problema);
n_entradas= 32; n_clases= 2; n_fich= 1; fich{1}= 'trains-transformed.data'; n_patrons(1)= 10;
n_max= max(n_patrons);
x = zeros(n_fich, n_max, n_entradas); cl= zeros(n_fich, n_max);
n_patrons_total = sum(n_patrons); n_iter=0;
for i_fich=1:n_fich
f=fopen(fich{i_fich}, 'r');
if -1==f
error('erro en fopen abrindo %s\n', fich{i_fich});
end
for i=1:n_patrons(i_fich)
fprintf(2,'%5.1f%%\r', 100*n_iter++/n_patrons_total);
for j = 1:n_entradas
t = fscanf(f,'%s',1);
if t ~= '-'
if j==4 || j==9 || j==14 || j==19
val={'long','short'};
elseif j==5 || j==10 || j==15 || j==20
val={'closedrect', 'dblopnrect', 'ellipse', 'engine', 'hexagon','jaggedtop', 'openrect', 'opentrap', 'slopetop', 'ushaped'};
elseif j==7 || j==12 || j==17 || j==22
val={'circlelod', 'hexagonlod', 'rectanglod', 'trianglod'};
else
x(i_fich,i,j) = str2double(t); continue
end
n=length(val);
for k=1:n
if strcmp(t, val{k})
x(i_fich,i,j)=k; break
end
end
else
x(i_fich,i,j) = 0;
end
end
t= fscanf(f,'%s',1); % lectura da clase
if strcmp(t, 'east')
cl(i_fich,i) = 0;
elseif strcmp(t, 'west')
cl(i_fich,i) = 1;
else
error('clase %s descoñecida', t)
end
end
fclose(f);
end

View File

@@ -0,0 +1,161 @@
Value Hierarchy:
[cshape=openrect,opentrap,ushaped,dblopnrect]
=>[cshape=opentop]
[cshape=hexagon,ellipse,closedrect,jaggedtop,slopetop,engine]
=>[cshape=closedtop]
%TRAIN A
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)][ccont(t1,car5)]
[ncar(t1)=5..5]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)][infront(car4,car5)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4][loc(car5)=5]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=3][nwhl(car5)=2]
[ln(car1)=long][ln(car2)=long][ln(car3)=short][ln(car4)=long][ln(car5)=short]
[cshape(car1)=engine][cshape(car2)=openrect][cshape(car3)=slopetop]
[cshape(car4)=openrect][cshape(car5)=openrect]
[npl(car1)=0][npl(car2)=3][npl(car3)=1][npl(car4)=1][npl(car5)=1]
[lcont(car2,lod1)][lcont(car2,lod2)][lcont(car2,lod3)]
[lcont(car3,lod4)][lcont(car4,lod5)][lcont(car5,lod6)]
[lshape(lod1)=rectanglod][lshape(lod2)=rectanglod][lshape(lod3)=rectanglod]
[lshape(lod4)=trianglod][lshape(lod5)=hexagonlod][lshape(lod6)=circlelod]
=>[direction=east].
%TRAIN B
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)]
[ncar(t1)=4]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=short][ln(car4)=short]
[cshape(car1)=engine][cshape(car2)=ushaped][cshape(car3)=opentrap]
[cshape(car4)=closedrect]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=2]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car4,lod3)]
[lcont(car4,lod4)]
[lshape(lod1)=trianglod][lshape(lod2)=rectanglod][lshape(lod3)=circlelod]
[lshape(lod4)=circlelod]
=>[direction=east].
%TRAIN C
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)]
[ncar(t1)=4]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=3]
[ln(car1)=long][ln(car2)=short][ln(car3)=short][ln(car4)=long]
[cshape(car1)=engine][cshape(car2)=openrect][cshape(car3)=hexagon]
[cshape(car4)=closedrect]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=1]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car4,lod3)]
[lshape(lod1)=circlelod][lshape(lod2)=trianglod][lshape(lod3)=trianglod]
=>[direction=east].
%TRAIN D
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)][ccont(t1,car5)]
[ncar(t1)=5]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)][infront(car4,car5)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4][loc(car5)=5]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=2][nwhl(car5)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=short][ln(car4)=short][ln(car5)=short]
[cshape(car1)=engine][cshape(car2)=opentrap][cshape(car3)=dblopnrect]
[cshape(car4)=ellipse][cshape(car5)=openrect]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=1][npl(car5)=1]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car4,lod3)]
[lcont(car5,lod4)]
[lshape(lod1)=trianglod][lshape(lod2)=trianglod][lshape(lod3)=rectanglod]
[lshape(lod4)=rectanglod]
=>[direction=east].
%TRAIN E
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)]
[ncar(t1)=4]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=3][nwhl(car4)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=long][ln(car4)=short]
[cshape(car1)=engine][cshape(car2)=dblopnrect][cshape(car3)=closedrect]
[cshape(car4)=closedrect]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=1]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car4,lod3)]
[lshape(lod1)=trianglod][lshape(lod2)=rectanglod][lshape(lod3)=circlelod]
=>[direction=east].
%TRAIN F
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ncar(t1)=3]
[infront(car1,car2)][infront(car2,car3)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2]
[ln(car1)=long][ln(car2)=long][ln(car3)=short]
[cshape(car1)=engine][cshape(car2)=closedrect][cshape(car3)=openrect]
[npl(car1)=0][npl(car2)=3][npl(car3)=1]
[lcont(car2,lod1)][lcont(car2,lod2)][lcont(car2,lod3)]
[lcont(car3,lod4)]
[lshape(lod1)=circlelod][lshape(lod2)=circlelod][lshape(lod3)=circlelod]
[lshape(lod4)=trianglod]
=>[direction=west].
%TRAIN G
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)]
[ncar(t1)=4]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=short][ln(car4)=long]
[cshape(car1)=engine][cshape(car2)=dblopnrect][cshape(car3)=ushaped]
[cshape(car4)=jaggedtop]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=0]
[lcont(car2,lod1)][lcont(car3,lod2)]
[lshape(lod1)=circlelod][lshape(lod2)=trianglod]
=>[direction=west].
%TRAIN H
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ncar(t1)=3]
[infront(car1,car2)][infront(car2,car3)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3]
[nwhl(car1)=2][nwhl(car2)=3][nwhl(car3)=2]
[ln(car1)=long][ln(car2)=long][ln(car3)=short]
[cshape(car1)=engine][cshape(car2)=closedrect][cshape(car3)=ushaped]
[npl(car1)=0][npl(car2)=1][npl(car3)=1]
[lcont(car2,lod1)][lcont(car3,lod2)]
[lshape(lod1)=rectanglod][lshape(lod2)=circlelod]
=>[direction=west].
%TRAIN I
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ccont(t1,car4)][ccont(t1,car5)]
[ncar(t1)=5]
[infront(car1,car2)][infront(car2,car3)][infront(car3,car4)][infront(car4,car5)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3][loc(car4)=4][loc(car5)=5]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2][nwhl(car4)=2][nwhl(car5)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=long][ln(car4)=short][ln(car5)=short]
[cshape(car1)=engine][cshape(car2)=opentrap][cshape(car3)=jaggedtop]
[cshape(car4)=openrect][cshape(car5)=opentrap]
[npl(car1)=0][npl(car2)=1][npl(car3)=1][npl(car4)=1][npl(car5)=1]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car4,lod3)]
[lcont(car5,lod4)]
[lshape(lod1)=circlelod][lshape(lod2)=rectanglod][lshape(lod3)=rectanglod]
[lshape(lod4)=circlelod]
=>[direction=west].
%TRAIN J
[ccont(t1,car1)][ccont(t1,car2)][ccont(t1,car3)]
[ncar(t1)=3]
[infront(car1,car2)][infront(car2,car3)]
[loc(car1)=1][loc(car2)=2][loc(car3)=3]
[nwhl(car1)=2][nwhl(car2)=2][nwhl(car3)=2]
[ln(car1)=long][ln(car2)=short][ln(car3)=long]
[cshape(car1)=engine][cshape(car2)=ushaped][cshape(car3)=openrect]
[npl(car1)=0][npl(car2)=1][npl(car3)=2]
[lcont(car2,lod1)][lcont(car3,lod2)][lcont(car3,lod3)]
[lshape(lod1)=rectanglod][lshape(lod2)=rectanglod][lshape(lod3)=rectanglod]
=>[direction=west].

View File

@@ -0,0 +1,11 @@
5 4 2 long openrect 3 rectanglod 2 short slopetop 1 trianglod 3 long openrect 1 hexagonlod 2 short openrect 1 circlelod 0 1 0 0 0 1 0 0 1 0 east
4 3 2 short ushaped 1 trianglod 2 short opentrap 1 rectanglod 2 short closedrect 2 circlelod - - - - - 0 1 0 1 0 0 0 0 0 0 east
4 2 2 short openrect 1 circlelod 2 short hexagon 1 trianglod 3 long closedrect 1 trianglod - - - - - 0 0 0 0 1 0 1 0 0 0 east
5 2 2 short opentrap 1 trianglod 2 short dblopnrect 1 trianglod 2 short ellipse 1 rectanglod 2 short openrect 1 rectanglod 1 1 0 0 1 0 0 0 0 0 east
4 3 2 short dblopnrect 1 trianglod 3 long closedrect 1 rectanglod 2 short closedrect 1 circlelod - - - - - 0 1 0 1 0 0 0 0 0 0 east
3 2 2 long closedrect 3 circlelod 2 short openrect 1 trianglod - - - - - - - - - - 0 0 0 0 0 0 1 0 0 0 west
4 2 2 short dblopnrect 1 circlelod 2 short ushaped 1 trianglod 2 long jaggedtop 0 - - - - - - 0 0 0 0 0 0 1 0 0 0 west
3 2 3 long closedrect 1 rectanglod 2 short ushaped 1 circlelod - - - - - - - - - - 0 0 0 1 0 0 0 0 0 0 west
5 2 2 short opentrap 1 circlelod 2 long jaggedtop 1 rectanglod 2 short openrect 1 rectanglod 2 short opentrap 1 circlelod 1 0 0 1 0 0 0 0 0 0 west
3 1 2 short ushaped 1 rectanglod 2 long openrect 2 rectanglod - - - - - - - - - - 1 0 0 0 0 0 0 0 0 0 west

42
data/tanveer/trains/trains.arff Executable file
View File

@@ -0,0 +1,42 @@
@relation trains
@attribute 'f1' real
@attribute 'f2' real
@attribute 'f3' real
@attribute 'f4' real
@attribute 'f5' real
@attribute 'f6' real
@attribute 'f7' real
@attribute 'f8' real
@attribute 'f9' real
@attribute 'f10' real
@attribute 'f11' real
@attribute 'f12' real
@attribute 'f13' real
@attribute 'f14' real
@attribute 'f15' real
@attribute 'f16' real
@attribute 'f17' real
@attribute 'f18' real
@attribute 'f19' real
@attribute 'f20' real
@attribute 'f21' real
@attribute 'f22' real
@attribute 'f23' real
@attribute 'f24' real
@attribute 'f25' real
@attribute 'f26' real
@attribute 'f27' real
@attribute 'f28' real
@attribute 'f29' real
@attribute 'clase' {0,1}
@data
1.22474,2.06493,-0.316228,-1.44914,0.379628,1.89737,0.369274,-0.316228,0.621059,0.806405,-0.316228,0.737865,1.19272,-0.114208,1.49079,0.444478,0.398527,1.44914,1.44914,1.35106,1.44914,0.514496,-0.621059,1.1619,-0.774597,-0.474342,2.84605,-0.621059,2.84605,0
0,0.850265,-0.316228,0.621059,1.19312,-0.474342,1.10782,-0.316228,0.621059,0.483843,-0.316228,-0.316228,0.340777,1.02787,-0.542105,1.92607,-0.265684,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,1.1619,1.1619,-0.474342,-0.316228,-0.621059,-0.316228,0
0,-0.364399,-0.316228,0.621059,0.379628,-0.474342,-1.10782,-0.316228,0.621059,-0.483843,-0.316228,0.737865,1.19272,-0.114208,-0.542105,0.444478,1.72695,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,-0.774597,-0.774597,1.89737,-0.316228,1.44914,-0.316228,0
1.22474,-0.364399,-0.316228,0.621059,0.650791,-0.474342,1.10782,-0.316228,0.621059,-1.45153,-0.316228,0.737865,0.340777,1.02787,0.135526,0.444478,1.06274,1.44914,1.44914,1.35106,1.44914,2.57248,1.44914,1.1619,-0.774597,1.89737,-0.316228,-0.621059,-0.316228,0
0,0.850265,-0.316228,0.621059,-0.976187,-0.474342,1.10782,2.84605,-1.44914,-1.77409,-0.316228,-0.316228,0.340777,1.02787,-0.542105,0.444478,-0.265684,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,1.1619,1.1619,-0.474342,-0.316228,-0.621059,-0.316228,0
-1.22474,-0.364399,-0.316228,-1.44914,-1.24735,1.89737,-1.10782,-0.316228,0.621059,0.161281,-0.316228,0.737865,-1.36311,-1.25629,-0.88092,-1.03712,-0.929896,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,-0.774597,-0.774597,-0.474342,-0.316228,1.44914,-0.316228,1
0,-0.364399,-0.316228,0.621059,-0.976187,-0.474342,-1.10782,-0.316228,0.621059,1.12897,-0.316228,0.737865,0.340777,-0.114208,1.15197,-1.03712,-0.929896,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,-0.774597,-0.774597,-0.474342,-0.316228,1.44914,-0.316228,1
-1.22474,-0.364399,2.84605,-1.44914,-1.24735,-0.474342,0.369274,-0.316228,0.621059,1.12897,-0.316228,-2.42441,-1.36311,-1.25629,-0.88092,-1.03712,-0.929896,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,-0.621059,-0.774597,1.1619,-0.474342,-0.316228,-0.621059,-0.316228,1
1.22474,-0.364399,-0.316228,0.621059,0.650791,-0.474342,-1.10782,-0.316228,-1.44914,-0.161281,-0.316228,-0.316228,0.340777,1.02787,1.49079,0.444478,1.06274,1.44914,1.44914,1.63253,1.44914,0.514496,1.44914,-0.774597,1.1619,-0.474342,-0.316228,-0.621059,-0.316228,1
-1.22474,-1.57906,-0.316228,0.621059,1.19312,-0.474342,0.369274,-0.316228,-1.44914,0.161281,2.84605,-0.316228,-1.36311,-1.25629,-0.88092,-1.03712,-0.929896,-0.621059,-0.621059,-0.619234,-0.621059,-0.514496,1.44914,-0.774597,-0.774597,-0.474342,-0.316228,-0.621059,-0.316228,1

View File

@@ -0,0 +1,5 @@
% Rows Columns
2 2
% Matrix elements
0.0 1.0
1.0 0.0

133
data/tanveer/trains/trains.names Executable file
View File

@@ -0,0 +1,133 @@
1. Title: INDUCE Trains Data set
2. Sources:
- Donor: GMU, Center for AI, Software Librarian,
Eric E. Bloedorn (bloedorn@aic.gmu.edu)
- Original owners: Ryszard S. Michalski (michalski@aic.gmu.edu)
and Robert Stepp
- Date received: 1 June 1994
- Date updated: 24 June 1994 (Thanks to Larry Holder (UT Arlington)
for noticing a translation error)
3. Past usage:
- This set most closely resembles the data sets described in the following
two publications:
1. R.S. Michalski and J.B. Larson "Inductive Inference of VL
Decision Rules" In Proceedings of the Workshop in Pattern-Directed
Inference Systems, Hawaii, May 1977. Also published in SIGART
Newsletter, ACM No. 63, pp. 38-44, June 1977.
2. Stepp, R.E. and Michalski, R.S. "Conceptual Clustering: Inventing
Goal-Oriented Classifications of Structured Objects" In
R.S. Michalski, J.G. Carbonell, and T.M. Mitchell (Eds.) "Machine
Learning: An Artificial Intelligence Approach, Volume II". Los
Altos, Ca: Morgan Kaufmann.
Both of these papers describe a set of 10 trains, 5 east-bound and 5 west
bound. Both refer to the same 10 trains as seen by the figures in these
publications. The differences are:
1) This dataset has 10 attributes, no wheel, or load color attributes
2) Reference 2 (Stepp, Michalski): does not completely list the
attributes used, but does mention wheel color - an attribute not
present in this dataset.
3) Reference 1 (Michalski, Larson): 12 attributes mentioned, but only 6
are explicitly described. These 6 are included in the dataset below
and the Stepp and Michalski set.
Results:
[1] Michalski and Larson found the following decision rules:
(1) There exists car1, car2, lod1 and lod2 such that
[infront(car1, car2)][lcont(car1, lod1)][lcont(car2,lod2)]
[load-shape(lod1)=triangle][load-shape(lod2)=polygon]=>[dir=east]
(2) There exists a car1 such that
[ln(car1)=short][car-shape(car1)=closed-top]=>[dir=east]
(3) [ncar=3]v There exists car1 such that [car1(car-shape(car1)=jagged-
top] =>[dir=west]
There exists car1 such that
(4) [#cars(ln=long)=2][cshape(car1)=open,trapezoind,u-shaped] v
[location(car1)=2][cshape(car1)=closed, rectangle]=>[dir=west]
(The first selector in rule 4 uses a meta descriptor generated by
the program that counts the number of long cars in a train)
[2] The goal of the cluster research is to develop a general method
for clustering structured objects that can generate conjunctive
descriptions that occur in human classifications or invent new
concepts that have similar appeal. CLUSTER/S was able to find the
following cognitively appealing clusters: 1) a) "There are two
different car shapes in the train" b) "There are three or more
different car shapes in the train" 2) a) Wheels on all cars have
the same color, b) wheels on all cars do not have the same color."
4. Relevant information:
- Additional "background" knowledge is supplied that provides a partial
ordering on some of the attribute values.
- We are providing this dataset both in its original form and in a form
similar to the more typical propositional datasets in our repository.
Since the trains dataset records relations between attributes, this
transformation was somewhat challenging. However, it may shed some
insight on this problem for people who are more familiar with the simple
one-instance-per-line dataset format.
- Hierarchy of values:
if (cshape is one of {openrect,opentrap,ushaped,dblopnrect}
then cshape is opentop
if (cshape is one of {hexagon,ellipse,closedrect,jaggedtop,slopetop,
engine}
then cshape closedtop
- Prediction task: Determine concise decision rules distinguishing
trains traveling east from those traveling west.
5. Number of instances: 10
6. Number of attributes:
- 10, not including the class attribute
1. ccont(train idx1, car idx2): car idx is contained in train idx
2. ncar(train idx): # of trains in car train idx (int)
3. infront(car idx1, car idx2): relative positions of cars in train
4. loc(car idx): absolute position of car in train (int)
5. nwhl(car idx): # of wheels of car idx (int)
6. ln(car idx): length of car idx (long, short)
7. cshape(car idx): shape of car (engine, dblopenrect,
closedrect, openrect, opentrap, ushaped,
hexagon, ellipse, jaggedtop, slopetop,
opentop, closedtop)
8. npl(car idx): number of loads in car idx
9. lcont(car idx, load idx): description of which cars hold which loads
10. lhshape(load idx): description of load shape (trianglod,
rectanglod, circlelod, hexagonlod)
Class: direction (east, west)
The following format was used for the "transformed" dataset representation
as found in trains.transformed.data (one instance per line):
Attributes: 33
1. Number_of_cars (integer in [3-5])
2. Number_of_different_loads (integer in [1-4])
3-22: 5 attributes for each of cars 2 through 5: (20 attributes total)
- num_wheels (integer in [2-3])
- length (short or long)
- shape (closedrect, dblopnrect, ellipse, engine, hexagon,
jaggedtop, openrect, opentrap, slopetop, ushaped)
- num_loads (integer in [0-3])
- load_shape (circlelod, hexagonlod, rectanglod, trianglod)
23-32: 10 Boolean attributes describing whether 2 types of loads are on
adjacent cars of the train
- Rectangle_next_to_rectangle (0 if false, 1 if true)
- Rectangle_next_to_triangle (0 if false, 1 if true)
- Rectangle_next_to_hexagon (0 if false, 1 if true)
- Rectangle_next_to_circle (0 if false, 1 if true)
- Triangle_next_to_triangle (0 if false, 1 if true)
- Triangle_next_to_hexagon (0 if false, 1 if true)
- Triangle_next_to_circle (0 if false, 1 if true)
- Hexagon_next_to_hexagon (0 if false, 1 if true)
- Hexagon_next_to_circle (0 if false, 1 if true)
- Circle_next_to_circle (0 if false, 1 if true)
33. Class attribute (east or west)
The number of cars vary between 3 and 5. Therefore, attributes referring
to properties of cars that do not exist (such as the 5 attriubutes for
the "5th" car when the train has fewer than 5 cars) are assigned a value
of "-".
7. Distribution of classes:
- There are 5 east-bound trains and 5 west-bound trains
(i.e., 50% east, 50% west)

View File

@@ -0,0 +1,409 @@
Received: from ai.iit.nrc.ca by paris.ics.uci.edu id aa25214; 9 Apr 96 6:03 PDT
Received: from ksl0j.ai.iit.nrc.ca by deeitis1.ai.iit.nrc.ca (SMI-8.6/SMI-SVR4)
id JAA07371; Tue, 9 Apr 1996 09:04:08 -0400
Received: by ksl0j.ai.iit.nrc.ca (5.x/SMI-SVR4)
id AA17463; Tue, 9 Apr 1996 08:03:52 -0500
Date: Tue, 9 Apr 1996 08:03:52 -0500
From: Peter Turney <peter@ai.iit.nrc.ca>
Message-Id: <9604091303.AA17463@ksl0j.ai.iit.nrc.ca>
To: cmerz@saanen.ICS.UCI.EDU
Subject: Re: UCI repository news
Cc: peter@ai.iit.nrc.ca
X-Sun-Charset: US-ASCII
*** EOOH ***
Date: Tue, 9 Apr 1996 08:03:52 -0500
From: Peter Turney <peter@ai.iit.nrc.ca>
To: cmerz@saanen.ICS.UCI.EDU
Subject: Re: UCI repository news
Cc: peter@ai.iit.nrc.ca
X-Sun-Charset: US-ASCII
Dear Chris:
> This message is to announce that I will be taking over the duties of
> the UCI Machine Learning Database Repository coordinator. At this time
> I'd like to thank the previous coordinator, Pat Murphy, for his
> efforts to improve upon the repository, and I invite new ideas from
> those of you using the repository so that I may do the same. This
> includes constructive criticism as well as new databases!
This is intended to supplement the "trains" data in
"ftp://ftp.ics.uci.edu/pub/machine-learning-databases/trains/".
When I donated the material relating to the "East-West Challenge",
for the ML Repository, I neglected to mention that Donald Michie
held another train contest. This later contest involved 24 trains,
12 eastbound and 12 westbound. Below is some information on this
contest. You might like to include this information in the ML Repository.
Best wishes,
Peter.
================================================================================
24 TRAINS: THE PROBLEM
----------------------
From: fred4@cse.unsw.edu.au
To: peter@ai.iit.nrc.ca
Date: Thu, 24 Nov 94 11:12:43 +1100
Subject: Trains
Dear Peter
David Page sent me a copy of your email to him. I would be very interested
in seeing a copy of your draft paper for IJCAI-95.
You may want to know of a 12 versus 12 trains-discrimination problem that I
published on 18th November for brains-only entrants from the readers of
Computing magazine. Yesterday I sent copies of the problem to Bernhard
Pfahringer and to Ryszard Michalski's group, from both of which I had
received expressions of interest. There is a secret rule for the OK
property, which will be used as default oracle in judging my brains-only
entrants. This time I will be mildly surprised if ILP treatment yields
anything simpler from this material than this "official rule", but
immensely interested if such an improved rule is found. The problem is as
follows:
:-not_OK([c(1,u_shaped,short,not_double,none,2,l(triangle,1)),
c(2,bucket,short,not_double,none,2,l(circle,1)),
c(3,rectangle,short,not_double,none,2,l(triangle,1)),
c(4,u_shaped,short,not_double,none,2,l(circle,1))]).
:-not_OK([c(1,rectangle,long,not_double,jagged,2,l(circle,1)),
c(2,rectangle,short,double,none,2,l(diamond,1)),
c(3,rectangle,long,not_double,jagged,2,l(rectangle,1)),
c(4,rectangle,long,not_double,flat,3,l(rectangle,1))]).
:-not_OK([c(1,u_shaped,short,not_double,none,2,l(circle,1)),
c(2,bucket,short,not_double,flat,2,l(triangle,1)),
c(3,u_shaped,short,not_double,none,2,l(circle,1)),
c(4,u_shaped,short,not_double,none,2,l(rectangle,1))]).
:-not_OK([c(1,ellipse,short,not_double,arc,2,l(rectangle,1)),
c(2,rectangle,long,not_double,none,3,l(hexagon,2))]).
:-not_OK([c(1,u_shaped,short,not_double,none,2,l(circle,1)),
c(2,rectangle,short,not_double,none,2,l(triangle,1)),
c(3,rectangle,long,not_double,none,2,l(rectangle,3)),
c(4,u_shaped,short,not_double,none,2,l(diamond,1))]).
:-not_OK([c(1,u_shaped,short,not_double,none,2,l(triangle,1)),
c(2,rectangle,short,not_double,none,2,l(circle,1)),
c(3,u_shaped,short,not_double,none,2,l(rectangle,1))]).
:-not_OK([c(1,rectangle,long,not_double,none,2,l(utriangle,1)),
c(2,u_shaped,short,not_double,flat,2,l(triangle,2)),
c(3,hexagon,short,not_double,flat,2,l(circle,1))]).
:-not_OK([c(1,bucket,short,not_double,none,2,l(triangle,1)),
c(2,rectangle,long,not_double,none,2,l(rectangle,1)),
c(3,u_shaped,short,not_double,none,2,l(triangle,1))]).
:-not_OK([c(1,u_shaped,short,not_double,none,2,l(triangle,1)),
c(2,u_shaped,short,not_double,none,2,l(circle,1)),
c(3,u_shaped,short,not_double,none,2,l(triangle,2))]).
:-not_OK([c(1,rectangle,long,not_double,none,3,l(rectangle,3)),
c(2,hexagon,short,not_double,flat,2,l(diamond,1)),
c(3,rectangle,short,not_double,none,2,l(triangle,1)),
c(4,hexagon,short,not_double,flat,2,l(circle,1))]).
:-not_OK([c(1,rectangle,long,not_double,none,2,l(none,0)),
c(2,rectangle,short,not_double,none,2,l(rectangle,2)),
c(3,u_shaped,short,not_double,none,2,l(circle,1))]).
:-not_OK([c(1,rectangle,long,not_double,none,2,l(rectangle,1)),
c(2,u_shaped,short,not_double,flat,2,l(circle,1)),
c(3,rectangle,long,not_double,none,2,l(rectangle,1)),
c(4,u_shaped,short,not_double,none,2,l(circle,1))]).
:-OK([c(1,rectangle,long,not_double,flat,3,l(rectangle,1)),
c(2,rectangle,long,not_double,flat,2,l(none,0)),
c(3,rectangle,short,double,none,2,l(circle,1)),
c(4,rectangle,short,not_double,none,2,l(circle,1))]).
:-OK([c(1,rectangle,short,double,none,2,l(circle,1)),
c(2,u_shaped,short,not_double,none,2,l(circle,1)),
c(3,bucket,short,not_double,none,2,l(triangle,1))]).
:-OK([c(1,u_shaped,short,not_double,none,2,l(circle,1)),
c(2,u_shaped,short,not_double,peaked,2,l(rectangle,1)),
c(3,bucket,short,not_double,none,2,l(diamond,1))]).
:-OK([c(1,rectangle,short,double,none,2,l(circle,1)),
c(2,rectangle,short,not_double,none,2,l(circle,2))]).
:-OK([c(1,rectangle,long,not_double,flat,3,l(none,0)),
c(2,rectangle,long,not_double,flat,2,l(rectangle,1)),
c(3,u_shaped,short,not_double,peaked,2,l(circle,1)),
c(4,rectangle,short,not_double,none,2,l(circle,1))]).
:-OK([c(1,rectangle,short,double,none,2,l(rectangle,1)),
c(2,rectangle,short,not_double,peaked,2,l(circle,1))]).
:-OK([c(1,rectangle,long,not_double,jagged,2,l(circle,1)),
c(2,rectangle,short,not_double,none,2,l(circle,1)),
c(3,u_shaped,short,not_double,flat,2,l(triangle,1)),
c(4,rectangle,short,not_double,peaked,2,l(triangle,1))]).
:-OK([c(1,rectangle,long,not_double,jagged,3,l(hexagon,1)),
c(2,bucket,short,not_double,peaked,2,l(triangle,1)),
c(3,rectangle,short,not_double,none,2,l(triangle,1)),
c(4,u_shaped,short,not_double,none,2,l(triangle,1))]).
:-OK([c(1,rectangle,long,not_double,flat,2,l(rectangle,1)),
c(2,rectangle,long,not_double,flat,2,l(hexagon,1)),
c(3,rectangle,short,not_double,none,2,l(circle,1)),
c(4,bucket,short,not_double,none,2,l(circle,1))]).
:-OK([c(1,rectangle,short,double,none,2,l(triangle,1)),
c(2,u_shaped,short,not_double,none,2,l(triangle,1)),
c(3,rectangle,short,not_double,none,2,l(triangle,1))]).
:-OK([c(1,rectangle,short,not_double,none,2,l(rectangle,1)),
c(2,u_shaped,short,not_double,none,2,l(circle,1)),
c(3,u_shaped,short,not_double,none,2,l(circle,1)),
c(4,rectangle,short,double,none,2,l(rectangle,2))]).
:-OK([c(1,rectangle,short,double,peaked,2,l(circle,2)),
c(2,u_shaped,short,not_double,none,2,l(triangle,1)),
c(3,rectangle,short,not_double,flat,2,l(triangle,1)),
c(4,rectangle,long,not_double,flat,2,l(rectangle,2))]).
With best wishes
Donald Michie
================================================================================
24 TRAINS: THE RESULTS
----------------------
From: fred4@cse.unsw.edu.au
To: peter@ai.iit.nrc.ca
Date: Mon, 5 Dec 94 15:25:46 +1100
Subject: Results on trains
Dear Peter
I emailed today to Computing magazine my adjudication of the
new trains competition, and reproduce below the notes I made
for it. The results have several points of interest. Your rule
beat all brains-only creations on Trolog complexity, and all
but the "official" rule (and its single-substitution
lookalike) on Trenglish. The high Trenglish complexity of the
remarkable Pfahringer4 rule is paralleled by its opacity to
human comprehension, in turn attributable to the nesting of
one if-then-else inside another. Machine execution is no
problem, but for human execution such a structure puts
non-trivial strain on working memory.
A conspicuous feature is that there is still a multiplicity of
near-optimal solutions. I'll expand the next competition to 16
versus 16 discrimination. Beyond that, I run into problems with
the amount of page-space allotted me by Computing. But, who
knows, 32 trains may represent a sufficient combinatorial
escalation to thin out chance near misses to the point that
theory-discovery takes over from theory-invention. I use
"discovery" rather than "invention" when only one rule is both
succinct and consistent with the data.
This Trenglish vehicle has a long way to go. As a first step
towards mechanization, I have made it into a DCG grammar,
perforce once more enhanced in response to Pfahringer4. The
cases where discepancies between the two complexity measures
are most extreme do seem to correlate with corresponding
variations in human-intelligibility. So to that extent I feel
encouraged. My hope is that it may become a useful form for
human-style domain knowledge into which statistical as well as
logical regularities can be incrementally absorbed.
TOP BRAINS-ONLY ENTRIES: DESCENDING ORDER OF TRENGLISH
SCORES
Spenceley's rule (Computing magazine entry) in Trenglish:
[If] [a train] [has]
[a] [car] [with] [a peaked roof]
[or] [a sequence of] [cars] [with] [a circular load]
[or] [a sequence of] [three] [cars] [with] [a triangular load]
[then OK] [otherwise not_OK]. Trenglish: 20
Trolog: 35
Spenceley's rule in Trolog follows:
ok(T):- has_car(T,C), arg(5,C,peaked);
infront(T,C1,C2), infront(T,C2,C3),
(has_load0(C1,circle), has_load0(C2,circle);
has_load0(C1,triangle), has_load0(C2,triangle),
has_load0(C3,triangle)).
Pennifold's rule (Computing magazine entry) in Trenglish:
[If] [a train] [has]
[a] [car] [with]
[either] [a peaked roof]
[or] [a triangular load] [and] [a double wall]
[or] [a sequence of] [two] [cars] [with] [a circular load]
[then OK] [otherwise not_OK]. Trenglish: 20
Trolog: 27
Pennifold's rule in Trolog follows:
ok(T):- has_car(T,C), (arg(5,C,peaked);
has_load0(C,triangle), double(C));
infront(T,C1,C2), has_load0(C1,circle), hasload0(C2,circle).
Shaw's rule (Computing magazine entry) in Trenglish:
[If] [a train] [has]
[a first] [car] [with] [a double wall]
[or] [a] [car] [with] [a peaked roof]
[or] [a sequence of] [two] [cars] [with] [a circular load]
[then OK] [otherwise not_OK]. Trenglish: 20
Trolog: 27
Shaw's rule in Trolog follows:
ok(T):- arg(1,T,C), double(C);
has_car(T,C), arg(5,C,peaked);
infront(T,C1,C2), has_load0(C1,circle), has_load0(C2,circle).
"Official rule" in Trenglish (Computing magazine entry from N.
Howell was equivalent):
[If] [a train] [has]
[a] [car] [with] [a peaked.roof]
[or] [a sequence of] [short] [cars] [with] [the sameload_shape]
[then OK] [otherwise not_OK]. Trenglish 15
Trolog 25
Official rule in Trolog follows:
ok(T):- has_car(T,C), arg(5,C,peaked);
infront(T,C1,C2), short(C1), short(C2), has_load0(C1,Shape),
has_load0(C2,Shape).
One Computing magazine entry, from G. Little, was equivalent
to the above rule with "open" substituted for "short",
yielding an equally complete and correct solution.
PROGRAM-GENERATED SOLUTIONS: DESCENDING ORDER OF TROLOG SCORES
Pfahringer1 rule in Trenglish:
[If] [a train] [has]
[a first car] [with]
[either] [a double wall]
[or] [a flat roof]
[or] [a short body] [and] [a rectangle shape]
[or] [a] [successor] [with] [a peaked roof]
[then OK] [otherwise not_OK]. Trenglish 20
Trolog 25
Pfahringer1 rule in Trolog follows:
ok([X|L]):- (double(X);
arg(5,X,flat);
short(X), rectangle(X);
has_car(L,Y), arg(5,Y,peaked)).
Turney1 rule in Trenglish:
[If] [a train] [has]
[a] [car] [with]
[either] [a peaked roof]
[or] [a double wall] [and] [a non_][diamond load]
[or] [a hexagonal load] [and] [a closed form]
[then OK] [otherwise not_OK]. Trenglish 19
Trolog 23
Turney1 rule in Trolog follows:
ok(T):- has_car(T,C), (arg(5,C,peaked);
double(C), not has_load0(C,diamond);
has_load0(C,hexagon), closed(C)).
Pfahringer2 rule in Trenglish:
[If] [a train] [has]
[a first] [car] [with] [either] [a short body] [and]
[a rectangle shape]
[or] [a flat roof]
[or] [a] [successor] [with] [a peaked roof]
[then OK] [otherwise not_OK]. Trenglish 19
Trolog 22
Pfahringer2 rule in Trolog follows:
ok([X|L]):- short(X), rectangle(X);
arg(5,X,flat);
has_car(L,Y), arg(5,Y,peaked).
Pfahringer3 rule in Trenglish:
[If] [a train] [has]
[a first] [car] [with] [either] [a short body] [and] [a
rectangle shape]
[or] [either] [a closed form]
[or] [a sequence of] [successors] [with] [a non_first]
[car] [with] [a bucket shape]
[then OK] [otherwise not_OK]. Trenglish 23
Trolog 21
Pfahringer3 rule in Trolog follows:
ok(X|L):- short(X), rectangle(X);
infront(L,_,Z), short(Z), (bucket(Z);closed (X)).
Pfahringer4 rule in pseudo-Trenglish (ad hoc syntax
extension):
[If] [a train] [has]
[a diamond load] [then] [if] [it has] [exactly] [three] [cars]
[then OK] [otherwise not_OK]
[otherwise if] [it has] [a] [rectangular] [first] [car] [with]
[either] [a short body]
[or] [a closed form]
[then OK] [otherwise not_OK]. Trenglish 25
Trolog 20
Pfahringer rule in Trolog follows:
ok([X|L]):- has_load1(L,diamond) -> len1(L,2); rectangle(X),
(short(X); closed(X)).
I am very delighted that you tried your system on this
material, and hope you will again next time round. As the
combinatorial space increases it is unclear to me whether this
will preferentially favour your system or Pfahringer's. I am
fairly, but not absolutely, certain that it will disfavour the
unaided brains of Computing's readers. We shall see.
I hope within the next few days to send you some comments on your
interesting paper.
Best wishes
Donald Michie.
================================================================================


8
data/tanveer/trains/trains.txt Executable file
View File

@@ -0,0 +1,8 @@
n_entradas= 29
n_clases= 2
n_arquivos= 1
fich1= trains_R.dat
n_patrons1= 10
n_patrons_entrena= 5
n_patrons_valida= 5
n_conxuntos= 1

View File

@@ -0,0 +1,11 @@
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 f25 f26 f27 f28 f29 clase
1 1.22474 2.06493 -0.316228 -1.44914 0.379628 1.89737 0.369274 -0.316228 0.621059 0.806405 -0.316228 0.737865 1.19272 -0.114208 1.49079 0.444478 0.398527 1.44914 1.44914 1.35106 1.44914 0.514496 -0.621059 1.1619 -0.774597 -0.474342 2.84605 -0.621059 2.84605 0
2 0 0.850265 -0.316228 0.621059 1.19312 -0.474342 1.10782 -0.316228 0.621059 0.483843 -0.316228 -0.316228 0.340777 1.02787 -0.542105 1.92607 -0.265684 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 1.1619 1.1619 -0.474342 -0.316228 -0.621059 -0.316228 0
3 0 -0.364399 -0.316228 0.621059 0.379628 -0.474342 -1.10782 -0.316228 0.621059 -0.483843 -0.316228 0.737865 1.19272 -0.114208 -0.542105 0.444478 1.72695 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 -0.774597 -0.774597 1.89737 -0.316228 1.44914 -0.316228 0
4 1.22474 -0.364399 -0.316228 0.621059 0.650791 -0.474342 1.10782 -0.316228 0.621059 -1.45153 -0.316228 0.737865 0.340777 1.02787 0.135526 0.444478 1.06274 1.44914 1.44914 1.35106 1.44914 2.57248 1.44914 1.1619 -0.774597 1.89737 -0.316228 -0.621059 -0.316228 0
5 0 0.850265 -0.316228 0.621059 -0.976187 -0.474342 1.10782 2.84605 -1.44914 -1.77409 -0.316228 -0.316228 0.340777 1.02787 -0.542105 0.444478 -0.265684 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 1.1619 1.1619 -0.474342 -0.316228 -0.621059 -0.316228 0
6 -1.22474 -0.364399 -0.316228 -1.44914 -1.24735 1.89737 -1.10782 -0.316228 0.621059 0.161281 -0.316228 0.737865 -1.36311 -1.25629 -0.88092 -1.03712 -0.929896 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 -0.774597 -0.774597 -0.474342 -0.316228 1.44914 -0.316228 1
7 0 -0.364399 -0.316228 0.621059 -0.976187 -0.474342 -1.10782 -0.316228 0.621059 1.12897 -0.316228 0.737865 0.340777 -0.114208 1.15197 -1.03712 -0.929896 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 -0.774597 -0.774597 -0.474342 -0.316228 1.44914 -0.316228 1
8 -1.22474 -0.364399 2.84605 -1.44914 -1.24735 -0.474342 0.369274 -0.316228 0.621059 1.12897 -0.316228 -2.42441 -1.36311 -1.25629 -0.88092 -1.03712 -0.929896 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 -0.621059 -0.774597 1.1619 -0.474342 -0.316228 -0.621059 -0.316228 1
9 1.22474 -0.364399 -0.316228 0.621059 0.650791 -0.474342 -1.10782 -0.316228 -1.44914 -0.161281 -0.316228 -0.316228 0.340777 1.02787 1.49079 0.444478 1.06274 1.44914 1.44914 1.63253 1.44914 0.514496 1.44914 -0.774597 1.1619 -0.474342 -0.316228 -0.621059 -0.316228 1
10 -1.22474 -1.57906 -0.316228 0.621059 1.19312 -0.474342 0.369274 -0.316228 -1.44914 0.161281 2.84605 -0.316228 -1.36311 -1.25629 -0.88092 -1.03712 -0.929896 -0.621059 -0.621059 -0.619234 -0.621059 -0.514496 1.44914 -0.774597 -0.774597 -0.474342 -0.316228 -0.621059 -0.316228 1