应用实操 | 数据科学全流程 Github 仓库汇总

文摘   其他   2024-01-27 21:28   日本  

0 前言

两年前,公众号曾经发布了一篇数据科学资源整合的文章《关于数据科学的一些资源(Python)》,相比于前一版,这版会更加关注概率统计模型以及相关的自动化机器学习的相关技术。

在整理过程中将现已失效或未维护四年以上的仓库进行剔除,并在文末存放了参考文献,方便对各个资源进行更进一步了解

一级目录二级目录
数据生成
特征工程

探索性分析

缺失值填补

特征衍生

特征选择

异常检测

不均衡处理
模型搜索
参数优化
模型解释
照例,给出一些有意思的仓库列表,它们是各自领域的汇总整理。

名称地址说明
awesome-AutoMLhttps://github.com/windmaple/awesome-AutoML整理 AutoML 相关研究、工具、项目和其他资源的列表
awesome-AutoML-and-Lightweight-Modelshttps://github.com/guan-yuan/awesome-AutoML-and-Lightweight-Models高质量(最新)AutoML成果和轻量级模型列表
awesome-imbalanced-learninghttps://github.com/ZhiningLiu1998/awesome-imbalanced-learning类别不平衡/长尾学习的一切:论文、代码、框架与库
Awesome Learning with Label Noisehttps://github.com/subeeshvasu/Awesome-Learning-with-Label-Noise使用噪声标签学习的精选资源列表。
Awesome Time Series Anomaly Detectionhttps://github.com/rob-med/awesome-TS-anomaly-detection用于时间序列数据异常检测的工具和数据集列表。
Awesome Causalityhttps://github.com/rguo12/awesome-causality-algorithms用数据学习因果关系的算法列表。

1 数据生成

名称地址说明
timeseries-generatorhttps://github.com/Nike-Inc/timeseries-generator通过易于使用的因子和生成器生成合成时间序列数据的库
DeepEchohttps://github.com/sdv-dev/DeepEcho混合类型、多元时间序列的合成数据生成
SDVhttps://github.com/sdv-dev/SDV表格数据的综合数据生成
ydata-synthetichttps://github.com/ydataai/ydata-synthetic用于表格和时间序列数据的综合数据生成器
time_series_simulatorhttps://github.com/IPavlak/time_series_simulator主要目的是可视化和模拟股票价格(K线),但可以针对任何时间序列进行修改
GAN-for-tabular-datahttps://github.com/Diyago/GAN-for-tabular-data关于 GAN 于表格的实际应用
pickahttps://github.com/antlong/picka基于Python的数据生成和随机化模块
fakerhttps://github.com/joke2k/faker一个为你生成假数据的 Python 包

2 特征工程

2.1 探索性分析

名称地址说明
dtalehttps://github.com/man-group/dtalepandas 数据结构的可视化工具
ydata-profilinghttps://github.com/ydataai/ydata-profilingPandas 和 Spark DataFrames 的 1 行代码数据质量分析和探索性数据分析
sweetvizhttps://github.com/fbdesignpro/sweetviz使用一行代码即可可视化并比较数据集、目标值和关联
AutoVizhttps://github.com/AutoViML/AutoViz使用一行代码自动可视化任何大小的任何数据集
Rathhttps://github.com/Kanaries/Rath下一代自动化数据探索性分析和可视化平台
luxhttps://github.com/lux-org/lux通过一次打印自动可视化您的 pandas 数据框!
dataprephttps://github.com/sfu-db/datapreppython 中的开源低代码数据处理库
KLibhttps://github.com/akanz1/klib易于使用的自定义函数 Python 库,用于清理和分析数据
dablhttps://github.com/dabl/dabl数据分析基础库
edavizhttps://github.com/tkrabel/edaviz用于在 Jupyter Notebook 或 Jupyter Lab 中进行探索性数据分析和可视化的 Python 库
PyGWalkerhttps://github.com/Kanaries/pygwalker将 pandas 数据框转变为交互式 UI 以进行可视化分析
missingnohttps://github.com/ResidentMario/missingno缺失值可视化检测

