.


:




:

































 

 

 

 





. *.kbs. . , , , :

l ("hypothesis", "plane", 0.5, bayes_rule ([ contrib ("plane_factors", 1, 0.001), contrib ("plane_speed", 5, 1), contrib("plane_cost", 5, 0.5),

contrib ("plane_dist", 10, 0.9) ]), "Use a plane","", [ ])

cl ("hypothesis", "car", 0.5, bayes_rule ([ contrib ("car_factors", 1, 0.9),

contrib ("car_speed", 5, 0.9), contrib ("car_dist", 2, 0.8), contrib ("car_cost", 3, 0.9) ]), "Use a car", "", [ ])

cl ("hypothesis", "train", 0.5, bayes_rule ([ contrib ("rail_factors", 1.1, 1),

contrib ("drive_yourself", 1.1, 1), contrib ("rail_speed", 1.1, 0.1),

contrib ("rail_dist", 2, 1), contrib ("rail_cost", 5, 1) ]), "Use a train", " ", [ ])

cl ("intermediate", "rail_factors", 0.5, and_rule ([ "drive_yourself", "rail_speed", "rail_dist", "rail_cost" ]), "use of a train is appropriate", "", [ ])

cl ("intermediate", "rail_speed", 0.5, num_map_rule ("speed", [ nummap (60, 1), nummap (150, 0) ]), "Desired journey speed permits rail use", "",

[context ("drive_yourself", 5, 0) ])

cl ("intermediate", "rail_dist", 0.5, num_map_rule ("distance", [nummap (50, 0), nummap (200, 1), nummap (350, 0) ]), "Is the use of a train sensible", "", [context("drive_yourself", 5, 0) ])

cl ("intermediate", "rail_cost", 0.5, num_map_rule ("cost", [ nummap (10, 0), nummap (20,1) ]), "Desired cost per mile is possible using a train", "", [context ("drive_yourself", 5, 0) ])

cl ("data", "drive_yourself", 0.5, yesno_rule,"Do you want to drive yourself?", "", [ ])

cl ("data", "distance", 0.5, num_value_rule (0.1,30000), "what is the distance of the journey in miles?", "", [ ])

cl ("data", "speed", 0.5, num_value_rule (1, 1300), "what is the required average speed for the journey (mph)?", ", [ ])

cl ("data", "cost", 0.5, num_value_rule (1, 50), "How much are you prepared to pay per mile?", "This system assumes the costs:\n plane: 30 cents/mile\n train: 25 cents/mile \n car: 20 cents/mile", [ ])

...

. data - , . evaluate , eval, . , . evalbody. , eval:

evalbody (not_rule (Clname), Desc, Prior,

num (Val), Anceslst, Mode):

eval (not_rule, _, Clname, _, num (Val1), Anceslst, Mode),

Val = 1 Val1.

evalbody (and_rule ([ ]), _, _, num (1), _, _):!.

evalbody (and_rule ([ Clname | T ]), Desc, Prior,

num (Val), Anceslst, Mode):

eval (and_rule, _, Clname, _, num (Val1), Anceslst, Mode),

evalbody (and_rule (T), Desc, Prior, num (Val2), Anceslst, Mode),

min (Val1, Val2, Val).

evalbody (or_rule ([ ]), _, _, num (0), _, _):!.

evalbody (or_rule ([ Clname | T ]), Desc, Prior,

num(Val), Anceslst,Mode):

eval (or_rule, _, Clname, _, num(Val1), Anceslst, Mode),

evalbody (or_rule(T), Desc, Prior, num (Val2), Anceslst, Mode),

max (Val1, Val2, Val).

evalbody (bayes_rule ([ ]), _, Prior, num (Prior), _, _):!.

evalbody (bayes_rule ([ contrib (Clname, Inc, Dec) | T ]), Desc, Prior,

num (Val), Anceslst, Mode):

eval (bayes_rule, _, Clname, Pri, num (Val1), Anceslst, Mode),

evalbody (bayes_rule (T), Desc, Prior, num (Val2), Anceslst, Mode),

combinebayes (Pri, Val1, contrib (Clname, Inc, Dec), Val2, Val).

evalbody (sym_map_rule (Clname, L), Desc, Prior, num (Val),

Anceslst, Mode):

eval (sym_map_rule, _, Clname, _, Val1, Anceslst, Mode),

calcsymrule (sym_map_rule (Clname, L), Prior, Val1, Val).

...

, . PRIOR, BAYES . combinebayes, Ans:

ombinebayes (ClPrior, ClVal, contrib (_, Inc, Dec), RestVal, Ans):

probtoodds (RestVal, RestOdds),

bayesfactor (ClVal, ClPrior, Dec, Inc, F),

Odds = F * RestOdds,

oddstoprob (Odds, Ans).

combinebayes probtoodds, :

ROOS = PROB / (1 PROB).

Bayesfactor F, , PRIOP < PROB PRIOR > PROB:

bayesfactor (Prob, Prior, Dec, Inc, F):

Prior > = Prob,

!,

probtocert (Prob, Prior, Cert),

F = ((1 Dec) * (Cert + 5) / 5) + Dec.

bayesfactor (Prob, Prior, Dec, Inc, F):

probtocert (Prob, Prior, Cert),

F = 1 + (Inc 1) * Cert / 5.

/* */

probtocert (_, 0, 5):!.

probtocert (_, 1, 5):!.

probtocert (Prob, Prior, Cert):

Prob < = Prior,

Cert = 5 * Prob / Prior 5,

!;

Cert = 5 * (Prob Prior) / (1 Prior).

oddstoprob :

oddstoprob (Odds, Prob):

Prob = Odds / (1 + Odds).

, , data - CERTAINTY. certtoprob , :

certtoprob (Cert, Prior, Value):

Cert < = 0, Value = Prior * (Cert + 5) / 5,

!;

Value = Prior + (1 Prior) * Cert / 5.





:


: 2015-10-01; !; : 422 |


:

:

.
==> ...

1273 - | 1253 -


© 2015-2024 lektsii.org - -

: 0.012 .