mirror of
https://github.com/Doctorado-ML/FImdlp.git
synced 2025-08-16 16:05:52 +00:00
Enhance cutpoints
This commit is contained in:
BIN
Ejemplo.xlsx
Normal file
BIN
Ejemplo.xlsx
Normal file
Binary file not shown.
152
feature0.txt
Normal file
152
feature0.txt
Normal file
@@ -0,0 +1,152 @@
|
||||
+++++++++++++++++++++++
|
||||
( 0, 13) -> (4.3, 0)
|
||||
( 1, 8) -> (4.4, 0)
|
||||
( 2, 38) -> (4.4, 0)
|
||||
( 3, 42) -> (4.4, 0)
|
||||
( 4, 41) -> (4.5, 0)
|
||||
( 5, 3) -> (4.6, 0)
|
||||
( 6, 6) -> (4.6, 0)
|
||||
( 7, 22) -> (4.6, 0)
|
||||
( 8, 47) -> (4.6, 0)
|
||||
( 9, 2) -> (4.7, 0)
|
||||
( 10, 29) -> (4.7, 0)
|
||||
( 11, 11) -> (4.8, 0)
|
||||
( 12, 12) -> (4.8, 0)
|
||||
( 13, 24) -> (4.8, 0)
|
||||
( 14, 30) -> (4.8, 0)
|
||||
( 15, 45) -> (4.8, 0)
|
||||
( 16, 1) -> (4.9, 0)
|
||||
( 17, 9) -> (4.9, 0)
|
||||
( 18, 34) -> (4.9, 0)
|
||||
( 19, 37) -> (4.9, 0)
|
||||
( 20, 57) -> (4.9, 1)
|
||||
( 21, 106) -> (4.9, 2)
|
||||
( 22, 4) -> (5.0, 0)
|
||||
( 23, 7) -> (5.0, 0)
|
||||
( 24, 25) -> (5.0, 0)
|
||||
( 25, 26) -> (5.0, 0)
|
||||
( 26, 35) -> (5.0, 0)
|
||||
( 27, 40) -> (5.0, 0)
|
||||
( 28, 43) -> (5.0, 0)
|
||||
( 29, 49) -> (5.0, 0)
|
||||
( 30, 60) -> (5.0, 1)
|
||||
( 31, 93) -> (5.0, 1)
|
||||
( 32, 0) -> (5.1, 0)
|
||||
( 33, 17) -> (5.1, 0)
|
||||
( 34, 19) -> (5.1, 0)
|
||||
( 35, 21) -> (5.1, 0)
|
||||
( 36, 23) -> (5.1, 0)
|
||||
( 37, 39) -> (5.1, 0)
|
||||
( 38, 44) -> (5.1, 0)
|
||||
( 39, 46) -> (5.1, 0)
|
||||
( 40, 98) -> (5.1, 1)
|
||||
( 41, 27) -> (5.2, 0)
|
||||
( 42, 28) -> (5.2, 0)
|
||||
( 43, 32) -> (5.2, 0)
|
||||
( 44, 59) -> (5.2, 1)
|
||||
( 45, 48) -> (5.3, 0)
|
||||
( 46, 5) -> (5.4, 0)
|
||||
( 47, 10) -> (5.4, 0)
|
||||
( 48, 16) -> (5.4, 0)
|
||||
( 49, 20) -> (5.4, 0)
|
||||
( 50, 31) -> (5.4, 0)
|
||||
( 51, 84) -> (5.4, 1)
|
||||
( 52, 33) -> (5.5, 0)
|
||||
( 53, 36) -> (5.5, 0)
|
||||
( 54, 53) -> (5.5, 1)
|
||||
( 55, 80) -> (5.5, 1)
|
||||
( 56, 81) -> (5.5, 1)
|
||||
( 57, 89) -> (5.5, 1)
|
||||
( 58, 90) -> (5.5, 1)
|
||||
( 59, 64) -> (5.6, 1)
|
||||
( 60, 66) -> (5.6, 1)
|
||||
( 61, 69) -> (5.6, 1)
|
||||
( 62, 88) -> (5.6, 1)
|
||||
( 63, 94) -> (5.6, 1)
|
||||
( 64, 121) -> (5.6, 2)
|
||||
( 65, 15) -> (5.7, 0)
|
||||
( 66, 18) -> (5.7, 0)
|
||||
( 67, 55) -> (5.7, 1)
|
||||
( 68, 79) -> (5.7, 1)
|
||||
( 69, 95) -> (5.7, 1)
|
||||
( 70, 96) -> (5.7, 1)
|
||||
( 71, 99) -> (5.7, 1)
|
||||
( 72, 113) -> (5.7, 2)
|
||||
( 73, 14) -> (5.8, 0)
|
||||
( 74, 67) -> (5.8, 1)
|
||||
( 75, 82) -> (5.8, 1)
|
||||
( 76, 92) -> (5.8, 1)
|
||||
( 77, 101) -> (5.8, 2)
|
||||
( 78, 114) -> (5.8, 2)
|
||||
( 79, 142) -> (5.8, 2)
|
||||
( 80, 61) -> (5.9, 1)
|
||||
( 81, 70) -> (5.9, 1)
|
||||
( 82, 149) -> (5.9, 2)
|
||||
( 83, 62) -> (6.0, 1)
|
||||
( 84, 78) -> (6.0, 1)
|
||||
( 85, 83) -> (6.0, 1)
|
||||
( 86, 85) -> (6.0, 1)
|
||||
( 87, 119) -> (6.0, 2)
|
||||
( 88, 138) -> (6.0, 2)
|
||||
( 89, 63) -> (6.1, 1)
|
||||
( 90, 71) -> (6.1, 1)
|
||||
( 91, 73) -> (6.1, 1)
|
||||
( 92, 91) -> (6.1, 1)
|
||||
( 93, 127) -> (6.1, 2)
|
||||
( 94, 134) -> (6.1, 2)
|
||||
( 95, 68) -> (6.2, 1)
|
||||
( 96, 97) -> (6.2, 1)
|
||||
( 97, 126) -> (6.2, 2)
|
||||
( 98, 148) -> (6.2, 2)
|
||||
( 99, 56) -> (6.3, 1)
|
||||
(100, 72) -> (6.3, 1)
|
||||
(101, 87) -> (6.3, 1)
|
||||
(102, 100) -> (6.3, 2)
|
||||
(103, 103) -> (6.3, 2)
|
||||
(104, 123) -> (6.3, 2)
|
||||
(105, 133) -> (6.3, 2)
|
||||
(106, 136) -> (6.3, 2)
|
||||
(107, 146) -> (6.3, 2)
|
||||
(108, 51) -> (6.4, 1)
|
||||
(109, 74) -> (6.4, 1)
|
||||
(110, 111) -> (6.4, 2)
|
||||
(111, 115) -> (6.4, 2)
|
||||
(112, 128) -> (6.4, 2)
|
||||
(113, 132) -> (6.4, 2)
|
||||
(114, 137) -> (6.4, 2)
|
||||
(115, 54) -> (6.5, 1)
|
||||
(116, 104) -> (6.5, 2)
|
||||
(117, 110) -> (6.5, 2)
|
||||
(118, 116) -> (6.5, 2)
|
||||
(119, 147) -> (6.5, 2)
|
||||
(120, 58) -> (6.6, 1)
|
||||
(121, 75) -> (6.6, 1)
|
||||
(122, 65) -> (6.7, 1)
|
||||
(123, 77) -> (6.7, 1)
|
||||
(124, 86) -> (6.7, 1)
|
||||
(125, 108) -> (6.7, 2)
|
||||
(126, 124) -> (6.7, 2)
|
||||
(127, 140) -> (6.7, 2)
|
||||
(128, 144) -> (6.7, 2)
|
||||
(129, 145) -> (6.7, 2)
|
||||
(130, 76) -> (6.8, 1)
|
||||
(131, 112) -> (6.8, 2)
|
||||
(132, 143) -> (6.8, 2)
|
||||
(133, 52) -> (6.9, 1)
|
||||
(134, 120) -> (6.9, 2)
|
||||
(135, 139) -> (6.9, 2)
|
||||
(136, 141) -> (6.9, 2)
|
||||
(137, 50) -> (7.0, 1)
|
||||
(138, 102) -> (7.1, 2)
|
||||
(139, 109) -> (7.2, 2)
|
||||
(140, 125) -> (7.2, 2)
|
||||
(141, 129) -> (7.2, 2)
|
||||
(142, 107) -> (7.3, 2)
|
||||
(143, 130) -> (7.4, 2)
|
||||
(144, 105) -> (7.6, 2)
|
||||
(145, 117) -> (7.7, 2)
|
||||
(146, 118) -> (7.7, 2)
|
||||
(147, 122) -> (7.7, 2)
|
||||
(148, 135) -> (7.7, 2)
|
||||
(149, 131) -> (7.9, 2)
|
||||
+++++++++++++++++++++++
|
25
feature0_ant.txt
Normal file
25
feature0_ant.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
Cut point: 4.95 //5 -> 0 yPrev= 2* (5, 4.9)=4.95idxPrev106
|
||||
Cut point: 5.05 //5.1 -> 0 yPrev= 1* (5.1, 5)=5.05idxPrev93
|
||||
Cut point: 5.15 //5.2 -> 0 yPrev= 1* (5.2, 5.1)=5.15idxPrev98
|
||||
Cut point: 5.25 //5.3 -> 0 yPrev= 1* (5.3, 5.2)=5.25idxPrev59
|
||||
Cut point: 5.45 //5.5 -> 0 yPrev= 1* (5.5, 5.4)=5.45idxPrev84
|
||||
Cut point: 5.65 //5.7 -> 0 yPrev= 2* (5.7, 5.6)=5.65idxPrev121
|
||||
Cut point: 5.75 //5.8 -> 0 yPrev= 2* (5.8, 5.7)=5.75idxPrev113
|
||||
Cut point: 5.85 //5.9 -> 1 yPrev= 2* (5.9, 5.8)=5.85idxPrev142
|
||||
Cut point: 5.95 //6 -> 1 yPrev= 2* (6, 5.9)=5.95idxPrev149
|
||||
Cut point: 6.05 //6.1 -> 1 yPrev= 2* (6.1, 6)=6.05idxPrev138
|
||||
Cut point: 6.15 //6.2 -> 1 yPrev= 2* (6.2, 6.1)=6.15idxPrev134
|
||||
Cut point: 6.25 //6.3 -> 1 yPrev= 2* (6.3, 6.2)=6.25idxPrev148
|
||||
Cut point: 6.35 //6.4 -> 1 yPrev= 2* (6.4, 6.3)=6.35idxPrev146
|
||||
Cut point: 6.45 //6.5 -> 1 yPrev= 2* (6.5, 6.4)=6.45idxPrev137
|
||||
Cut point: 6.55 //6.6 -> 1 yPrev= 2* (6.6, 6.5)=6.55idxPrev147
|
||||
Cut point: 6.75 //6.8 -> 1 yPrev= 2* (6.8, 6.7)=6.75idxPrev145
|
||||
Cut point: 6.85 //6.9 -> 1 yPrev= 2* (6.9, 6.8)=6.85idxPrev143
|
||||
Cut point: 6.95 //7 -> 1 yPrev= 2* (7, 6.9)=6.95idxPrev141
|
||||
Cut point: 7.05 //7.1 -> 2 yPrev= 1* (7.1, 7)=7.05idxPrev50
|
||||
[4.949999809265137, 5.050000190734863, 5.150000095367432, 5.25, 5.449999809265137,
|
||||
5.650000095367432, 5.75, 5.850000858306885, 5.949999809265137, 6.050000190734863,
|
||||
6.150000095367432, 6.25, 6.350000858306885, 6.449999809265137, 6.550000190734863,
|
||||
6.75, 6.850000858306885, 6.949999809265137, 7.050000190734863]
|
||||
|
||||
Cuts calculados en python: [4.85, 5.25, 5.35, 6.25, 6.55, 6.95, 7.05]
|
212
feature0_new.txt
Normal file
212
feature0_new.txt
Normal file
@@ -0,0 +1,212 @@
|
||||
*idx=0 -> (-1, -1) Prev(4.3, 0) Elementos: 149
|
||||
<idx=0 -> Prev(4.3, 0) Pivot(4.3, 0) Cur(4.3, 0)
|
||||
>idx=1 -> Prev(4.3, 0) Pivot(4.3, 0) Cur(4.4, 0)
|
||||
<idx=1 -> Prev(4.3, 0) Pivot(4.4, 0) Cur(4.4, 0)
|
||||
>idx=2 -> Prev(4.3, 0) Pivot(4.4, 0) Cur(4.4, 0)
|
||||
>idx=3 -> Prev(4.3, 0) Pivot(4.4, 0) Cur(4.4, 0)
|
||||
>idx=4 -> Prev(4.3, 0) Pivot(4.4, 0) Cur(4.5, 0)
|
||||
<idx=4 -> Prev(4.4, 0) Pivot(4.5, 0) Cur(4.5, 0)
|
||||
>idx=5 -> Prev(4.4, 0) Pivot(4.5, 0) Cur(4.6, 0)
|
||||
<idx=5 -> Prev(4.5, 0) Pivot(4.6, 0) Cur(4.6, 0)
|
||||
>idx=6 -> Prev(4.5, 0) Pivot(4.6, 0) Cur(4.6, 0)
|
||||
>idx=7 -> Prev(4.5, 0) Pivot(4.6, 0) Cur(4.6, 0)
|
||||
>idx=8 -> Prev(4.5, 0) Pivot(4.6, 0) Cur(4.6, 0)
|
||||
>idx=9 -> Prev(4.5, 0) Pivot(4.6, 0) Cur(4.7, 0)
|
||||
<idx=9 -> Prev(4.6, 0) Pivot(4.7, 0) Cur(4.7, 0)
|
||||
>idx=10 -> Prev(4.6, 0) Pivot(4.7, 0) Cur(4.7, 0)
|
||||
>idx=11 -> Prev(4.6, 0) Pivot(4.7, 0) Cur(4.8, 0)
|
||||
<idx=11 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.8, 0)
|
||||
>idx=12 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.8, 0)
|
||||
>idx=13 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.8, 0)
|
||||
>idx=14 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.8, 0)
|
||||
>idx=15 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.8, 0)
|
||||
>idx=16 -> Prev(4.7, 0) Pivot(4.8, 0) Cur(4.9, 0)
|
||||
<idx=16 -> Prev(4.8, 0) Pivot(4.9, 0) Cur(4.9, 0)
|
||||
>idx=17 -> Prev(4.8, 0) Pivot(4.9, 0) Cur(4.9, 0)
|
||||
>idx=18 -> Prev(4.8, 0) Pivot(4.9, 0) Cur(4.9, 0)
|
||||
>idx=19 -> Prev(4.8, 0) Pivot(4.9, 0) Cur(4.9, 0)
|
||||
>idx=20 -> Prev(4.8, 0) Pivot(4.9, -1) Cur(4.9, 1)
|
||||
>idx=21 -> Prev(4.8, 0) Pivot(4.9, -1) Cur(4.9, 2)
|
||||
>idx=22 -> Prev(4.8, 0) Pivot(4.9, -1) Cur(5.0, 0)
|
||||
Cutpoint idx=22 Cur(5.0, 0) Prev(4.8, 0) Pivot(4.9, -1) = 4.9
|
||||
<idx=22 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=23 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=24 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=25 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=26 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=27 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=28 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=29 -> Prev(4.9, -1) Pivot(5.0, 0) Cur(5.0, 0)
|
||||
>idx=30 -> Prev(4.9, -1) Pivot(5.0, -1) Cur(5.0, 1)
|
||||
>idx=31 -> Prev(4.9, -1) Pivot(5.0, -1) Cur(5.0, 1)
|
||||
>idx=32 -> Prev(4.9, -1) Pivot(5.0, -1) Cur(5.1, 0)
|
||||
Cutpoint idx=32 Cur(5.1, 0) Prev(4.9, -1) Pivot(5.0, -1) = 5.0
|
||||
<idx=32 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=33 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=34 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=35 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=36 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=37 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=38 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=39 -> Prev(5.0, -1) Pivot(5.1, 0) Cur(5.1, 0)
|
||||
>idx=40 -> Prev(5.0, -1) Pivot(5.1, -1) Cur(5.1, 1)
|
||||
>idx=41 -> Prev(5.0, -1) Pivot(5.1, -1) Cur(5.2, 0)
|
||||
Cutpoint idx=41 Cur(5.2, 0) Prev(5.0, -1) Pivot(5.1, -1) = 5.1
|
||||
<idx=41 -> Prev(5.1, -1) Pivot(5.2, 0) Cur(5.2, 0)
|
||||
>idx=42 -> Prev(5.1, -1) Pivot(5.2, 0) Cur(5.2, 0)
|
||||
>idx=43 -> Prev(5.1, -1) Pivot(5.2, 0) Cur(5.2, 0)
|
||||
>idx=44 -> Prev(5.1, -1) Pivot(5.2, -1) Cur(5.2, 1)
|
||||
>idx=45 -> Prev(5.1, -1) Pivot(5.2, -1) Cur(5.3, 0)
|
||||
Cutpoint idx=45 Cur(5.3, 0) Prev(5.1, -1) Pivot(5.2, -1) = 5.2
|
||||
<idx=45 -> Prev(5.2, -1) Pivot(5.3, 0) Cur(5.3, 0)
|
||||
>idx=46 -> Prev(5.2, -1) Pivot(5.3, 0) Cur(5.4, 0)
|
||||
Cutpoint idx=46 Cur(5.4, 0) Prev(5.2, -1) Pivot(5.3, 0) = 5.3
|
||||
<idx=46 -> Prev(5.3, 0) Pivot(5.4, 0) Cur(5.4, 0)
|
||||
>idx=47 -> Prev(5.3, 0) Pivot(5.4, 0) Cur(5.4, 0)
|
||||
>idx=48 -> Prev(5.3, 0) Pivot(5.4, 0) Cur(5.4, 0)
|
||||
>idx=49 -> Prev(5.3, 0) Pivot(5.4, 0) Cur(5.4, 0)
|
||||
>idx=50 -> Prev(5.3, 0) Pivot(5.4, 0) Cur(5.4, 0)
|
||||
>idx=51 -> Prev(5.3, 0) Pivot(5.4, -1) Cur(5.4, 1)
|
||||
>idx=52 -> Prev(5.3, 0) Pivot(5.4, -1) Cur(5.5, 0)
|
||||
Cutpoint idx=52 Cur(5.5, 0) Prev(5.3, 0) Pivot(5.4, -1) = 5.4
|
||||
<idx=52 -> Prev(5.4, -1) Pivot(5.5, 0) Cur(5.5, 0)
|
||||
>idx=53 -> Prev(5.4, -1) Pivot(5.5, 0) Cur(5.5, 0)
|
||||
>idx=54 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.5, 1)
|
||||
>idx=55 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.5, 1)
|
||||
>idx=56 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.5, 1)
|
||||
>idx=57 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.5, 1)
|
||||
>idx=58 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.5, 1)
|
||||
>idx=59 -> Prev(5.4, -1) Pivot(5.5, -1) Cur(5.6, 1)
|
||||
Cutpoint idx=59 Cur(5.6, 1) Prev(5.4, -1) Pivot(5.5, -1) = 5.5
|
||||
<idx=59 -> Prev(5.5, -1) Pivot(5.6, 1) Cur(5.6, 1)
|
||||
>idx=60 -> Prev(5.5, -1) Pivot(5.6, 1) Cur(5.6, 1)
|
||||
>idx=61 -> Prev(5.5, -1) Pivot(5.6, 1) Cur(5.6, 1)
|
||||
>idx=62 -> Prev(5.5, -1) Pivot(5.6, 1) Cur(5.6, 1)
|
||||
>idx=63 -> Prev(5.5, -1) Pivot(5.6, 1) Cur(5.6, 1)
|
||||
>idx=64 -> Prev(5.5, -1) Pivot(5.6, -1) Cur(5.6, 2)
|
||||
>idx=65 -> Prev(5.5, -1) Pivot(5.6, -1) Cur(5.7, 0)
|
||||
Cutpoint idx=65 Cur(5.7, 0) Prev(5.5, -1) Pivot(5.6, -1) = 5.6
|
||||
<idx=65 -> Prev(5.6, -1) Pivot(5.7, 0) Cur(5.7, 0)
|
||||
>idx=66 -> Prev(5.6, -1) Pivot(5.7, 0) Cur(5.7, 0)
|
||||
>idx=67 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 1)
|
||||
>idx=68 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 1)
|
||||
>idx=69 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 1)
|
||||
>idx=70 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 1)
|
||||
>idx=71 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 1)
|
||||
>idx=72 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.7, 2)
|
||||
>idx=73 -> Prev(5.6, -1) Pivot(5.7, -1) Cur(5.8, 0)
|
||||
Cutpoint idx=73 Cur(5.8, 0) Prev(5.6, -1) Pivot(5.7, -1) = 5.7
|
||||
<idx=73 -> Prev(5.7, -1) Pivot(5.8, 0) Cur(5.8, 0)
|
||||
>idx=74 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 1)
|
||||
>idx=75 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 1)
|
||||
>idx=76 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 1)
|
||||
>idx=77 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 2)
|
||||
>idx=78 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 2)
|
||||
>idx=79 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.8, 2)
|
||||
>idx=80 -> Prev(5.7, -1) Pivot(5.8, -1) Cur(5.9, 1)
|
||||
Cutpoint idx=80 Cur(5.9, 1) Prev(5.7, -1) Pivot(5.8, -1) = 5.8
|
||||
<idx=80 -> Prev(5.8, -1) Pivot(5.9, 1) Cur(5.9, 1)
|
||||
>idx=81 -> Prev(5.8, -1) Pivot(5.9, 1) Cur(5.9, 1)
|
||||
>idx=82 -> Prev(5.8, -1) Pivot(5.9, -1) Cur(5.9, 2)
|
||||
>idx=83 -> Prev(5.8, -1) Pivot(5.9, -1) Cur(6.0, 1)
|
||||
Cutpoint idx=83 Cur(6.0, 1) Prev(5.8, -1) Pivot(5.9, -1) = 5.9
|
||||
<idx=83 -> Prev(5.9, -1) Pivot(6.0, 1) Cur(6.0, 1)
|
||||
>idx=84 -> Prev(5.9, -1) Pivot(6.0, 1) Cur(6.0, 1)
|
||||
>idx=85 -> Prev(5.9, -1) Pivot(6.0, 1) Cur(6.0, 1)
|
||||
>idx=86 -> Prev(5.9, -1) Pivot(6.0, 1) Cur(6.0, 1)
|
||||
>idx=87 -> Prev(5.9, -1) Pivot(6.0, -1) Cur(6.0, 2)
|
||||
>idx=88 -> Prev(5.9, -1) Pivot(6.0, -1) Cur(6.0, 2)
|
||||
>idx=89 -> Prev(5.9, -1) Pivot(6.0, -1) Cur(6.1, 1)
|
||||
Cutpoint idx=89 Cur(6.1, 1) Prev(5.9, -1) Pivot(6.0, -1) = 6.0
|
||||
<idx=89 -> Prev(6.0, -1) Pivot(6.1, 1) Cur(6.1, 1)
|
||||
>idx=90 -> Prev(6.0, -1) Pivot(6.1, 1) Cur(6.1, 1)
|
||||
>idx=91 -> Prev(6.0, -1) Pivot(6.1, 1) Cur(6.1, 1)
|
||||
>idx=92 -> Prev(6.0, -1) Pivot(6.1, 1) Cur(6.1, 1)
|
||||
>idx=93 -> Prev(6.0, -1) Pivot(6.1, -1) Cur(6.1, 2)
|
||||
>idx=94 -> Prev(6.0, -1) Pivot(6.1, -1) Cur(6.1, 2)
|
||||
>idx=95 -> Prev(6.0, -1) Pivot(6.1, -1) Cur(6.2, 1)
|
||||
Cutpoint idx=95 Cur(6.2, 1) Prev(6.0, -1) Pivot(6.1, -1) = 6.1
|
||||
<idx=95 -> Prev(6.1, -1) Pivot(6.2, 1) Cur(6.2, 1)
|
||||
>idx=96 -> Prev(6.1, -1) Pivot(6.2, 1) Cur(6.2, 1)
|
||||
>idx=97 -> Prev(6.1, -1) Pivot(6.2, -1) Cur(6.2, 2)
|
||||
>idx=98 -> Prev(6.1, -1) Pivot(6.2, -1) Cur(6.2, 2)
|
||||
>idx=99 -> Prev(6.1, -1) Pivot(6.2, -1) Cur(6.3, 1)
|
||||
Cutpoint idx=99 Cur(6.3, 1) Prev(6.1, -1) Pivot(6.2, -1) = 6.2
|
||||
<idx=99 -> Prev(6.2, -1) Pivot(6.3, 1) Cur(6.3, 1)
|
||||
>idx=100 -> Prev(6.2, -1) Pivot(6.3, 1) Cur(6.3, 1)
|
||||
>idx=101 -> Prev(6.2, -1) Pivot(6.3, 1) Cur(6.3, 1)
|
||||
>idx=102 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=103 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=104 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=105 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=106 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=107 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.3, 2)
|
||||
>idx=108 -> Prev(6.2, -1) Pivot(6.3, -1) Cur(6.4, 1)
|
||||
Cutpoint idx=108 Cur(6.4, 1) Prev(6.2, -1) Pivot(6.3, -1) = 6.3
|
||||
<idx=108 -> Prev(6.3, -1) Pivot(6.4, 1) Cur(6.4, 1)
|
||||
>idx=109 -> Prev(6.3, -1) Pivot(6.4, 1) Cur(6.4, 1)
|
||||
>idx=110 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.4, 2)
|
||||
>idx=111 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.4, 2)
|
||||
>idx=112 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.4, 2)
|
||||
>idx=113 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.4, 2)
|
||||
>idx=114 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.4, 2)
|
||||
>idx=115 -> Prev(6.3, -1) Pivot(6.4, -1) Cur(6.5, 1)
|
||||
Cutpoint idx=115 Cur(6.5, 1) Prev(6.3, -1) Pivot(6.4, -1) = 6.4
|
||||
<idx=115 -> Prev(6.4, -1) Pivot(6.5, 1) Cur(6.5, 1)
|
||||
>idx=116 -> Prev(6.4, -1) Pivot(6.5, -1) Cur(6.5, 2)
|
||||
>idx=117 -> Prev(6.4, -1) Pivot(6.5, -1) Cur(6.5, 2)
|
||||
>idx=118 -> Prev(6.4, -1) Pivot(6.5, -1) Cur(6.5, 2)
|
||||
>idx=119 -> Prev(6.4, -1) Pivot(6.5, -1) Cur(6.5, 2)
|
||||
>idx=120 -> Prev(6.4, -1) Pivot(6.5, -1) Cur(6.6, 1)
|
||||
Cutpoint idx=120 Cur(6.6, 1) Prev(6.4, -1) Pivot(6.5, -1) = 6.5
|
||||
<idx=120 -> Prev(6.5, -1) Pivot(6.6, 1) Cur(6.6, 1)
|
||||
>idx=121 -> Prev(6.5, -1) Pivot(6.6, 1) Cur(6.6, 1)
|
||||
>idx=122 -> Prev(6.5, -1) Pivot(6.6, 1) Cur(6.7, 1)
|
||||
Cutpoint idx=122 Cur(6.7, 1) Prev(6.5, -1) Pivot(6.6, 1) = 6.6
|
||||
<idx=122 -> Prev(6.6, 1) Pivot(6.7, 1) Cur(6.7, 1)
|
||||
>idx=123 -> Prev(6.6, 1) Pivot(6.7, 1) Cur(6.7, 1)
|
||||
>idx=124 -> Prev(6.6, 1) Pivot(6.7, 1) Cur(6.7, 1)
|
||||
>idx=125 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.7, 2)
|
||||
>idx=126 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.7, 2)
|
||||
>idx=127 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.7, 2)
|
||||
>idx=128 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.7, 2)
|
||||
>idx=129 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.7, 2)
|
||||
>idx=130 -> Prev(6.6, 1) Pivot(6.7, -1) Cur(6.8, 1)
|
||||
Cutpoint idx=130 Cur(6.8, 1) Prev(6.6, 1) Pivot(6.7, -1) = 6.7
|
||||
<idx=130 -> Prev(6.7, -1) Pivot(6.8, 1) Cur(6.8, 1)
|
||||
>idx=131 -> Prev(6.7, -1) Pivot(6.8, -1) Cur(6.8, 2)
|
||||
>idx=132 -> Prev(6.7, -1) Pivot(6.8, -1) Cur(6.8, 2)
|
||||
>idx=133 -> Prev(6.7, -1) Pivot(6.8, -1) Cur(6.9, 1)
|
||||
Cutpoint idx=133 Cur(6.9, 1) Prev(6.7, -1) Pivot(6.8, -1) = 6.8
|
||||
<idx=133 -> Prev(6.8, -1) Pivot(6.9, 1) Cur(6.9, 1)
|
||||
>idx=134 -> Prev(6.8, -1) Pivot(6.9, -1) Cur(6.9, 2)
|
||||
>idx=135 -> Prev(6.8, -1) Pivot(6.9, -1) Cur(6.9, 2)
|
||||
>idx=136 -> Prev(6.8, -1) Pivot(6.9, -1) Cur(6.9, 2)
|
||||
>idx=137 -> Prev(6.8, -1) Pivot(6.9, -1) Cur(7.0, 1)
|
||||
Cutpoint idx=137 Cur(7.0, 1) Prev(6.8, -1) Pivot(6.9, -1) = 6.9
|
||||
<idx=137 -> Prev(6.9, -1) Pivot(7.0, 1) Cur(7.0, 1)
|
||||
>idx=138 -> Prev(6.9, -1) Pivot(7.0, 1) Cur(7.1, 2)
|
||||
Cutpoint idx=138 Cur(7.1, 2) Prev(6.9, -1) Pivot(7.0, 1) = 7.0
|
||||
<idx=138 -> Prev(7.0, 1) Pivot(7.1, 2) Cur(7.1, 2)
|
||||
>idx=139 -> Prev(7.0, 1) Pivot(7.1, 2) Cur(7.2, 2)
|
||||
Cutpoint idx=139 Cur(7.2, 2) Prev(7.0, 1) Pivot(7.1, 2) = 7.1
|
||||
<idx=139 -> Prev(7.1, 2) Pivot(7.2, 2) Cur(7.2, 2)
|
||||
>idx=140 -> Prev(7.1, 2) Pivot(7.2, 2) Cur(7.2, 2)
|
||||
>idx=141 -> Prev(7.1, 2) Pivot(7.2, 2) Cur(7.2, 2)
|
||||
>idx=142 -> Prev(7.1, 2) Pivot(7.2, 2) Cur(7.3, 2)
|
||||
<idx=142 -> Prev(7.2, 2) Pivot(7.3, 2) Cur(7.3, 2)
|
||||
>idx=143 -> Prev(7.2, 2) Pivot(7.3, 2) Cur(7.4, 2)
|
||||
<idx=143 -> Prev(7.3, 2) Pivot(7.4, 2) Cur(7.4, 2)
|
||||
>idx=144 -> Prev(7.3, 2) Pivot(7.4, 2) Cur(7.6, 2)
|
||||
<idx=144 -> Prev(7.4, 2) Pivot(7.6, 2) Cur(7.6, 2)
|
||||
>idx=145 -> Prev(7.4, 2) Pivot(7.6, 2) Cur(7.7, 2)
|
||||
<idx=145 -> Prev(7.6, 2) Pivot(7.7, 2) Cur(7.7, 2)
|
||||
>idx=146 -> Prev(7.6, 2) Pivot(7.7, 2) Cur(7.7, 2)
|
||||
>idx=147 -> Prev(7.6, 2) Pivot(7.7, 2) Cur(7.7, 2)
|
||||
>idx=148 -> Prev(7.6, 2) Pivot(7.7, 2) Cur(7.7, 2)
|
||||
>idx=149 -> Prev(7.6, 2) Pivot(7.7, 2) Cur(7.9, 2)
|
||||
[4.900000095367432, 5.0, 5.099999904632568, 5.199999809265137, 5.300000190734863,
|
||||
5.400000095367432, 5.5, 5.599999904632568, 5.699999809265137, 5.800000190734863,
|
||||
5.900000095367432, 6.0, 6.099999904632568, 6.199999809265137, 6.300000190734863,
|
||||
6.400000095367432, 6.5, 6.599999904632568, 6.699999809265137, 6.800000190734863,
|
||||
6.900000095367432, 7.0, 7.099999904632568]
|
@@ -1,11 +1,17 @@
|
||||
#include "CPPFImdlp.h"
|
||||
#include <numeric>
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <stdio.h>
|
||||
#include <algorithm>
|
||||
#include "Metrics.h"
|
||||
namespace CPPFImdlp
|
||||
{
|
||||
std::ostream &operator<<(std::ostream &os, const CutPointBody &cut)
|
||||
{
|
||||
os << "(" << cut.start << ", " << cut.end << ") -> (" << cut.fromValue << ", " << cut.toValue << "]";
|
||||
return os;
|
||||
}
|
||||
CPPFImdlp::CPPFImdlp() : debug(false), precision(6)
|
||||
{
|
||||
divider = pow(10, precision);
|
||||
@@ -17,33 +23,52 @@ namespace CPPFImdlp
|
||||
CPPFImdlp::~CPPFImdlp()
|
||||
{
|
||||
}
|
||||
std::vector<float> CPPFImdlp::cutPoints(std::vector<float> &X, std::vector<int> &y)
|
||||
void CPPFImdlp::debugPoints(std::vector<float> &X, std::vector<int> &y)
|
||||
{
|
||||
std::vector<float> cutPts;
|
||||
std::vector<size_t> cutIdx;
|
||||
float xPrev, xCur, xPivot, cutPoint;
|
||||
int yPrev, yCur, yPivot;
|
||||
size_t idxPrev, idx, numElements;
|
||||
std::cout << "+++++++++++++++++++++++" << std::endl;
|
||||
// for (auto i : sortIndices(X))
|
||||
std::vector<size_t> indices = sortIndices(X);
|
||||
xCur = xPrev = X.at(indices.at(0));
|
||||
yCur = yPrev = y.at(indices.at(0));
|
||||
for (size_t i = 0; i < indices.size(); i++)
|
||||
{
|
||||
printf("(%3lu, %3lu) -> (%3.1f, %d)\n", i, indices[i], X[indices[i]], y[indices[i]]);
|
||||
}
|
||||
std::cout << "+++++++++++++++++++++++" << std::endl;
|
||||
for (auto item : cutPoints(X, y))
|
||||
{
|
||||
std::cout << item << " X[" << item.end << "]=" << X[item.end] << std::endl;
|
||||
}
|
||||
}
|
||||
std::vector<CutPointBody> CPPFImdlp::cutPoints(std::vector<float> &X, std::vector<int> &y)
|
||||
{
|
||||
|
||||
std::vector<CutPointBody> cutPts;
|
||||
CutPointBody cutPoint;
|
||||
std::vector<size_t> cutIdx;
|
||||
float xPrev, xCur, xPivot;
|
||||
int yPrev, yCur, yPivot;
|
||||
size_t idxPrev, idxPivot, idx, numElements, start;
|
||||
std::vector<size_t> indices = sortIndices(X);
|
||||
xCur = xPrev = X[indices[0]];
|
||||
yCur = yPrev = y[indices[0]];
|
||||
numElements = indices.size() - 1;
|
||||
// idxPrev = indices.at(0);
|
||||
idx = 0;
|
||||
idxPrev = indices[0];
|
||||
idx = start = 0;
|
||||
bool firstCutPoint = true;
|
||||
if (debug)
|
||||
printf("*idx=%lu -> (-1, -1) Prev(%3.1f, %d) Elementos: %lu\n", idx, xCur, yCur, numElements);
|
||||
while (idx < numElements)
|
||||
{
|
||||
xPivot = xCur;
|
||||
yPivot = yCur;
|
||||
idxPivot = indices[idx];
|
||||
if (debug)
|
||||
printf("<idx=%lu -> Prev(%3.1f, %d) Pivot(%3.1f, %d) Cur(%3.1f, %d) \n", idx, xPrev, yPrev, xPivot, yPivot, xCur, yCur);
|
||||
// Read the same values and check class changes
|
||||
do
|
||||
{
|
||||
idx++;
|
||||
xCur = X.at(indices.at(idx));
|
||||
yCur = y.at(indices.at(idx));
|
||||
xCur = X[indices[idx]];
|
||||
yCur = y[indices[idx]];
|
||||
if (yCur != yPivot && xCur == xPivot)
|
||||
{
|
||||
yPivot = -1;
|
||||
@@ -53,15 +78,33 @@ namespace CPPFImdlp
|
||||
} while (idx < numElements && xCur == xPivot);
|
||||
if (yPivot == -1 || yPrev != yCur)
|
||||
{
|
||||
cutPoint = (xPrev + xCur) / 2;
|
||||
cutPoint.start = start;
|
||||
cutPoint.end = idxPrev;
|
||||
start = idx;
|
||||
cutPoint.fromValue = firstCutPoint ? std::numeric_limits<float>::lowest() : cutPts.back().toValue;
|
||||
cutPoint.toValue = (xPrev + xCur) / 2;
|
||||
firstCutPoint = false;
|
||||
if (debug)
|
||||
printf("Cutpoint idx=%lu Cur(%3.1f, %d) Prev(%3.1f, %d) Pivot(%3.1f, %d) = %3.1f \n", idx, xCur, yCur, xPrev, yPrev, xPivot, yPivot, cutPoint);
|
||||
{
|
||||
printf("Cutpoint idx=%lu Cur(%3.1f, %d) Prev(%3.1f, %d) Pivot(%3.1f, %d) = (%3.1g, %3.1g] \n", idx, xCur, yCur, xPrev, yPrev, xPivot, yPivot, cutPoint.fromValue, cutPoint.toValue);
|
||||
}
|
||||
cutPts.push_back(cutPoint);
|
||||
// cutIdx.push_back(idxPrev);
|
||||
cutIdx.push_back(idxPrev);
|
||||
}
|
||||
yPrev = yPivot;
|
||||
xPrev = xPivot;
|
||||
// idxPrev = indices.at(idxPivot);
|
||||
idxPrev = indices[idxPivot];
|
||||
}
|
||||
if (idxPrev >= numElements)
|
||||
{
|
||||
cutPoint.start = start;
|
||||
cutPoint.end = numElements;
|
||||
cutPoint.fromValue = firstCutPoint ? std::numeric_limits<float>::lowest() : cutPts.back().toValue;
|
||||
cutPoint.toValue = std::numeric_limits<float>::max();
|
||||
if (debug)
|
||||
printf("Final Cutpoint idx=%lu Cur(%3.1f, %d) Prev(%3.1f, %d) Pivot(%3.1f, %d) = (%3.1g, %3.1g] \n", idx, xCur, yCur, xPrev, yPrev, xPivot, yPivot, cutPoint.fromValue, cutPoint.toValue);
|
||||
cutPts.push_back(cutPoint);
|
||||
cutIdx.push_back(idxPrev);
|
||||
}
|
||||
return cutPts;
|
||||
}
|
||||
|
@@ -4,6 +4,11 @@
|
||||
#include <utility>
|
||||
namespace CPPFImdlp
|
||||
{
|
||||
struct CutPointBody
|
||||
{
|
||||
size_t start, end;
|
||||
float fromValue, toValue;
|
||||
};
|
||||
class CPPFImdlp
|
||||
{
|
||||
private:
|
||||
@@ -17,8 +22,9 @@ namespace CPPFImdlp
|
||||
CPPFImdlp();
|
||||
CPPFImdlp(int, bool debug = false);
|
||||
~CPPFImdlp();
|
||||
std::vector<float> cutPoints(std::vector<float> &, std::vector<int> &);
|
||||
std::vector<CutPointBody> cutPoints(std::vector<float> &, std::vector<int> &);
|
||||
std::vector<float> cutPointsAnt(std::vector<float> &, std::vector<int> &);
|
||||
void debugPoints(std::vector<float> &, std::vector<int> &);
|
||||
};
|
||||
}
|
||||
#endif
|
@@ -1,6 +1,7 @@
|
||||
#ifndef METRICS_H
|
||||
#define METRICS_H
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
namespace CPPFImdlp
|
||||
{
|
||||
class Metrics
|
||||
|
@@ -7,8 +7,9 @@ cdef extern from "CPPFImdlp.h" namespace "CPPFImdlp":
|
||||
cdef cppclass CPPFImdlp:
|
||||
CPPFImdlp() except +
|
||||
CPPFImdlp(int, bool) except +
|
||||
vector[float] cutPoints(vector[float]&, vector[int]&)
|
||||
vector[float] cutPointsAnt(vector[float]&, vector[int]&)
|
||||
void debugPoints(vector[float]&, vector[int]&)
|
||||
|
||||
|
||||
cdef class CFImdlp:
|
||||
cdef CPPFImdlp *thisptr
|
||||
@@ -16,7 +17,7 @@ cdef class CFImdlp:
|
||||
self.thisptr = new CPPFImdlp(precision, debug)
|
||||
def __dealloc__(self):
|
||||
del self.thisptr
|
||||
def cut_points(self, X, y):
|
||||
return self.thisptr.cutPoints(X, y)
|
||||
def cut_points_ant(self, X, y):
|
||||
return self.thisptr.cutPointsAnt(X, y)
|
||||
def debug_points(self, X, y):
|
||||
return self.thisptr.debugPoints(X, y)
|
||||
|
BIN
fimdlp/cppfimdlp.cpython-310-darwin.so
Executable file
BIN
fimdlp/cppfimdlp.cpython-310-darwin.so
Executable file
Binary file not shown.
@@ -105,8 +105,10 @@ class FImdlp(TransformerMixin, BaseEstimator):
|
||||
print("Cuts calculados en C++")
|
||||
print("Cut points for each feature in Iris dataset:")
|
||||
for i in range(0, self.n_features_):
|
||||
datax = self.X_[np.argsort(self.X_[:, i]), i]
|
||||
y_ = self.y_[np.argsort(self.X_[:, i])]
|
||||
# datax = self.X_[np.argsort(self.X_[:, i]), i]
|
||||
# y_ = self.y_[np.argsort(self.X_[:, i])]
|
||||
datax = self.X_[:, i]
|
||||
y_ = self.y_
|
||||
Xcutpoints = self.discretizer_.cut_points(datax, y_)
|
||||
print(
|
||||
f"New ({len(Xcutpoints)}):{self.features_[i]:20s}: "
|
||||
|
10
sample.py
10
sample.py
@@ -8,7 +8,15 @@ X = data.data
|
||||
y = data.target
|
||||
features = data.feature_names
|
||||
test = FImdlp()
|
||||
test.fit(X, y, features=features).transform(X)
|
||||
test.fit(X, y, features=features)
|
||||
# test.transform(X)
|
||||
|
||||
test = CFImdlp(debug=False)
|
||||
# k = test.cut_points(X[:, 0], y)
|
||||
# print(k)
|
||||
# k = test.cut_points_ant(X[:, 0], y)
|
||||
# print(k)
|
||||
test.debug_points(X[:, 0], y)
|
||||
|
||||
# X = np.array(
|
||||
# [
|
||||
|
Reference in New Issue
Block a user