TG Telegram Group Link
Channel: Data Science Archive
Back to Bottom
最近针对时间序列拆解重新理解的时候发现对 additive model 理解仍然有一些偏差。发现通用解法中用b-样条基函数的有点绕,终于在看了pyGAM这个包的源码和文档中完全搞懂,不过平滑约束的程度很难有点难顶就是了。https://github.com/dswah/pyGAM
最近在做简单地离线 demo 的时候开始使用 https://streamlit.io ,在这之前我大概用了一两年的 Dash,就目前的感觉比 Dash 的准备时间少了不止一半。在 2022 年,我想如果不出意外的话,有交互的将会锁定使用 streamlit.io,静态的使用 http://datapane.com
AlibiExplain 应该是这几年看到的在机器学习模型可解释性上做得最系统的工具,堪称知识库型文档,毕竟不能只了解一点 SHAP。https://docs.seldon.io/projects/alibi/en/latest/index.html
Deepchecks 是目前我发现关于模型的离线检查和生产环境监控最好的工具,尤其是项目给出的 Suite 和 Condition 的概念。目前只能在 notebook 里面用,暂时还不支持 HTML 或者 pdf。项目很新,值得关注。https://github.com/deepchecks/deepchecks
FB 最近的 ConvNeXt 看起来满强的,实验结果能打 ViT/SwinTransfomer,纯ConvNet 结构,在 MLP-Mixer 之后我越来越觉得在经历一段军备竞赛之后终于回到似乎是回到对结构探索的正确道路上。从算力有限时代的 MLP 到快速又符合直觉的ConvNet滤波计算,出现瓶颈并拥有更多的算力后再去看曾经的结构总是有不一样的启发。不知道下一次能看到像 ResNet 一样留下普世启发的结构是什么时候。https://github.com/facebookresearch/ConvNeXt
推荐一篇博客,作者介绍在 DS 项目中写测试。毕竟 ML 的项目测试起来和传统的程序不是太一样,除了最基础的 assert, pytest 这些之外对数据的分布和数据一些统计指标也需要做测试。文中提到的几个工具 HypothesisPandera 我都是用过的,Pandera 很好用,也可以原生集成给 Pandas/Koalas(Koalas 也是我配合 PySpark 最常用的 DataFrame 工具)。https://www.peterbaumgartner.com/blog/testing-for-data-science/
单纯的 Boruta 判断特征的时候会依照二项分布的接受或者拒绝来判定对前面生成的影子特征进行筛选。所以如果把 Boruta 的第二阶段(特征metric排序以及筛选)单独拿出来,其实是可以用别的方案进行替换的,比如 SHAP(这里的引用来源也是我之前推荐的一本电子书《interpretable-ML》,强烈推荐)。也确实有轮子在做这样的事情,我自己找了一个 Kaggle 上的 Tabular Dataset 试了一下独立工作效果不太明显,不过提供另外一种特征筛选的方法来做 ensemble 应该是有提升的(吧)。轮子在这里:BorutaShap https://github.com/Ekeany/Boruta-Shap
Forwarded from Data Science Archive (小熊猫)
说到特征降维/选择的问题,大部分EDA的套路都是从model训练的loss来判断feature importance。其实有一个简单易行而且很有效的办法是在CV里面用做feature permutation,对原始特征shuffle得到shadow(也可以加一些噪音),在通过zscore比较两者差异来判断importance,不断遍历筛选。在ESLII中593页有提到这个办法。R里面有一个包Boruta可以做这件事,py也有:https://github.com/scikit-learn-contrib/boruta_py
MAPIE:https://github.com/scikit-learn-contrib/MAPIE, NIPS 2020 spotlight有一篇讨论预测边界/区间的 文章,蛮有意思的,当年作者原来的实现也被系统集成进了新的轮子里面,值得一玩。理论偏多,我非常建议读读文章,对 jackknife+, CV+, predictive inference, 不确定性估计不太了解的可以在这个 repo 里面随便翻一些文章做些背景了解。
今天读到一篇不错的文章,讨论了 IBM FreaAI 的一些分析过程,前面还有两篇概要也可以一起读。文章着重对树模型划分出来的各个小区间做评估,找到隐患最大的地方。大体的流程上是对原始特征做直方图,随后到 PDF,再不断便利 Y 轴找到既定的 metric 剧烈变化的地方。可以配合树模型自己算出来的信息熵一起用。这个技巧不是太常见,我只在两年前某一次 Kaggle 竞赛中遇到,举办方弄了一些诡异的合成数据…… https://towardsdatascience.com/how-to-find-weaknesses-in-your-machine-learning-models-3bcce3c7d71e
分享一篇很有趣的 文章。用梯度提升的方法来改进 ARIMA,AutoARIMA 先拿到起始参数,Boosting 过程和普通 GBM 一样都是用残差代替梯度计算。角度倒是听新颖的, 就是听着可能速度有点慢,而且不能确定序列角度来说 Boosting 是否真的有意义,作者在 Kaggle 去年的 M4 上做了些实验,看着还行,有点意思。轮子在这里:https://github.com/tblume1992/ThymeBoost
今天收拾东西返乡,祝大家春节愉快!
分享一篇介绍 Data Leak 的文章,说起 data leak 我早期是真的深受其害,毕竟真实世界的线上业务永远有一个特别的维度:时间。理论上完全服从独立同分布业务数据/问题并不多,所以很多时候我们是直接把时间维度忽略掉。若干年前参加过知乎的一次给短文本预测 tag 的竞赛最后也是因为当时原始数据存在一些 data leak(知乎作为举办方提供数据的时候把时间轴抹掉,但是数据本身又其实是时间排序的),最后的排名引起挺大的争议。对于 data leak 系统地考虑是线上数据科学工作非常重要的一环。https://towardsdatascience.com/data-science-mistakes-to-avoid-data-leakage-e447f88aae1c
今天看了一篇介绍屏障法的文章,图文并茂,还有真代码一行一行解有约束的含有不等式的最优化问题。虽然标题有内点法,但是没有提内点法中的原始对偶方法。其实这两个方法都是在面对 KKT 条件的时候的思考,不过对对偶变量的处理看待角度不同,朴素的求解都是用牛顿法。如果你对普通的等式约束,KKT 条件,拉格朗日方法有了解的,这篇文章读起来就更容易了。https://towardsdatascience.com/how-to-solve-constrained-optimization-problem-the-interior-point-methods-1733095f9eb5
之前推过一篇 Facebook 的 ConvNeXT,今天又看到一个上个星期新出来的 XFormer,直接把二次的 attention 换成了线性 attention,也是在 ViTs 的基础上想办法减少资源使用。没看到什么别的新奇的地方。主要就是减少 GPU 使用,对数据量要求也低了不少,我没做实验。https://arxiv.org/abs/2201.10271,作者给了代码:https://github.com/pranavphoenix/cxv
一个新的分子式推算生成工具,FastFlows。从名字也可以看出来基本上就是用了 NF,从功能的角度来说和 VAE,GAN 什么的区别并不大,不过NF 的目标换成了去寻找一个和数据集后验分布一样的分布,也可以计算似然,用双射映射的一系列操作把原始分布弄成新的分布,经典案例就是对高斯分布作各种花里胡哨的转换。我个人对 NF 没有太多特别的感觉,这个框架感觉也只是用了 NF 做一个实验,没看出来有什么量化效果比 VAE 或者 GAN更好。
不过这个 repo 挺牛逼的,都是化学,生物,和材料领域一些深度学习的应用,tutorial 挺全的。 https://github.com/deepchem/deepchem/
来自 Google的一个图像数据生成器,用自带的基础构建元素加上 blender 做渲染生成别的图,任务类型基本都是涵盖了,对于内嵌的这些元素我觉得还是有点少,如果有社区(GitHub 或者 Blender)贡献应该前途光明。有时候数据采集不是问题,合规是大问题。
https://github.com/google-research/kubric
HTML Embed Code:
2024/04/16 14:55:02
Back to Top