2.2 缺失值填补

名称地址说明
ycimputehttps://github.com/OpenIDEA-YunanUniversity/ycimpute基于机器学习的缺失值插补库。 它的实现missForest,简单版的MICE(R pacakge),knn,EM等......
MissForesthttps://github.com/yuenshingyan/MissForest说是最好的缺失值插补方法
pygmmishttps://github.com/pmelchior/pygmmis针对不完整(缺失或截断)和噪声数据的高斯混合模型
impyutehttps://github.com/eltonlaw/impyute用于预处理缺失数据的数据插补库
missingpyhttps://github.com/epsilon-machine/missingpy缺失填补的包

2.3 特征选择

名称地址说明
feature-selectorhttps://github.com/WillKoehrsen/feature-selector机器学习数据集降维工具
feature_selection_GAAlgorithmhttps://github.com/rogeroyer/feature_selection_GAAlgorithm基于遗传算法的特征选择

2.4 特征衍生

名称地址说明
featuretoolshttps://github.com/alteryx/featuretools/tree/main用于自动化特征工程的开源Python库
tsfreshhttps://github.com/blue-yonder/tsfresh从时间序列中自动提取相关特征
feature_enginehttps://github.com/feature-engine/feature_engine具有类似 sklearn 功能的特征工程包
tsfelhttps://github.com/fraunhoferportugal/tsfel用于从时间序列中提取特征的直观库
NitroFEhttps://github.com/NITRO-AI/NitroFE特征工程引擎,提供各种模块,旨在内部保存过去的依赖值以提供连续计算
EvolutionaryForesthttps://github.com/zhenlingcn/EvolutionaryForest基于遗传编程的自动化特征工程的开源python库
AutoXhttps://github.com/4paradigm/AutoXAutoX 是一款高效的 automl 工具,主要针对表格数据的数据挖掘比赛

2.5 异常检测

名称地址说明
tslumenhttps://github.com/hsbc/tslumen时间序列 EDA(探索性数据分析)库
pyodhttps://github.com/yzhao062/pyod用于异常值检测(异常检测)的全面且可扩展的 Python 库
dartshttps://github.com/unit8co/darts一个 Python 库,用于对时间序列进行用户友好的预测和异常检测
alibi-detecthttps://github.com/SeldonIO/alibi-detect异常值、对抗性和漂移检测算法
flow-forecasthttps://github.com/AIStream-Peelout/flow-forecast用于时间序列预测、分类和异常检测(最初用于洪水预测)的深度学习 PyTorch 库
surpriverhttps://github.com/tradytics/surpriver使用异常检测和机器学习在股价波动之前发现波动较大的股票
luminolhttps://github.com/linkedin/luminol异常检测和关系库
adtkhttps://github.com/arundo/adtk用于时间序列中基于规则/无监督异常检测的 Python 工具包
datastreamhttps://github.com/MentatInnovations/datastream.io使用 Python、ElasticSearch 和 Kibana 进行实时异常检测的开源框架
pygodhttps://github.com/pygod-team/pygod用于图的异常值检测(异常检测)的 Python 库
Hampelhttps://github.com/MichaelisTrofficus/hampel_filterHampel 过滤器的 Python 实现

2.6 不均衡处理

名称地址说明
imbalanced-learnhttps://github.com/scikit-learn-contrib/imbalanced-learn解决机器学习中数据集不平衡的问题
imbalanced-algorithmshttps://github.com/dialnd/imbalanced-algorithms用于学习不平衡数据的算法

3 模型搜索

