Filtre out unwanted Cartesian features
This commit is contained in:
parent
39bc3964b3
commit
dbe1613052
@ -84,6 +84,7 @@ worstFeaturesPipeline :: Bool -> GEvalSpecification -> BlackBoxDebuggingOptions
|
|||||||
worstFeaturesPipeline reversed spec bbdo = rank (lessByMetric reversed $ gesMainMetric spec)
|
worstFeaturesPipeline reversed spec bbdo = rank (lessByMetric reversed $ gesMainMetric spec)
|
||||||
.| evalStateC 0 (extractFeaturesAndPValues spec bbdo)
|
.| evalStateC 0 (extractFeaturesAndPValues spec bbdo)
|
||||||
.| gobbleAndDo (sortBy featureOrder)
|
.| gobbleAndDo (sortBy featureOrder)
|
||||||
|
.| filtreCartesian (bbdoCartesian bbdo)
|
||||||
.| CL.map (encodeUtf8 . formatFeatureWithPValue)
|
.| CL.map (encodeUtf8 . formatFeatureWithPValue)
|
||||||
.| CC.unlinesAscii
|
.| CC.unlinesAscii
|
||||||
.| CC.stdout
|
.| CC.stdout
|
||||||
@ -152,6 +153,13 @@ finalFeatures True minFreq = do
|
|||||||
$ ((Prelude.map UnaryFeature fs) ++
|
$ ((Prelude.map UnaryFeature fs) ++
|
||||||
(cartesianFeatures $ Prelude.filter ((flip S.member) wanted) fs))
|
(cartesianFeatures $ Prelude.filter ((flip S.member) wanted) fs))
|
||||||
|
|
||||||
|
filtreCartesian False = CC.map id
|
||||||
|
filtreCartesian True = CC.concatMapAccum step S.empty
|
||||||
|
where step f@(FeatureWithPValue (UnaryFeature p) _ _ _) mp = (S.insert p mp, [f])
|
||||||
|
step f@(FeatureWithPValue (CartesianFeature pA pB) _ _ _) mp = (mp, if pA `S.member` mp || pB `S.member` mp
|
||||||
|
then []
|
||||||
|
else [f])
|
||||||
|
|
||||||
peggedToUnaryLine :: LineWithPeggedFeatures -> LineWithFeatures
|
peggedToUnaryLine :: LineWithPeggedFeatures -> LineWithFeatures
|
||||||
peggedToUnaryLine (LineWithPeggedFeatures rank score fs) = LineWithFeatures rank score (Prelude.map UnaryFeature fs)
|
peggedToUnaryLine (LineWithPeggedFeatures rank score fs) = LineWithFeatures rank score (Prelude.map UnaryFeature fs)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user