diff --git a/data/readme.md b/data/readme.md index b8a5a11a..7a7cd3f6 100644 --- a/data/readme.md +++ b/data/readme.md @@ -8,3 +8,6 @@ under MIT License. The code to build the data set in ``download_twins.py'' is adapted from https://github.com/py-why/dowhy/blob/2c4734867cf87b5cf578cbf85a8cc4eaa8cfa802/docs/source/example_notebooks/dowhy_twins_example.ipynb, under MIT License. + +## Rossi +This data set is taken from https://github.com/CamDavidsonPilon/lifelines/blob/master/lifelines/datasets/rossi.csv under MIT License. diff --git a/data/rossi.csv b/data/rossi.csv new file mode 100644 index 00000000..81629954 --- /dev/null +++ b/data/rossi.csv @@ -0,0 +1,433 @@ +week,arrest,fin,age,race,wexp,mar,paro,prio +20,1,0,27,1,0,0,1,3 +17,1,0,18,1,0,0,1,8 +25,1,0,19,0,1,0,1,13 +52,0,1,23,1,1,1,1,1 +52,0,0,19,0,1,0,1,3 +52,0,0,24,1,1,0,0,2 +23,1,0,25,1,1,1,1,0 +52,0,1,21,1,1,0,1,4 +52,0,0,22,1,0,0,0,6 +52,0,0,20,1,1,0,0,0 +52,0,1,26,1,0,0,1,3 +52,0,0,40,1,1,0,0,2 +37,1,0,17,1,1,0,1,5 +52,0,0,37,1,1,0,0,2 +25,1,0,20,1,0,0,1,3 +46,1,1,22,1,1,0,1,2 +28,1,0,19,1,0,0,0,7 +52,0,0,20,1,0,0,0,2 +52,0,0,25,1,0,0,1,12 +52,0,0,24,0,1,0,1,1 +52,0,0,23,1,0,0,1,4 +52,0,1,44,1,1,1,1,0 +24,1,1,29,1,1,0,1,2 +52,0,1,28,0,1,0,1,1 +52,0,1,21,1,1,0,0,0 +52,0,1,19,1,1,0,1,2 +52,0,0,33,1,1,0,1,1 +52,0,0,19,1,0,0,0,2 +52,0,1,19,1,0,0,1,3 +52,0,1,23,1,1,1,1,9 +52,0,1,23,1,0,0,1,3 +52,0,1,19,1,0,0,1,1 +52,0,1,42,1,1,0,0,0 +52,0,0,23,1,1,1,0,2 +52,0,0,24,1,1,0,0,3 +50,1,1,20,1,1,0,1,2 +52,0,0,22,1,1,0,1,5 +52,0,0,27,1,1,0,0,2 +52,0,1,19,1,0,0,0,4 +52,0,0,28,1,1,0,1,3 +52,0,1,33,1,1,1,0,9 +52,0,0,24,1,1,0,1,1 +10,1,0,21,1,0,0,1,14 +52,0,0,22,1,0,0,1,2 +52,0,1,19,1,0,0,1,2 +52,0,1,22,1,0,0,0,2 +52,0,1,22,1,0,0,0,15 +20,1,1,23,1,1,0,1,5 +52,0,0,32,1,1,1,1,2 +52,0,1,27,1,1,0,1,0 +52,0,1,36,1,1,0,0,0 +52,0,1,22,1,1,0,1,1 +52,0,1,32,1,1,0,1,1 +50,1,1,19,1,1,0,0,10 +52,0,0,28,1,1,1,1,1 +52,0,0,32,0,1,0,0,3 +52,0,0,33,1,1,1,1,1 +52,0,0,26,1,0,0,1,1 +52,0,1,20,1,1,0,1,0 +52,0,1,42,1,1,0,0,9 +6,1,0,19,1,0,0,0,6 +52,0,0,22,1,1,0,0,2 +52,0,0,22,1,0,0,1,5 +52,0,0,36,1,0,0,0,11 +52,1,0,23,1,1,0,0,2 +52,0,1,27,1,1,0,1,3 +52,0,1,21,1,0,0,1,1 +52,0,1,22,1,1,0,1,2 +49,1,0,35,1,1,0,1,3 +52,0,0,21,1,1,0,1,4 +52,0,1,25,1,1,0,1,5 +52,0,0,18,1,0,0,1,0 +52,0,1,26,1,1,0,1,2 +52,0,0,30,1,1,0,0,4 +52,0,0,20,1,0,0,1,2 +52,0,1,43,1,1,0,1,1 +43,1,0,23,1,1,1,1,4 +52,0,0,42,0,1,0,0,2 +52,0,0,21,0,0,0,0,2 +5,1,0,19,1,0,0,0,3 +27,1,0,29,1,0,0,0,4 +52,0,0,30,1,1,0,1,3 +52,0,1,21,0,1,1,1,10 +52,0,0,20,1,0,0,1,7 +22,1,1,19,1,0,0,1,10 +52,0,1,22,1,1,0,1,1 +52,0,0,25,1,0,0,1,3 +18,1,0,22,1,0,0,0,4 +52,0,1,22,1,1,0,1,4 +52,0,1,24,1,0,0,1,2 +52,0,0,39,1,1,1,1,4 +52,0,0,21,1,1,0,1,1 +52,0,1,20,1,1,0,1,2 +52,0,1,24,1,0,0,0,1 +52,0,0,25,1,1,0,1,2 +24,1,1,21,1,1,0,0,4 +52,0,1,20,1,0,0,1,1 +52,0,1,19,1,0,0,1,3 +52,0,1,24,1,0,0,0,2 +52,0,1,24,1,1,0,1,1 +2,1,0,44,1,1,0,1,2 +26,1,0,32,1,1,0,0,2 +52,0,0,23,1,1,0,0,3 +49,1,1,19,1,0,0,1,1 +52,0,0,20,1,0,0,1,1 +21,1,0,27,1,1,0,1,0 +48,1,0,19,1,0,0,0,6 +52,0,1,21,1,1,0,0,1 +52,0,0,20,1,0,0,1,1 +52,0,0,25,1,0,0,1,3 +52,0,0,20,1,0,0,1,6 +52,0,1,23,1,1,0,1,3 +52,0,0,20,1,0,0,0,2 +52,0,1,30,1,1,0,0,1 +52,0,0,25,1,1,1,1,0 +52,0,0,22,1,1,0,1,1 +52,0,0,24,1,1,0,1,3 +52,0,1,18,1,0,0,0,4 +8,1,1,40,1,1,0,1,1 +52,0,0,22,1,0,0,1,1 +52,0,1,23,1,0,0,1,6 +49,1,0,21,1,1,0,1,1 +52,0,1,24,0,1,1,1,2 +52,0,1,24,1,0,0,1,14 +52,0,0,38,1,1,0,1,2 +52,0,0,26,0,1,0,0,3 +52,0,1,29,1,1,0,0,1 +52,0,0,21,1,0,0,1,8 +52,0,1,21,1,1,1,1,2 +52,0,0,22,0,0,0,1,4 +8,1,0,23,1,0,0,1,5 +52,0,0,27,1,1,0,0,2 +52,0,1,18,1,0,0,1,2 +13,1,0,23,1,0,0,0,5 +52,0,1,24,1,0,0,1,2 +52,0,1,21,1,0,0,0,3 +52,0,1,20,1,0,0,1,4 +52,0,1,27,1,1,0,0,4 +8,1,1,20,1,0,0,1,11 +52,0,1,29,1,1,1,1,5 +33,1,0,19,1,0,0,0,10 +52,0,0,20,1,0,0,0,8 +52,0,1,18,1,0,0,1,0 +11,1,1,19,1,0,0,1,2 +52,0,1,24,1,1,0,1,1 +52,0,0,28,0,1,0,1,4 +52,0,1,26,1,0,0,0,4 +52,0,1,17,1,0,0,1,0 +52,0,0,21,1,0,0,1,3 +37,1,0,34,1,1,0,0,2 +52,0,1,26,1,1,0,0,1 +52,0,1,43,1,1,0,1,2 +52,0,0,20,1,0,0,1,0 +44,1,0,20,1,1,0,1,1 +52,0,0,32,1,1,0,1,1 +52,1,0,25,0,1,0,1,1 +52,0,1,22,1,0,0,1,1 +52,0,1,31,0,1,0,1,1 +52,0,1,42,1,1,1,1,4 +52,0,1,32,1,1,0,0,10 +52,0,1,20,1,0,0,0,8 +52,0,0,20,0,0,0,0,1 +52,0,1,36,1,0,0,1,8 +52,0,1,34,1,1,0,1,2 +52,0,1,28,1,1,1,1,3 +52,0,1,21,1,1,0,1,2 +52,0,0,18,0,0,0,1,6 +52,0,1,20,0,0,0,1,4 +52,0,0,17,0,0,0,1,3 +52,0,1,44,1,0,0,1,3 +52,0,1,30,1,1,0,1,5 +52,0,1,22,1,0,0,0,11 +9,1,1,30,1,0,0,0,3 +17,1,0,23,1,0,0,0,8 +52,0,1,20,1,1,0,0,2 +52,0,0,19,1,0,0,0,10 +52,0,1,21,1,0,0,1,1 +52,0,1,22,1,0,0,1,6 +52,0,1,19,1,0,0,1,2 +52,0,1,21,1,0,0,0,10 +16,1,0,38,1,0,0,1,3 +52,0,1,24,1,0,0,0,7 +52,0,1,39,1,1,1,0,2 +3,1,0,30,1,0,0,1,3 +52,0,0,37,1,1,0,0,0 +52,0,1,23,1,0,0,1,2 +52,0,0,21,0,0,0,1,1 +52,0,1,31,1,1,0,1,1 +52,0,1,24,1,0,0,0,13 +52,0,0,31,0,1,1,1,3 +52,0,0,24,1,0,0,1,2 +52,0,1,24,1,1,0,1,1 +52,0,1,21,0,1,0,0,1 +52,0,1,22,1,0,0,0,2 +45,1,0,20,1,0,0,1,5 +52,0,1,21,1,1,0,1,0 +52,0,1,24,1,1,0,1,2 +52,0,0,25,1,1,0,1,1 +52,0,0,19,1,0,0,1,1 +52,0,0,20,0,0,0,0,2 +52,0,0,20,1,1,0,1,4 +28,1,0,24,1,1,0,0,1 +52,0,1,18,1,0,0,0,4 +16,1,1,28,1,0,0,1,5 +15,1,1,19,1,0,0,0,4 +52,0,0,19,1,1,0,0,1 +52,0,0,25,1,1,1,0,0 +52,0,1,19,0,0,0,0,1 +52,0,1,25,1,0,0,0,2 +14,1,0,24,1,0,0,0,0 +52,0,1,20,1,1,0,1,1 +52,0,1,30,1,0,0,1,1 +52,0,0,29,1,1,0,1,4 +52,0,0,28,0,1,1,1,4 +52,0,1,36,1,0,0,1,1 +52,0,1,23,1,1,0,0,7 +52,0,1,23,1,0,0,0,2 +52,0,0,24,1,1,0,1,4 +52,0,0,29,1,1,1,1,1 +52,0,0,26,1,1,1,1,2 +52,0,0,39,0,1,1,0,3 +52,0,1,20,1,1,0,1,1 +52,0,0,23,1,1,0,1,3 +52,0,1,21,1,1,0,1,2 +52,0,1,21,1,0,0,1,1 +7,1,1,20,0,0,0,1,2 +52,0,1,20,0,0,0,1,3 +52,0,1,27,1,1,0,1,2 +43,1,0,18,0,1,0,0,3 +46,1,1,25,1,1,0,0,1 +40,1,1,20,1,0,0,0,6 +52,0,1,20,1,1,0,0,5 +14,1,0,20,0,0,0,0,7 +52,0,0,24,0,1,1,0,11 +52,0,1,23,1,0,0,0,1 +8,1,0,28,1,1,0,0,4 +52,0,0,21,1,0,0,0,2 +52,0,0,25,1,0,0,0,1 +52,0,0,24,1,1,0,1,1 +52,0,0,29,1,1,1,0,3 +52,0,0,22,1,1,1,1,2 +25,1,0,28,1,0,0,1,18 +52,0,0,19,1,0,0,1,1 +52,0,0,20,1,1,0,1,1 +17,1,0,20,1,0,0,1,5 +37,1,1,22,1,1,0,1,1 +52,0,0,20,1,0,0,1,8 +52,0,1,21,1,0,0,1,2 +52,0,1,21,1,1,0,1,1 +32,1,0,19,1,0,0,1,3 +52,0,0,26,1,1,0,1,1 +52,0,0,23,1,1,1,1,2 +52,0,1,22,0,1,0,1,4 +52,0,1,24,1,1,0,0,8 +52,0,1,40,1,0,0,0,5 +52,0,1,32,1,0,0,0,2 +52,0,0,38,1,1,0,0,0 +52,0,0,26,1,1,0,1,1 +12,1,1,27,1,1,0,1,0 +52,0,0,29,1,1,1,1,3 +18,1,0,20,1,1,0,1,4 +52,0,0,22,1,0,0,0,1 +52,0,0,22,0,0,0,0,5 +14,1,1,19,1,1,0,0,12 +52,0,0,22,1,1,0,0,1 +52,0,0,19,1,0,0,0,3 +52,0,1,32,1,1,0,0,1 +52,0,1,25,1,1,0,1,2 +38,1,0,21,1,0,0,1,2 +52,0,1,36,1,1,0,1,1 +24,1,0,40,1,1,0,0,2 +20,1,1,20,1,0,0,1,1 +32,1,1,19,1,0,0,1,0 +52,0,0,18,1,0,0,1,4 +52,0,1,28,1,1,0,0,0 +52,0,1,22,1,1,0,0,2 +52,0,1,25,1,0,0,1,1 +52,0,1,28,1,1,0,0,2 +52,0,1,25,1,1,0,0,2 +52,0,1,20,1,1,0,0,4 +52,0,1,24,1,0,0,0,5 +52,0,0,24,1,1,0,0,0 +52,0,1,36,0,1,0,1,2 +52,0,1,34,1,1,0,0,1 +31,1,0,19,1,1,0,1,5 +20,1,1,23,1,0,0,1,1 +40,1,0,19,1,1,0,1,3 +52,0,1,40,1,1,0,0,2 +52,0,1,31,1,1,0,0,2 +52,0,0,23,1,1,1,1,0 +52,0,0,42,1,0,0,1,2 +42,1,1,26,1,1,1,1,1 +52,0,0,20,1,0,0,1,9 +26,1,0,27,1,1,0,1,1 +52,0,1,24,1,0,0,0,5 +52,0,0,25,1,0,0,0,2 +52,0,1,22,1,1,0,1,3 +52,0,1,20,1,0,0,1,2 +52,0,1,20,1,1,0,1,2 +47,1,0,22,1,0,0,1,3 +52,0,0,18,1,1,0,1,1 +52,0,0,20,1,1,0,1,2 +40,1,0,20,1,1,0,1,1 +52,0,0,22,1,1,0,1,2 +52,0,1,30,1,1,1,0,2 +52,0,0,36,0,1,0,0,1 +52,0,0,25,0,1,1,1,5 +21,1,0,29,1,0,0,1,3 +52,0,0,19,1,1,0,1,3 +52,0,1,24,1,1,0,1,2 +52,0,1,21,1,0,0,0,0 +52,0,1,35,1,1,0,1,6 +52,0,1,19,0,1,0,0,4 +1,1,0,20,1,0,0,0,0 +43,1,0,22,0,0,0,0,3 +24,1,0,23,1,1,0,0,1 +11,1,0,19,1,0,0,0,18 +52,0,0,18,1,0,0,1,3 +52,0,1,38,0,1,0,1,2 +52,0,1,18,0,0,0,1,6 +52,0,0,22,1,1,1,1,1 +33,1,0,21,1,0,0,1,3 +52,0,0,21,1,1,0,1,1 +46,1,1,21,1,0,0,1,5 +36,1,1,17,1,0,0,1,3 +52,0,1,22,1,1,0,1,1 +52,0,1,23,1,1,1,1,0 +18,1,1,19,1,0,0,1,4 +52,0,1,21,1,1,0,0,1 +52,0,1,35,1,1,0,0,5 +50,1,0,23,1,1,0,0,8 +52,0,1,22,1,0,0,0,2 +34,1,1,25,1,0,0,0,11 +52,0,1,20,1,1,0,0,4 +35,1,1,19,0,0,0,0,1 +52,0,0,20,1,0,0,0,1 +52,0,1,41,0,1,1,1,3 +39,1,0,23,0,1,0,1,4 +9,1,1,26,1,1,0,0,0 +52,0,0,26,1,0,0,0,2 +52,0,1,38,1,1,0,1,1 +52,0,0,27,1,1,0,1,1 +34,1,1,19,1,0,0,1,3 +52,0,0,25,1,1,0,0,1 +52,0,1,30,1,1,0,0,2 +52,0,1,42,1,1,0,0,1 +44,1,0,20,1,1,0,1,2 +52,0,1,23,1,1,0,1,1 +52,0,0,21,1,0,0,1,3 +35,1,1,20,1,1,0,0,3 +30,1,0,17,1,0,0,0,1 +39,1,1,26,1,0,1,0,5 +52,0,1,24,1,1,0,1,1 +52,0,0,37,1,1,1,1,1 +52,0,0,28,1,1,1,1,1 +52,0,0,33,1,1,0,1,0 +19,1,1,22,1,0,0,1,4 +52,0,0,25,1,1,1,1,2 +43,1,0,20,0,0,1,0,10 +52,0,0,20,1,0,0,0,1 +48,1,1,24,0,1,0,0,4 +37,1,1,26,0,0,0,0,11 +20,1,1,26,1,1,0,1,1 +52,0,0,25,0,1,0,1,1 +52,0,0,26,1,1,0,1,1 +36,1,1,23,1,0,0,0,3 +52,0,1,28,1,0,0,1,4 +52,0,0,27,1,1,0,1,0 +52,0,1,23,1,0,0,0,3 +52,0,0,17,1,0,0,1,7 +52,0,0,20,0,0,0,1,4 +52,0,1,20,1,0,0,1,5 +52,0,1,20,0,0,0,1,9 +30,1,1,22,1,1,0,1,2 +52,0,0,31,1,0,0,1,1 +52,0,0,43,1,1,0,0,1 +52,0,0,29,1,1,0,0,1 +52,0,1,21,1,0,0,0,0 +52,0,0,24,0,1,0,0,2 +52,0,1,30,1,1,1,0,3 +52,0,0,22,1,1,0,0,0 +52,0,1,26,1,1,1,0,1 +42,1,1,20,1,1,0,0,0 +52,0,0,23,1,1,0,0,6 +52,0,0,25,1,1,0,1,5 +52,0,1,40,1,1,0,1,2 +52,0,1,30,1,1,1,1,0 +26,1,0,22,1,0,1,1,2 +40,1,0,18,1,0,0,1,2 +52,0,0,18,1,0,0,1,0 +52,0,0,24,1,1,0,1,2 +52,0,1,25,1,1,1,1,2 +35,1,1,19,1,0,0,1,2 +52,0,0,24,1,1,0,1,2 +46,1,0,24,1,0,1,1,2 +52,0,0,18,1,1,0,1,3 +49,1,1,18,1,1,0,1,0 +52,0,0,23,1,1,0,0,0 +52,0,0,20,1,0,0,1,2 +49,1,1,18,1,1,0,1,1 +52,0,0,23,1,1,0,1,2 +52,0,1,20,1,0,0,1,1 +52,0,0,23,1,0,0,0,5 +52,0,0,23,1,1,0,1,1 +52,0,0,23,1,1,1,1,2 +35,1,0,20,1,1,0,1,4 +52,0,1,26,1,1,1,0,4 +52,0,1,30,1,0,0,0,1 +52,0,1,36,0,1,0,0,4 +52,0,1,43,1,1,0,0,4 +27,1,0,20,0,1,0,0,1 +52,0,1,24,1,1,0,1,1 +52,0,0,22,1,1,0,0,1 +52,0,1,20,1,0,1,0,1 +52,1,0,21,1,0,0,0,0 +45,1,1,18,1,0,0,0,5 +4,1,0,18,1,1,0,0,1 +52,1,0,33,1,1,0,1,2 +36,1,1,19,1,0,0,1,2 +52,0,1,21,0,1,0,1,1 +52,0,1,21,1,0,0,1,1 +8,1,1,21,1,1,0,1,4 +15,1,1,22,1,0,0,1,3 +52,0,0,18,1,0,0,1,3 +19,1,0,18,1,0,0,0,2 +52,0,0,24,1,1,0,1,2 +12,1,1,22,1,1,1,1,2 +52,0,1,31,0,1,0,1,3 +52,0,0,20,1,0,0,1,1 +52,0,1,20,1,1,1,1,1 +52,0,0,29,1,1,0,1,3 +52,0,1,24,1,1,0,1,1 diff --git a/docs/examples/example_survival.ipynb b/docs/examples/example_survival.ipynb new file mode 100644 index 00000000..436d9b38 --- /dev/null +++ b/docs/examples/example_survival.ipynb @@ -0,0 +1,266 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Estimating CATEs for survival analysis\n", + "\n", + "[Survival analysis](https://en.wikipedia.org/wiki/Survival_analysis), which primarily deals with time-to-event data, often manifests itself in crucial areas such as healthcare (e.g., patient survival times), social sciences, and engineering.\n", + "In the following example, we will demonstrate the use of our `metalearners` library in survival analysis to estimate {term}`CATEs`.\n", + "\n", + "## Loading the data\n", + "\n", + "First we will load the data. For this example we will use a dataset from [Rossi et al. - Money, Work and Crime (1980)](https://gwern.net/doc/sociology/1980-rossi-moneyworkandcrime.pdf). The data describes 432 convicts who were released from Maryland state prisons in the 1970s and who were observed for one year after release. Half the released convicts were assigned at random to an experimental treatment in which they were given financial aid; half did not receive aid." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from git_root import git_root\n", + "\n", + "rossi = pd.read_csv(git_root(\"data/rossi.csv\"))\n", + "rossi.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we will create the ``X``, ``y`` and ``w`` variables necessary for training our MetaLearner. In this dataset we have 6 feature columns but we will also add a column ``\"censored\"`` to ``X`` which indicates if the observation was censored (meaning that the event did not occur before a time limit -- one year in this case)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "feature_columns = [\"age\", \"race\", \"wexp\", \"mar\", \"paro\", \"prio\"]\n", + "X = rossi[feature_columns].copy(deep=True)\n", + "X[\"censored\"] = 1 - rossi[\"arrest\"]\n", + "for c in [\"race\", \"wexp\", \"mar\", \"paro\", \"censored\"]:\n", + " X[c] = X[c].astype(\"category\")\n", + "\n", + "y = rossi[\"week\"]\n", + "w = rossi[\"fin\"]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating the base models\n", + "\n", + "Some survival models face two primary challenges:\n", + "\n", + "* **Time to event prediction:** Certain models, particularly those relying on the [Cox Proportional Hazards Model](https://en.wikipedia.org/wiki/Proportional_hazards_model), may not directly provide the time to event prediction. Instead, they yield hazard proportions; however, the desired output is the more useful and direct measure of time to the event.\n", + "\n", + "* **Censoring Support:** Survival analysis involves dealing with censored data, where the outcome variable ``y`` may not always be a singular real number for each observation and could be an interval instead.\n", + "\n", + "\n", + "To address these issues, we need to construct a model to act as the nuisance model. Here's how we can address the associated problems:\n", + "\n", + "* **Time to event prediction:** The principle to remember is that this nuisance model, when invoking the ``predict`` method, must return a time to event prediction for each observation. In this case, we will employ [``xgboost`` with Accelerated Failure Time](https://xgboost.readthedocs.io/en/stable/tutorials/aft_survival_analysis.html), since its output is inherently the time to event. However, other models may necessitate integration over the survival function or require other transformations to get expected survival time predictions.\n", + "\n", + "* **Censoring Support:** For handling this issue, we keep ``y`` as is. If the event was observed, the value represents when it occurred, and if not observed, it is the censoring time. We then augment the ``X`` dataset with an extra column (which won't be passed to the model), labeled ``\"censored\"``, indicating whether the observation was censored or not. This column aids in constructing the upper and lower bounds for the output label from the model.\n", + "\n", + "\n", + "We suggest leveraging the base classes from ``sklearn`` to ensure that some essential methods needed for the MetaLearner are pre-defined and can be utilized effectively." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import xgboost as xgb\n", + "from sklearn.base import BaseEstimator, RegressorMixin, check_is_fitted\n", + "import numpy as np\n", + "\n", + "\n", + "class SurvivalModel(RegressorMixin, BaseEstimator):\n", + " def __init__(self, n_estimators=100, booster_params=None) -> None:\n", + " self.booster_params = booster_params\n", + " self.n_estimators = n_estimators\n", + "\n", + " def fit(self, X, y):\n", + " common_params = {\n", + " \"objective\": \"survival:aft\",\n", + " \"eval_metric\": \"aft-nloglik\",\n", + " \"aft_loss_distribution\": \"normal\",\n", + " \"aft_loss_distribution_scale\": 1.20,\n", + " }\n", + "\n", + " # X contains \"censored\" column\n", + " features = set(X.columns) - {\"censored\"}\n", + " dtrain = xgb.DMatrix(X[list(features)], enable_categorical=True)\n", + "\n", + " if (set(np.unique(X[\"censored\"])) - {0, 1}) != set():\n", + " raise ValueError(\"censored column should be binary.\")\n", + "\n", + " y_upper_bound = np.where(X[\"censored\"], +np.inf, y)\n", + " y_lower_bound = np.array(y)\n", + "\n", + " dtrain.set_float_info(\"label_lower_bound\", y_lower_bound)\n", + " dtrain.set_float_info(\"label_upper_bound\", y_upper_bound)\n", + "\n", + " if self.booster_params is None:\n", + " booster_params = common_params\n", + " else:\n", + " booster_params = common_params | self.booster_params\n", + "\n", + " self.bst_ = xgb.train(booster_params, dtrain, num_boost_round=self.n_estimators)\n", + " return self\n", + "\n", + " def predict(self, X):\n", + " # Check if fit has been called\n", + " check_is_fitted(self)\n", + " # X contains \"censored\" column\n", + " features = set(X.columns) - {\"censored\"}\n", + " if (set(np.unique(X[\"censored\"])) - {0, 1}) != set():\n", + " raise ValueError(\"censored column should be binary.\")\n", + " dtest = xgb.DMatrix(X[list(features)], enable_categorical=True)\n", + " return self.bst_.predict(dtest)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Calculating the censoring weights\n", + "As suggested in section 3 of [Bang et al. (2000)](https://www.jstor.org/stable/2673467)\n", + "and in section 3.3.1 of [Xu et al. (2022)](https://arxiv.org/pdf/2207.07758), we need to weight\n", + "the observations in the treatment models by their censoring weights. We can do this using\n", + "the following function which estimates them with a Kaplan-Meier estimator." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from lifelines import KaplanMeierFitter\n", + "\n", + "\n", + "def estimate_ipcw_km(outcome, censored, clip=0.95):\n", + " \"\"\"\n", + " Estimate Inverse Probability of Censoring Weights (IPCW) by nonparametric Kaplan-Meier method\n", + " (which is valid in case of noninformative censoring)\n", + " \"\"\"\n", + " censoring_surv_func = KaplanMeierFitter().fit(outcome, censored)\n", + "\n", + " prob_censoring_weight = censoring_surv_func.survival_function_.loc[\n", + " outcome\n", + " ].squeeze()\n", + "\n", + " inverse_prob_censoring_weight = 1 / prob_censoring_weight\n", + " inverse_prob_censoring_weight = pd.Series(\n", + " index=outcome.index, data=inverse_prob_censoring_weight.values\n", + " )\n", + " # We only want to use complete observations, therefore we give a weight of 0 to censored observations\n", + " inverse_prob_censoring_weight[censored.astype(bool)] = 0\n", + "\n", + " # We clip the weights to a percentile to avoid exploding weights\n", + " clip_quantile = inverse_prob_censoring_weight.quantile(clip)\n", + " inverse_prob_censoring_weight = inverse_prob_censoring_weight.clip(0, clip_quantile)\n", + "\n", + " return inverse_prob_censoring_weight\n", + "\n", + "\n", + "treatment_sample_weight = estimate_ipcw_km(y, X[\"censored\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fitting the MetaLearner\n", + "\n", + "Finally we can instantiate any MetaLearner with the ``SurvivalModel`` as the nuisance model and estimate the CATEs.\n", + "We note that we pass the sample weights only for the {class}`metalearners.DRLearner`, this is because the\n", + "{class}`metalearners.TLearner` does not have treatment models and the current implementation of the\n", + "{class}`metalearners.RLearner` does not allow for sample weights, if this feature is desired\n", + "please open a GitHub issue." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from lightgbm import LGBMClassifier, LGBMRegressor\n", + "from metalearners import TLearner, DRLearner, RLearner\n", + "from metalearners.utils import simplify_output\n", + "import matplotlib.pyplot as plt\n", + "\n", + "tlearner = TLearner(False, 2, SurvivalModel, nuisance_model_params={\"n_estimators\": 5})\n", + "tlearner.fit(X, y, w)\n", + "cate_estimates_tlearner = simplify_output(tlearner.predict(X, True))\n", + "\n", + "drlearner = DRLearner(\n", + " False,\n", + " 2,\n", + " nuisance_model_factory=SurvivalModel,\n", + " propensity_model_factory=LGBMClassifier,\n", + " treatment_model_factory=LGBMRegressor,\n", + " nuisance_model_params={\"n_estimators\": 5},\n", + " propensity_model_params={\"verbose\": -1, \"n_estimators\": 5},\n", + " treatment_model_params={\"verbose\": -1, \"n_estimators\": 5},\n", + ")\n", + "drlearner.fit(\n", + " X,\n", + " y,\n", + " w,\n", + " fit_params={\n", + " \"treatment\": {\"treatment_model\": {\"sample_weight\": treatment_sample_weight}}\n", + " },\n", + ")\n", + "cate_estimates_drlearner = simplify_output(drlearner.predict(X, True))\n", + "\n", + "rlearner = RLearner(\n", + " False,\n", + " 2,\n", + " nuisance_model_factory=SurvivalModel,\n", + " propensity_model_factory=LGBMClassifier,\n", + " treatment_model_factory=LGBMRegressor,\n", + " nuisance_model_params={\"n_estimators\": 5},\n", + " propensity_model_params={\"verbose\": -1, \"n_estimators\": 5},\n", + " treatment_model_params={\"verbose\": -1, \"n_estimators\": 5},\n", + ")\n", + "rlearner.fit(X, y, w)\n", + "cate_estimates_rlearner = simplify_output(rlearner.predict(X, True))\n", + "\n", + "bins = np.histogram(\n", + " np.hstack(\n", + " (cate_estimates_tlearner, cate_estimates_drlearner, cate_estimates_rlearner)\n", + " ),\n", + " bins=40,\n", + ")[1]\n", + "\n", + "plt.hist(cate_estimates_tlearner, bins=list(bins), alpha=0.5, label=\"TLearner\")\n", + "plt.hist(cate_estimates_drlearner, bins=list(bins), alpha=0.5, label=\"DRLearner\")\n", + "plt.hist(cate_estimates_rlearner, bins=list(bins), alpha=0.5, label=\"RLearner\")\n", + "plt.legend()\n", + "plt.xlabel(\"CATE estimate (weeks)\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of CATE estimates\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/examples/index.rst b/docs/examples/index.rst index d825a999..69c0736f 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -12,3 +12,4 @@ Examples Model selection with optuna Tuning hyperparameters of a MetaLearner with MetaLearnerGridSearch Generating data + Estimating CATEs for survival analysis diff --git a/pixi.lock b/pixi.lock index e8123682..63a6f428 100644 --- a/pixi.lock +++ b/pixi.lock @@ -521,6 +521,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda @@ -556,6 +558,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py312h9a8786e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py312h1d6d2e6_0.conda @@ -626,6 +629,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.12h1e70e7f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda @@ -746,6 +750,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda @@ -781,6 +787,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py312hbd25219_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py312hb4e7841_0.conda @@ -845,6 +852,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.12h1b86e91_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -964,6 +972,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda @@ -999,6 +1009,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py312h7e5086c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py312h05321c7_0.conda @@ -1063,6 +1074,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.12h6963653_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -1182,6 +1194,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda @@ -1216,6 +1230,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py312h72972c8_0.conda @@ -1273,6 +1288,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.12h06f1873_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -1406,6 +1422,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda @@ -1440,6 +1458,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py312h9a8786e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py312h1d6d2e6_0.conda @@ -1510,6 +1529,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.12h1e70e7f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda @@ -1629,6 +1649,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda @@ -1663,6 +1685,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py312hbd25219_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py312hb4e7841_0.conda @@ -1727,6 +1750,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.12h1b86e91_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -1845,6 +1869,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda @@ -1879,6 +1905,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py312h7e5086c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py312h05321c7_0.conda @@ -1943,6 +1970,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.12h6963653_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -2061,6 +2089,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda @@ -2094,6 +2124,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py312h72972c8_0.conda @@ -2151,6 +2182,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.12h06f1873_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -2284,6 +2316,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda @@ -2323,6 +2357,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py312h9a8786e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py312h1d6d2e6_0.conda @@ -2399,6 +2434,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.12h1e70e7f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda @@ -2544,6 +2580,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda @@ -2583,6 +2621,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py312hbd25219_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py312hb4e7841_0.conda @@ -2653,6 +2692,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.12h1b86e91_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -2797,6 +2837,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda @@ -2836,6 +2878,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py312h7e5086c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py312h05321c7_0.conda @@ -2906,6 +2949,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.12h6963653_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -3050,6 +3094,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.14.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda @@ -3088,6 +3134,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py312h72972c8_0.conda @@ -3151,6 +3198,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.12h06f1873_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -3572,6 +3620,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda @@ -3606,6 +3656,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py310hc51659f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py310hf9f9076_0.conda @@ -3675,6 +3726,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.10h255c789_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py310h4c7c693_0.conda @@ -3795,6 +3847,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda @@ -3829,6 +3883,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py310h936d840_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py310hee4099c_0.conda @@ -3892,6 +3947,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.10h9c95325_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -4011,6 +4067,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda @@ -4045,6 +4103,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py310ha6dd24b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py310h269019d_0.conda @@ -4108,6 +4167,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.10he8083a7_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -4227,6 +4287,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda @@ -4260,6 +4322,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py310ha8f682b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py310hb4db72f_0.conda @@ -4316,6 +4379,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.10h0fe542f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -4449,6 +4513,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda @@ -4483,6 +4549,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py311h331c9d8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py311h14de704_0.conda @@ -4553,6 +4620,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.11h2f90fb9_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py311hbde99c3_0.conda @@ -4672,6 +4740,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda @@ -4706,6 +4776,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py311h72ae277_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py311heaf2733_0.conda @@ -4770,6 +4841,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.11h978d779_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -4888,6 +4960,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda @@ -4922,6 +4996,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py311hd3f4193_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py311he5b872b_0.conda @@ -4986,6 +5061,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.11hea6280c_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -5104,6 +5180,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda @@ -5137,6 +5215,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py311he736701_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py311hcf9f919_0.conda @@ -5194,6 +5273,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.11h57d7d38_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -5326,6 +5406,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.6-hef167b5_0.conda @@ -5360,6 +5442,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.53.0-py312h9a8786e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.2-hd590300_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/glum-3.0.2-py312h1d6d2e6_0.conda @@ -5430,6 +5513,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libxgboost-2.0.3-cpu_h7afb2cf_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lightgbm-4.4.0-cpu_py3.12h1e70e7f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.43.0-py312h9c5d478_0.conda @@ -5549,6 +5633,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/blosc-1.21.6-h7d75f6d_0.conda @@ -5583,6 +5669,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.53.0-py312hbd25219_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/giflib-5.2.2-h10d778d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/glum-3.0.2-py312hb4e7841_0.conda @@ -5647,6 +5734,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libxgboost-2.0.3-cpu_h7ae7b8f_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-h87427d6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzopfli-1.0.3-h046ec9c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lightgbm-4.4.0-cpu_py3.12h1b86e91_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-18.1.8-h15ab845_0.conda @@ -5765,6 +5853,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/blosc-1.21.6-h5499902_0.conda @@ -5799,6 +5889,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.53.0-py312h7e5086c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/giflib-5.2.2-h93a5062_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glum-3.0.2-py312h05321c7_0.conda @@ -5863,6 +5954,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxgboost-2.0.3-cpu_h00043fc_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzopfli-1.0.3-h9f76cd9_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lightgbm-4.4.0-cpu_py3.12h6963653_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_0.conda @@ -5981,6 +6073,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/astor-0.8.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-2.4.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-23.2.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.12.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/blosc-1.21.6-h85f69ea_0.conda @@ -6014,6 +6108,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.53.0-py312h4389bb4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/formulaic-1.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/giflib-5.2.2-h64bf75a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/git_root-0.1-py_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/win-64/glum-3.0.2-py312h72972c8_0.conda @@ -6071,6 +6166,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/libxgboost-2.0.3-cpu_hb3f76d0_4.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzopfli-1.0.3-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lightgbm-4.4.0-cpu_py3.12h06f1873_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lime-0.2.0.1-pyhd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/llvm-meta-5.0.0-0.tar.bz2 @@ -6498,6 +6594,41 @@ packages: license_family: MIT size: 54582 timestamp: 1704011393776 +- kind: conda + name: autograd + version: 1.6.2 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/autograd-1.6.2-pyhd8ed1ab_0.conda + sha256: 0fb5a586d087731da42a1ef3983b4ba0099a38ecf390fc7447be9312ee09f209 + md5: 527d21c565d4ca7a5cb7eb21932c2c7a + depends: + - future >=0.15.2 + - numpy >=1.10 + - python >=3.6 + - scipy >=0.17 + license: MIT + license_family: MIT + size: 45009 + timestamp: 1687792839793 +- kind: conda + name: autograd-gamma + version: 0.5.0 + build: pyh9f0ad1d_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/autograd-gamma-0.5.0-pyh9f0ad1d_0.tar.bz2 + sha256: ee6384ca35889fbc2a877ae7140eb90ca66980310640027eb39185ffa84f92bd + md5: 1d2f3cd0881ead2f033ec5a9d567c6f0 + depends: + - autograd >=1.2.0 + - python + - scipy >=1.2.0 + license: MIT + license_family: MIT + size: 7767 + timestamp: 1602812490828 - kind: conda name: babel version: 2.14.0 @@ -15587,6 +15718,29 @@ packages: license_family: Apache size: 147901 timestamp: 1607309166373 +- kind: conda + name: lifelines + version: 0.29.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/lifelines-0.29.0-pyhd8ed1ab_0.conda + sha256: aa9c6842d3fab413f6b0b20c0642fbc6ea5d1c8b80492ba18c48cea004ab91ea + md5: 47dd148cbfa64ddad3b6e2ec1f7e6e79 + depends: + - autograd >=1.5 + - autograd-gamma >=0.3 + - formulaic >=0.2.2 + - matplotlib-base >=3.0 + - numpy >=1.14.0,<2.0 + - pandas >=2.1.0 + - python >=3.9 + - scipy >=1.7 + - setuptools + license: MIT + license_family: MIT + size: 267199 + timestamp: 1719504131567 - kind: conda name: lightgbm version: 4.4.0 diff --git a/pixi.toml b/pixi.toml index a43dc3a4..a23b176f 100644 --- a/pixi.toml +++ b/pixi.toml @@ -33,6 +33,7 @@ glum = "*" shap = "*" matplotlib-base = "*" joblib = ">=1.2.0" +lifelines = "*" [feature.lint.dependencies] pre-commit = "*"