名称地址说明
model_searchhttps://github.com/google/model_search一个实现 AutoML 算法以进行大规模模型架构搜索的框架
blobcityhttps://github.com/blobcity/autoai/tree/main基于 Python 的自动 AI 框架,用于对数值数据进行回归和分类。 执行模型搜索、超参数调整和高质量 Jupyter Notebook 代码生成
autofeathttps://github.com/cod3licious/autofeat具有自动特征工程和选择功能的线性预测模型
lazypredicthttps://github.com/shankarpandala/lazypredict无需太多代码即可帮助构建许多基本模型,并有助于了解哪些模型在无需任何参数调整的情况下效果更好
LightAutoMLhttps://github.com/sberbank-ai-lab/LightAutoML自动模型创建框架
AutoML_Alexhttps://github.com/Alex-Lekov/AutoML_Alex最先进的表格数据自动机器学习 python 库
pycarethttps://github.com/pycaret/pycaretPython 中的开源低代码机器学习库
Sketchhttps://github.com/approximatelabs/sketch理解数据内容的AI代码编写助手
tpothttps://github.com/EpistasisLab/tpot一种 Python 自动化机器学习工具,可使用遗传编程优化机器学习管道
auto_mlhttps://github.com/ClimbsRocks/auto_ml用于分析和生产的自动化机器学习
auto-sklearnhttps://github.com/automl/auto-sklearn使用 scikit-learn 进行自动化机器学习
mljarhttps://github.com/mljar/mljar-supervised自动化机器学习
AlphaPyhttps://github.com/ScottfreeLLC/AlphaPy使用 scikit-learn xgboost、LightGBM 等进行自动化机器学习
MLBoxhttps://github.com/AxeldeRomblay/MLBox一个强大的自动化机器学习Python库
FLAMLhttps://github.com/microsoft/FLAML用于 AutoML 和参数调优的快速库
Hypernetshttps://github.com/DataCanvasIO/Hypernets通用自动化机器学习框架,用于简化特定领域端到端 AutoML 工具包的开发
Cookahttps://github.com/DataCanvasIO/Cooka轻量级可视化 AutoML 系统
auptimizerhttps://github.com/LGE-ARC-AdvancedAI/auptimizer一种自动 ML 模型优化工具
evalmlhttps://github.com/alteryx/evalml用 python 编写的 AutoML 库

4 参数优化

名称地址说明
sklearnhttps://scikit-learn.org/stable/index.htmlGridSearchCV,RandomizedSearchCV
hyperopthttps://github.com/hyperopt/hyperopt超参数优化
optunahttps://github.com/pfnet/optuna超参数优化
dragonflyhttps://github.com/dragonfly/dragonfly可扩展贝叶斯优化
katibhttps://github.com/kubeflow/katib用于超参数调整的仓库
scikit-Opitimizehttps://github.com/scikit-optimize/scikit-optimize使用“scipy.optimize”接口进行基于序列模型的优化
BayesianOptimizationhttps://github.com/bayesian-optimization/BayesianOptimization高斯过程全局优化的 Python 实现
SMAC3https://github.com/automl/SMAC3用于超参数优化的多功能贝叶斯优化包
spearminthttps://github.com/JasperSnoek/spearmint执行贝叶斯优化的包
HpBandSterhttps://github.com/automl/HpBandSter分布式超参数优化

5 模型解释

