Project Icon

scikit-lego

为scikit-learn提供自定义扩展的开源库

scikit-lego是一个开源Python库,为scikit-learn提供自定义转换器、指标和模型。该项目最初由荷兰多家公司合作开发,现已获得全球贡献。scikit-lego严格遵循scikit-learn标准,提供高质量代码和测试。它包含多种新特性,如自定义数据集、pandas工具、线性模型、朴素贝叶斯、混合模型、元估计器、预处理工具、模型选择方法和评估指标,旨在增强机器学习工作流程的灵活性和功能性。

下载量 版本 Conda版本 Ruff DOI

scikit-lego

我们热爱scikit-learn,但经常发现自己在编写自定义的转换器、指标和模型。这个项目的目标是尝试将这些整合到一个提供代码质量/测试的包中。该项目最初是荷兰多家公司之间的合作,但此后收到了来自全球的贡献。它由Matthijs BrounsVincent D. Warmerdam发起,作为教人们如何为开源项目做贡献的工具。

请注意,我们与scikit-learn项目没有正式关联,但我们严格遵守他们的标准。

同样适用于乐高。LEGO®是乐高集团公司的商标,该公司不赞助、授权或认可本项目。

安装

通过pip安装scikit-lego

python -m pip install scikit-lego

通过conda安装:

conda install -c conda-forge scikit-lego

或者,如果要编辑和贡献,你可以fork/clone并运行:

python -m pip install -e ".[dev]"
python setup.py develop

文档

文档可以在这里找到。

使用

我们提供自定义的指标、模型和转换器。你可以像在scikit-learn中一样导入它们。

# 我们喜爱的scikit-learn内容
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline

# 从scikit-lego中添加的内容
from sklego.preprocessing import RandomAdder
from sklego.mixture import GMMClassifier

...

mod = Pipeline([
    ("scale", StandardScaler()),
    ("random_noise", RandomAdder()),
    ("model", GMMClassifier())
])

...

功能

以下是该库当前提供的功能列表:

  • sklego.datasets.load_abalone 加载鲍鱼数据集
  • sklego.datasets.load_arrests 加载一个涉及公平性问题的数据集
  • sklego.datasets.load_chicken 加载令人愉悦的鸡重量数据集
  • sklego.datasets.load_heroes 加载风暴英雄数据集
  • sklego.datasets.load_hearts 加载一个关于心脏的数据集
  • sklego.datasets.load_penguins 加载一个可爱的企鹅数据集
  • sklego.datasets.fetch_creditcard 从openml获取欺诈数据集
  • sklego.datasets.make_simpleseries 生成模拟时间序列
  • sklego.pandas_utils.add_lags 在pandas数据框中添加滞后值
  • sklego.pandas_utils.log_step 一个用于记录管道步骤的有用装饰器
  • sklego.dummy.RandomRegressor 预测随机值的虚拟基准
  • sklego.linear_model.DeadZoneRegressor 具有成本函数死区的实验性特征
  • sklego.linear_model.DemographicParityClassifier 受人口平等约束的逻辑分类器
  • sklego.linear_model.EqualOpportunityClassifier 受平等机会约束的逻辑分类器
  • sklego.linear_model.ProbWeightRegression 将系数视为概率权重的线性模型
  • sklego.linear_model.LowessRegression 局部加权线性回归
  • sklego.linear_model.LADRegression 最小绝对偏差回归
  • sklego.linear_model.QuantileRegression 线性分位数回归,LADRegression的泛化
  • sklego.linear_model.ImbalancedLinearRegression 直接惩罚模型的过度/欠估计
  • sklego.naive_bayes.GaussianMixtureNB 通过为每个类的每列训练1D GMM进行分类
  • sklego.naive_bayes.BayesianGaussianMixtureNB 通过为每个类训练贝叶斯1D GMM进行分类
  • sklego.mixture.BayesianGMMClassifier 通过为每个类训练贝叶斯GMM进行分类
  • sklego.mixture.BayesianGMMOutlierDetector 基于训练好的贝叶斯GMM检测异常值
  • sklego.mixture.GMMClassifier 通过为每个类训练GMM进行分类
  • sklego.mixture.GMMOutlierDetector 基于训练好的GMM检测异常值
  • sklego.meta.ConfusionBalancer 允许平衡混淆矩阵的实验性特征
  • sklego.meta.DecayEstimator 为模型接受的sample_weight添加衰减
  • sklego.meta.EstimatorTransformer 将模型输出作为特征添加
  • sklego.meta.OutlierClassifier 将异常值模型转换为分类器以进行网格搜索
  • sklego.meta.GroupedPredictor 可以将数据分割成多个运行并在每个运行上运行模型
  • sklego.meta.GroupedTransformer 可以将数据分割成多个运行并在每个运行上运行转换器
  • sklego.meta.SubjectiveClassifier 为分类器添加先验的实验性特征
  • sklego.meta.Thresholder 允许对阈值进行网格搜索的元模型
  • sklego.meta.RegressionOutlierDetector 通过在回归中添加阈值来查找异常值的元模型
  • sklego.meta.ZeroInflatedRegressor 基于分类器预测零或应用回归
  • sklego.preprocessing.ColumnCapper 限制模型特征的极端值
  • sklego.preprocessing.ColumnDropper 从pandas中删除列
  • sklego.preprocessing.ColumnSelector 基于列名选择列
  • sklego.preprocessing.InformationFilter 可以去相关特征的转换器
  • sklego.preprocessing.IdentityTransformer 返回相同的数据,允许连接管道
  • sklego.preprocessing.OrthogonalTransformer 使所有特征线性独立
  • sklego.preprocessing.TypeSelector 基于类型选择列
  • sklego.preprocessing.RandomAdder 在训练中添加随机性
  • sklego.preprocessing.RepeatingBasisFunction 重复特征工程,适用于时间序列
  • sklego.preprocessing.DictMapper 为分类列分配数值
  • sklego.preprocessing.OutlierRemover 在训练期间移除异常值的实验方法
  • sklego.model_selection.GroupTimeSeriesSplit 用于每组观察数不同的组的时间序列K折交叉验证
  • sklego.model_selection.KlusterFoldValidation 基于聚类进行K折交叉验证的实验性特征
  • sklego.model_selection.TimeGapSplit 训练/测试之间有间隔的时间序列K折交叉验证
  • sklego.pipeline.DebugPipeline 添加调试信息以便于调试
  • sklego.pipeline.make_debug_pipeline 创建可调试管道的快捷函数
  • sklego.metrics.correlation_score 计算模型输出与特征之间的相关性
  • sklego.metrics.equal_opportunity_score 计算平等机会指标
  • sklego.metrics.p_percent_score 模型公平性对敏感属性的代理
  • sklego.metrics.subset_score 在数据子集上计算得分(用于公平性跟踪)

新功能

我们在接受新功能方面相当开放,但在添加到项目之前,我们要求满足三个条件:

  1. 任何新功能都要对可演示的现实世界用例有所贡献
  2. 任何新功能都要通过标准单元测试(我们使用scikit-learn的测试)
  3. 该功能事先已在问题列表中讨论过

我们自动化所有测试,并使用预提交钩子来保持代码正常工作。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号