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

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

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

Project Cover

Kimi

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

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

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

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

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