名称地址说明
shaphttps://github.com/slundberg/shap解释任何机器学习模型输出的博弈论方法
limehttps://github.com/marcotcr/lime解释任何机器学习分类器的预测
eli5https://github.com/TeamHG-Memex/eli5检查机器学习分类器并解释它们的预测
lofo-importancehttps://github.com/aerdem4/lofo-importanceLeave One Feature Out Importance
pdpboxhttps://github.com/SauceCat/PDPbox部分依赖图工具箱
anchorhttps://github.com/marcotcr/anchor分类器的高精度模型无关解释
interpretmlhttps://github.com/interpretml/interpret拟合可解释模型,解释模型
shapashhttps://github.com/MAIF/shapash用户友好的可解释性和可解释性,可开发可靠且透明的机器学习模型
imodelshttps://github.com/csinva/imodels可解释的 ML 包,用于简洁、透明和准确的预测建模(与 sklearn 兼容)。
TrustScorehttps://github.com/google/TrustScore任何经过训练(可能是黑盒)分类器的不确定性度量,它比分类器自己的隐含置信度更有效
dtreevizhttps://github.com/parrt/dtreeviz用于决策树可视化和模型解释的 python 库。目前支持 scikit-learn、XGBoost、Spark MLlib 和 LightGBM 树
alibihttps://github.com/SeldonIO/alibi解释机器学习模型的算法
fairlearnhttps://github.com/fairlearn/fairlearn评估和提高机器学习模型的公平性
yellowbrickhttps://github.com/DistrictDataLabs/yellowbrick可视化分析和诊断工具促进机器学习模型选择
mlxtendhttps://github.com/rasbt/mlxtend用于 Python 数据分析和机器学习库的扩展和帮助模块库

6 参考文献

  1. 《区区几行Python代码,就能实现全面自动探索性数据分析!》:https://mp.weixin.qq.com/s/x-BLWUmd49UoyhBiNim49Q
  2. 《自动探索数据新秘器—Lux》:https://mp.weixin.qq.com/s/lbxfaevDzWrd6g5coBOgXA
  3. 《使用这些 Python 工具可视化地探索数据 | Linux 中国》:https://mp.weixin.qq.com/s/ryv2eHNykqfRPkVur-eKCg
  4. 《Feature-engine: 一个完备的特征工程Python库,实现端到端的特征流水线》:https://mp.weixin.qq.com/s/YXR3_wgK4pr0hBy3dtRBxg
  5. 《缺失值可视化Python工具库:missingno》:https://mp.weixin.qq.com/s/djyerwjGnYNAtz4-YpwRJA
  6. 《推荐10款优秀的Python异常检测开源库》:https://mp.weixin.qq.com/s/XIP5sy7f_2-t-1jKsxfZTA
  7. 《时间序列异常值检验神器——Hampel滤波器》:https://mp.weixin.qq.com/s/_BD9w59-1baR5JHEuyRKmw
  8. 《时间序列预测神器Prophet python实现》:https://mp.weixin.qq.com/s/dgWjk1LkszyieuQtHMaQQg
  9. 《python实战技能-04-tsfel-时序数据自动特征提取》:https://mp.weixin.qq.com/s/JKLS70lYi7FamO49C5qc6w
  10. 《python实战技能-02-tsfresh时序数据自动特征提取》:https://mp.weixin.qq.com/s/MWwYhD7oqpATXpNH5hm-xQ
  11. 《独家 | 用Python Featuretools库实现自动化特征工程(附链接)》:https://mp.weixin.qq.com/s/hfevCfAW1pMAhIilxdrWoA
  12. 《处理不平衡数据的十大Python库(附代码)》:https://mp.weixin.qq.com/s/iDrKTyV602OxR9lGbM0Zfg
  13. 《全面总结机器学习超参数调优(附代码)》:https://mp.weixin.qq.com/s/VzDDSBKT6SjhDoH4FvKkKw
  14. 《机器学习模型可解释性的6种Python工具包,总有一款适合你!》:https://mp.weixin.qq.com/s/vLOC9WWEZOeZhmCLbnzrAA
  15. 《模型解释——特征重要性、LIME与SHAP》:https://mp.weixin.qq.com/s/ytyUjlkq92fQ5u5TwLTOIw
  16. 《10个用于可解释AI的Python库整理分享》:https://mp.weixin.qq.com/s/p5uwcK-0ms7TfZHg0LrDww
  17. 《你需要知道的17个顶级MLOps工具》:https://mp.weixin.qq.com/s/mojJYeyI5O_rX6i9igQmMA


知守溪的收纳屋
存放觉得有用的文章。关键词:金融量化、因子选择、因果推断、可解释性、人工智能
 最新文章