()
| 44 | |
| 45 | #[test] |
| 46 | fn test_linear_effect() { |
| 47 | let x = synthetic_x(120, 13); |
| 48 | let mut fp = RegressionModelFingerprint::new(); |
| 49 | |
| 50 | let reg_rf_like = NonLinearRegModel; |
| 51 | fp.fit(®_rf_like, &x, 20, None).unwrap(); |
| 52 | let (linear_effect, _, _) = fp.get_effects().unwrap(); |
| 53 | assert!(linear_effect.norm[&0] > 0.20); |
| 54 | assert!(linear_effect.norm[&1] > 0.01); |
| 55 | |
| 56 | let reg_linear = |
| 57 | LinearRegModel { w: vec![1.2, 0.0, 0.8, 0.0, 0.0, 2.4, 1.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9] }; |
| 58 | fp.fit(®_linear, &x, 20, None).unwrap(); |
| 59 | let (linear_effect_linear, _, _) = fp.get_effects().unwrap(); |
| 60 | let linear_effect_linear_norm = linear_effect_linear.norm.clone(); |
| 61 | assert!(linear_effect_linear.norm[&5] > linear_effect_linear.norm[&2]); |
| 62 | assert!(linear_effect_linear.norm[&2] > linear_effect_linear.norm[&1]); |
| 63 | |
| 64 | fp.fit(®_linear, &x, 70, None).unwrap(); |
| 65 | let (linear_effect_70, _, _) = fp.get_effects().unwrap(); |
| 66 | for feature in [0usize, 5, 6, 12] { |
| 67 | assert!( |
| 68 | (linear_effect_linear_norm[&feature] - linear_effect_70.norm[&feature]).abs() < 0.05 |
| 69 | ); |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | #[test] |
| 74 | fn test_non_linear_effect() { |
nothing calls this directly
no test coverage detected