@@ -361,6 +361,7 @@ impl Booster {
361
361
dmat. handle,
362
362
option_mask,
363
363
ntree_limit,
364
+ 0 ,
364
365
& mut out_len,
365
366
& mut out_result) ) ?;
366
367
@@ -381,10 +382,10 @@ impl Booster {
381
382
dmat. handle,
382
383
option_mask,
383
384
ntree_limit,
385
+ 1 ,
384
386
& mut out_len,
385
387
& mut out_result) ) ?;
386
388
assert ! ( !out_result. is_null( ) ) ;
387
-
388
389
let data = unsafe { slice:: from_raw_parts ( out_result, out_len as usize ) . to_vec ( ) } ;
389
390
Ok ( data)
390
391
}
@@ -403,6 +404,7 @@ impl Booster {
403
404
dmat. handle,
404
405
option_mask,
405
406
ntree_limit,
407
+ 0 ,
406
408
& mut out_len,
407
409
& mut out_result) ) ?;
408
410
assert ! ( !out_result. is_null( ) ) ;
@@ -429,6 +431,7 @@ impl Booster {
429
431
dmat. handle,
430
432
option_mask,
431
433
ntree_limit,
434
+ 0 ,
432
435
& mut out_len,
433
436
& mut out_result) ) ?;
434
437
assert ! ( !out_result. is_null( ) ) ;
@@ -456,6 +459,7 @@ impl Booster {
456
459
dmat. handle,
457
460
option_mask,
458
461
ntree_limit,
462
+ 0 ,
459
463
& mut out_len,
460
464
& mut out_result) ) ?;
461
465
assert ! ( !out_result. is_null( ) ) ;
@@ -623,7 +627,6 @@ impl FeatureMap {
623
627
} ;
624
628
features. 0 . insert ( feature_num, ( feature_name. to_string ( ) , feature_type) ) ;
625
629
}
626
-
627
630
Ok ( features)
628
631
}
629
632
}
@@ -704,7 +707,8 @@ mod tests {
704
707
705
708
#[ test]
706
709
fn save_and_load_from_buffer ( ) {
707
- let mut booster = load_test_booster ( ) ;
710
+ let dmat_train = DMatrix :: load ( "xgboost-sys/xgboost/demo/data/agaricus.txt.train" ) . unwrap ( ) ;
711
+ let mut booster = Booster :: new_with_cached_dmats ( & BoosterParameters :: default ( ) , & [ & dmat_train] ) . unwrap ( ) ;
708
712
let attr = booster. get_attribute ( "foo" ) . expect ( "Getting attribute failed" ) ;
709
713
assert_eq ! ( attr, None ) ;
710
714
@@ -939,6 +943,8 @@ mod tests {
939
943
fn dump_model ( ) {
940
944
let dmat_train = DMatrix :: load ( "xgboost-sys/xgboost/demo/data/agaricus.txt.train" ) . unwrap ( ) ;
941
945
946
+ println ! ( "{:?}" , dmat_train. shape( ) ) ;
947
+
942
948
let tree_params = tree:: TreeBoosterParametersBuilder :: default ( )
943
949
. max_depth ( 2 )
944
950
. eta ( 1.0 )
@@ -963,75 +969,75 @@ mod tests {
963
969
. expect ( "failed to parse feature map file" ) ;
964
970
965
971
assert_eq ! ( booster. dump_model( true , Some ( & features) ) . unwrap( ) ,
966
- "0:[odor=pungent ] yes=2,no=1,gain=4000.53101,cover=1628.25
967
- 1:[stalk-root=cup ] yes=4,no=3,gain=1158.21204,cover=924.5
972
+ "0:[odor=none ] yes=2,no=1,gain=4000.53101,cover=1628.25
973
+ 1:[stalk-root=club ] yes=4,no=3,gain=1158.21204,cover=924.5
968
974
3:leaf=1.71217716,cover=812
969
975
4:leaf=-1.70044053,cover=112.5
970
- 2:[spore-print-color=orange ] yes=6,no=5,gain=198.173828,cover=703.75
976
+ 2:[spore-print-color=green ] yes=6,no=5,gain=198.173828,cover=703.75
971
977
5:leaf=-1.94070864,cover=690.5
972
978
6:leaf=1.85964918,cover=13.25
973
979
974
- 0:[stalk-root=missing ] yes=2,no=1,gain=832.545044,cover=788.852051
975
- 1:[odor=pungent ] yes=4,no=3,gain=569.725098,cover=768.389709
980
+ 0:[stalk-root=rooted ] yes=2,no=1,gain=832.545044,cover=788.852051
981
+ 1:[odor=none ] yes=4,no=3,gain=569.725098,cover=768.389709
976
982
3:leaf=0.78471756,cover=458.936859
977
983
4:leaf=-0.968530357,cover=309.45282
978
984
2:leaf=-6.23624468,cover=20.462389
979
985
980
- 0:[ring-type=sheathing ] yes=2,no=1,gain=368.744568,cover=457.069458
981
- 1:[stalk-surface-below-ring=silky ] yes=4,no=3,gain=226.33696,cover=221.051468
986
+ 0:[ring-type=pendant ] yes=2,no=1,gain=368.744568,cover=457.069458
987
+ 1:[stalk-surface-below-ring=scaly ] yes=4,no=3,gain=226.33696,cover=221.051468
982
988
3:leaf=0.658725023,cover=212.999451
983
989
4:leaf=5.77228642,cover=8.05200672
984
- 2:[spore-print-color=white ] yes=6,no=5,gain=258.184265,cover=236.018005
990
+ 2:[spore-print-color=purple ] yes=6,no=5,gain=258.184265,cover=236.018005
985
991
5:leaf=-0.791407049,cover=233.487625
986
992
6:leaf=-9.421422,cover=2.53038669
987
993
988
- 0:[odor=musty ] yes=2,no=1,gain=140.486069,cover=364.119354
989
- 1:[gill-size=narrow ] yes=4,no=3,gain=139.860504,cover=274.101959
994
+ 0:[odor=foul ] yes=2,no=1,gain=140.486069,cover=364.119354
995
+ 1:[gill-size=broad ] yes=4,no=3,gain=139.860504,cover=274.101959
990
996
3:leaf=0.614153326,cover=95.8599854
991
997
4:leaf=-0.877905607,cover=178.241974
992
998
2:leaf=1.07747853,cover=90.0174103
993
999
994
- 0:[spore-print-color=orange ] yes=2,no=1,gain=112.605011,cover=189.202194
995
- 1:[gill-spacing=crowded ] yes=4,no=3,gain=66.4029999,cover=177.771835
1000
+ 0:[spore-print-color=green ] yes=2,no=1,gain=112.605011,cover=189.202194
1001
+ 1:[gill-spacing=close ] yes=4,no=3,gain=66.4029999,cover=177.771835
996
1002
3:leaf=-1.26934469,cover=42.277401
997
1003
4:leaf=0.152607277,cover=135.494431
998
1004
2:leaf=2.92190909,cover=11.4303684
999
1005
1000
- 0:[odor=anise ] yes=2,no=1,gain=52.5610275,cover=170.612762
1001
- 1:[odor=creosote ] yes=4,no=3,gain=67.3869553,cover=150.881165
1006
+ 0:[odor=almond ] yes=2,no=1,gain=52.5610275,cover=170.612762
1007
+ 1:[odor=anise ] yes=4,no=3,gain=67.3869553,cover=150.881165
1002
1008
3:leaf=0.431742132,cover=131.902222
1003
1009
4:leaf=-1.53846073,cover=18.9789505
1004
- 2:[gill-spacing=crowded ] yes=6,no=5,gain=12.4420624,cover=19.731596
1010
+ 2:[gill-spacing=close ] yes=6,no=5,gain=12.4420624,cover=19.731596
1005
1011
5:leaf=-3.02413678,cover=3.65769386
1006
1012
6:leaf=-1.02315068,cover=16.0739021
1007
1013
1008
- 0:[odor=pungent ] yes=2,no=1,gain=66.2389145,cover=142.360611
1009
- 1:[odor=creosote ] yes=4,no=3,gain=31.2294312,cover=72.7557373
1014
+ 0:[odor=none ] yes=2,no=1,gain=66.2389145,cover=142.360611
1015
+ 1:[odor=anise ] yes=4,no=3,gain=31.2294312,cover=72.7557373
1010
1016
3:leaf=0.777142286,cover=64.5309982
1011
1017
4:leaf=-1.19710124,cover=8.22473907
1012
- 2:[spore-print-color=orange ] yes=6,no=5,gain=12.1987419,cover=69.6048737
1018
+ 2:[spore-print-color=green ] yes=6,no=5,gain=12.1987419,cover=69.6048737
1013
1019
5:leaf=-0.912605286,cover=66.1211166
1014
1020
6:leaf=0.836115122,cover=3.48375821
1015
1021
1016
- 0:[gill-size=narrow ] yes=2,no=1,gain=20.6531773,cover=79.4027634
1017
- 1:[spore-print-color=yellow ] yes=4,no=3,gain=16.0703697,cover=34.9289207
1022
+ 0:[gill-size=broad ] yes=2,no=1,gain=20.6531773,cover=79.4027634
1023
+ 1:[spore-print-color=white ] yes=4,no=3,gain=16.0703697,cover=34.9289207
1018
1024
3:leaf=-0.0180106498,cover=25.0319824
1019
1025
4:leaf=1.4361918,cover=9.89693928
1020
- 2:[odor=musty ] yes=6,no=5,gain=22.1144333,cover=44.4738464
1026
+ 2:[odor=foul ] yes=6,no=5,gain=22.1144333,cover=44.4738464
1021
1027
5:leaf=-0.908311546,cover=36.982872
1022
1028
6:leaf=0.890622675,cover=7.49097395
1023
1029
1024
- 0:[odor=anise ] yes=2,no=1,gain=11.7128553,cover=53.3251991
1025
- 1:[ring-type=sheathing ] yes=4,no=3,gain=12.546154,cover=44.299942
1030
+ 0:[odor=almond ] yes=2,no=1,gain=11.7128553,cover=53.3251991
1031
+ 1:[ring-type=pendant ] yes=4,no=3,gain=12.546154,cover=44.299942
1026
1032
3:leaf=-0.515293062,cover=15.7899179
1027
1033
4:leaf=0.56883812,cover=28.5100231
1028
1034
2:leaf=-1.01502442,cover=9.02525806
1029
1035
1030
- 0:[population=numerous ] yes=2,no=1,gain=14.8892794,cover=45.9312019
1031
- 1:[odor=pungent ] yes=4,no=3,gain=10.1308851,cover=43.0564575
1036
+ 0:[population=clustered ] yes=2,no=1,gain=14.8892794,cover=45.9312019
1037
+ 1:[odor=none ] yes=4,no=3,gain=10.1308851,cover=43.0564575
1032
1038
3:leaf=0.217203051,cover=22.3283749
1033
1039
4:leaf=-0.734555721,cover=20.7280827
1034
- 2:[stalk-surface-above-ring=fibrous ] yes=6,no=5,gain=19.3462334,cover=2.87474418
1040
+ 2:[stalk-root=missing ] yes=6,no=5,gain=19.3462334,cover=2.87474418
1035
1041
5:leaf=3.63442755,cover=1.34154534
1036
1042
6:leaf=-0.609474957,cover=1.53319895
1037
1043
" ) ;
0 commit comments