Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einfache HMM mit BioJava occasionally dishonest casino Casino mit 2 Wüfeln: –Fair –Unfair (loaded) loaded Wüfel: 50% erscheint 6 Zusätzlich: magischer.

Ähnliche Präsentationen


Präsentation zum Thema: "Einfache HMM mit BioJava occasionally dishonest casino Casino mit 2 Wüfeln: –Fair –Unfair (loaded) loaded Wüfel: 50% erscheint 6 Zusätzlich: magischer."—  Präsentation transkript:

1 Einfache HMM mit BioJava occasionally dishonest casino Casino mit 2 Wüfeln: –Fair –Unfair (loaded) loaded Wüfel: 50% erscheint 6 Zusätzlich: magischer Zustand zum Starten und Beenden

2 Das HMM FairLoaded Magic

3 Die CreateCasino() Methode In 5 Schritten zum HMM Model 1.Würfelalphabet 2.Verteilung (fair, unfair) 3.HMM: Zustände und Übergänge 4.Ausgabewahrscheinlichkeiten hinzufügen 5.Übergangswahrscheinlichkeiten hinzufügen

4 1. Würfelalphabet 1, 2, 3, 4, 5, 6 Symbol[] rolls=new Symbol[6]; SimpleAlphabet diceAlphabet=new SimpleAlphabet(); diceAlphabet.setName("DiceAlphabet"); for(int i=1;i<7;i++) { rolls[i-1]= AlphabetManager.createSymbol(String.valueOf(i),Annota tion.EMPTY_ANNOTATION); diceAlphabet.addSymbol(rolls[i-1]); } Symbol[] rolls=new Symbol[6]; //set up the dice alphabet SimpleAlphabet diceAlphabet=new SimpleAlphabet(); diceAlphabet.setName("DiceAlphabet"); for(int i=1;i<7;i++) { try { rolls[i-1]= AlphabetManager.createSymbol(String.valueOf(i ),Annotation.EMPTY_ANNOTATION); diceAlphabet.addSymbol(rolls[i-1]); } catch (Exception e) { throw new AssertionFailure( "Can't create symbols to represent dice rolls", e ); }

5 2. Verteilung (fair/unfair) Distribution fairD; fairD = DistributionFactory.DEFAULT.createDistribution(diceAl phabet); EmissionState fairS = new SimpleEmissionState("fair", Annotation.EMPTY_ANNOTATION, advance, fairD); Entsprechend für loadedD. Achtung: Zustände erst definiert, aber noch nicht initialisiert

6 3. HMM Zustände definieren das HMM: SimpleMarkovModel casino = new SimpleMarkovModel(1, diceAlphabet, "Casino"); casino.addState(fairS); casino.addState(loadedS); Übergänge im HMM: casino.createTransition(casino.magicalState(),fairS); casino.createTransition(casino.magicalState(),loadedS); casino.createTransition(fairS,casino.magicalState()); usw.

7 4.Ausgabewahrscheinlichkei- ten initialisieren Zustände aus Schritt 2. for(int i=0;i<rolls.length;i++){ fairD.setWeight(rolls[i],1.0/6.0); loadedD.setWeight(rolls[i], 0.1); } loadedD.setWeight(rolls[5],0.5);

8 5.Übergangswahrscheinlich- keiten initialisieren Distribution dist; dist = casino.getWeights(casino.magicalState()); dist.setWeight(fairS, 0.8); dist.setWeight(loadedS, 0.2); dist = casino.getWeights(fairS); dist.setWeight(loadedS, 0.04); dist.setWeight(fairS, 0.95); dist.setWeight(casino.magicalState(), 0.01);

9 Dynamische Programmierung Was fehlt? Modell zur Beurteilung: Wurde ein fairer oder ein unfairer Würfel benutzt? Bereits in BioJava vorhanden: Methoden der dynamischen Programmierung

10 Ausgabe Sequenz, Würfel, geschätzter Würfel: 562354366636522626634661123666311613431563324663666111561645 ffffffllllllllllllllllllllllllllllllllllllllllllllffffffffff ffffffflllllllllllllllllllllllffffffffffffffffffffffffffffff


Herunterladen ppt "Einfache HMM mit BioJava occasionally dishonest casino Casino mit 2 Wüfeln: –Fair –Unfair (loaded) loaded Wüfel: 50% erscheint 6 Zusätzlich: magischer."

Ähnliche Präsentationen


Google-Anzeigen