HELP WITH MY PROBLEM
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have doubts about how to do this. First explain what I have already done so you can understand what I do. I have a sequence, for example of 20 binary numbers:
0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16)
0(17) 0(18) 1(19) 1(20).
After I created length subsequences 2,3 and 4 as follows:
Take the example of substrings of length 4. Shape creation is the same as for length 2 and 3:
1) 1(1) 0(2) 1(3) 1(4)
2) 1(1) 1(3) 0(5) 1(7)
3) 1(1) 1(4) 1(7) 1(10)
4) 1(1) 0(5) 0(9) 1(13)
5) 1(1) 0(6) 1(11) 0(16)
6) 1(1) 1(7) 1(13) 1(19)
7) 0(2) 1(3) 1(4) 0(5)
8) 0(2) 1(4) 0(6) 0(8)
9) 0(2) 0(5) 0(8) 1(11)
10) 0(2) 0(6) 1(10) 0(14)
11) 0(2) 1(7) 1(12) 1(17)
12) 0(2) 0(8) 0(14) 0(20)
13) 1(3) 1(4) 0(5) 0(6)
14) 1(3) 0(5) 1(7) 0(9)
15) 1(3) 0(6) 0(9) 1(12)
16) 1(3) 1(7) 1(11) 0(15)
17) 1(3) 0(8) 1(13) 1(18)
18) 1(4) 0(5) 0(6) 1(7)
19) 1(4) 0(6) 0(8) 1(10)
20) 1(4) 1(7) 1(10) 1(13)
21) 1(4) 0(8) 1(12) 0(16)
22) 1(4) 0(9) 0(14) 1(19)
23) 0(5) 0(6) 1(7) 0(8)
24) 0(5) 1(7) 0(9) 1(11)
25) 0(5) 0(8) 1(11) 0(14)
26) 0(5) 0(9) 1(13) 1(17)
27) 0(5) 1(10) 0(15) 0(20)
28) 0(6) 1(7) 0(8) 0(9)
29) 0(6) 0(8) 1(10) 1(12)
30) 0(6) 0(9) 1(12) 0(15)
31) 0(6) 1(10) 0(14) 1(18)
32) 1(7) 0(8) 0(9) 1(10)
33) 1(7) 0(9) 1(11) 1(13)
34) 1(7) 1(10) 1(13) 0(16)
35) 1(7) 1(11) 0(15) 1(19)
36) 0(8) 0(9) 1(10) 1(11)
37) 0(8) 1(10) 1(12) 0(14)
38) 0(8) 1(11) 0(14) 1(17)
39) 0(8) 1(12) 0(16) 0(20)
40) 0(9) 1(10) 1(11) 1(12)
41) 0(9) 1(11) 1(13) 0(15)
42) 0(9) 1(12) 0(15) 1(18)
43) 1(10) 1(11) 1(12) 1(13)
44) 1(10) 1(12) 0(14) 0(16)
45) 1(10) 1(13) 0(16) 1(19)
46) 1(11) 1(12) 1(13) 0(14)
47) 1(11) 1(13) 0(15) 1(17)
48) 1(11) 0(14) 1(17) 0(20)
49) 1(12) 1(13) 0(14) 0(15)
50) 1(12) 0(14) 0(16) 1(18)
51) 1(13) 0(14) 0(15) 0(16)
52) 1(13) 0(15) 1(17) 1(19)
53) 0(14) 0(15) 0(16) 1(17)
54) 0(14) 0(16) 1(18) 0(20)
55) 0(15) 0(16) 1(17) 1(18)
56) 0(16) 1(17) 1(18) 1(19)
57) 1(17) 1(18) 1(19) 0(20)
After these 57 patterns I calculate the relative frequency of all of them. Also get the relative frequencies of patterns substrings of length 2 and 3.
Okay, so far I have work already done with matlab. My doubts are from here
------------------------------------------------------------------------------------------------
Suppose you now want to know the probability that the number (21) of the above sequence is 0 ò 1, ie:
0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16)
0(17) 0(18) 1(19) 1(20) X(21).
My first question is how to create the following matrix:
0(18) 1(19) 1(20) X(21)-----------[0 1 1 X]
0(15) 0(17) 1(19) X(21)-----------[0 1 1 X]
0(12) 0(15) 0(18) X(21)-----------[0 0 0 X]
0(9) 0(13) 0(17) X(21)-------------[0 0 0 X]
0(6) 1(11) 1(16) X(21)-------------[0 1 1 X]
0(3) 0(9) 0(15) X(21)---------------[0 0 0 X]
Considering that if X = 1:
1-[0 1 1 1]
2-[0 1 1 1]
3-[0 0 0 1]
4-[0 0 0 1]
5-[0 1 1 1]
6-[0 0 0 1]
If X = 0:
7-[0 1 1 0]
8-[0 1 1 0]
9-[0 0 0 0]
10-[0 0 0 0]
11-[0 1 1 0]
12-[0 0 0 0]
With these patterns and taking into account the dependency between the previous numbers in the sequence, I have 12 patterns of which I have to study the probability that X = 0 ò X = 1.
As I calculated the relative frequencies of patterns of length 2, 3 and 4, do the following:
For example first pattern:
1-[0 1 1 1]
[0 1] ------------ relative frequency pattern of length 2
+
[0 1 1] ---------- relative frequency pattern of length 3
+
[0 1 1 1] ------- relative frequency pattern of length 4
= Frequency dependence assuming total pattern
Realize the same for the other 11 patterns and study the probability:
P (X = 1) = number of patterns with X = 1 with probability greater than X = 0 / total number of
patterns
P (X = 0) = number of patterns with X = 0 with probability greater than X = 1 / total number of patterns
So my question is how I can perform this process from the dotted line to the end, and I've tried a thousand ways but I don`t get the correct result.
thank you very much
5 Kommentare
Image Analyst
am 24 Sep. 2013
Well for the first substring you have this: 1(1) 0(2) 1(3) 1(4). Where did this come from? From this "0(1) 0(2) 0(3) 1(4) 1(5) 0(6) 0(7) 0(8) 0(9) 0(10) 1(11) 0(12) 0(13) 0(14) 0(15) 1(16) 0(17) 0(18) 1(19) 1(20)" I take it your array is [0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1]. So "1(1) 0(2) 1(3) 1(4)" = [1 0 1 1], right? And this does not occur anywhere in the array, right? All right, fine. But why does that string have (1) etc. in parentheses - what does it mean? Clearly it's not the indexes where they came from since element 1 is 0, not 1. And in "13) 1(3) 1(4) 0(5) 0(6)" you say that elements 3,4,5 and 6 are 1,1,0, & 0, yet in the long expression, 3,4,5 & 6 are 0,1,1,0, not 1,1,0,0. So at that point I threw up my hands and gave up.
Antworten (3)
Image Analyst
am 24 Sep. 2013
This might be instructive:
% Define numerical matrix.
m=[0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1]
% Turn it into a string.
strm = sprintf('%d', m)
% Define a pattern to look for.
patternToLookFor = '011'
% Find index(es) where that pattern begins.
indexes = strfind(strm, patternToLookFor)
In the command window:
m =
0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1
strm =
00011000001000010011
patternToLookFor =
011
indexes =
3 18
Walter Roberson
am 24 Sep. 2013
5 Kommentare
Walter Roberson
am 25 Sep. 2013
n-grams work with symbols. They don't care whether the symbols are letters or bits.
Tally(1+bit1,1+bit2,1+bit3,1+bit4) = Tally(1+bit1,1+bit2,1+bit3,1+bit4) + 1;
and then
bit1 = bit2; bit2 = bit3; bit3 = bit4; bit4 = next bit
Now you can calculate conditional probabilities as Tally(1+A,1+B,1+C,1+D) / sum(Tally(1+A,1+B,1+C,:),4))
The "1+" adjust for the fact that indices start at 1 in MATLAB but bits are 0 or 1.
The probability of D after ABC is the count of ABCD divided by the count of (ABC0 + ABC1)
Siehe auch
Kategorien
Mehr zu Text Data Preparation finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!