Python包来帮助您选择变量。

bcselector的Python项目详细描述


https://raw.githubusercontent.com/Kaketo/bcselector/master/docs/img/logo_small.pnghttps://img.shields.io/badge/python-3.7-blue.svghttps://badge.fury.io/py/bcselector.svghttps://travis-ci.com/Kaketo/bcselector.svg?branch=masterhttps://codecov.io/gh/Kaketo/bcselector/branch/master/graph/badge.svghttps://img.shields.io/badge/License-MIT-yellow.svg

这是什么?在

特征选择是许多机器学习任务中的关键问题。通常考虑 变量的收集和存储成本很低,但在某些情况下,特征值的获取 可能会有问题。例如,在预测疾病的发生时,我们可以考虑 一些诊断测试的结果可能非常昂贵。 现有的特征选择方法通常忽略与所考虑的特征相关的代价 特征。成本敏感特征选择的目标是选择允许 在假设范围内成功预测目标变量(如疾病发生率) 预算。在

该软件包的主要目的是提供基于特征选择的过滤方法 在信息论的基础上,提出考虑特征成本的这些方法的新变体。在

安装

bcselector可以从[PyPI](https://pypi.org/project/bcselector)安装:

pip install bcselector

快速启动

首先,我们必须有一个具有分类目标变量的数据集,并为每个特性指定一个成本。 好的示例数据可以是来自UCI存储库[1]的hepatitis。在

假设我们已经将数据集加载到Python中,我们需要创建选择器类,并使用适当的参数调用fit方法:

^{pr2}$

通过调用getter功能,我们现在可以获得简单的选择结果:

fvs.get_cost_results()

或者,我们可以用任何sklearn模型和分类指标来评分和绘制结果:

fvs.score(model=model,scoring_function=roc_auc_score)fvs.plot_scores(compare_no_cost_method=True,model=model,annotate=True)

从而得出BC图:

https://raw.githubusercontent.com/Kaketo/bcselector/master/docs/img/bc_plot.png

OX axis上,我们已经累积了成本,并且在OY轴上,我们可以看到当前所选功能集的测试集分数:

  • Blue line是成本敏感的方法选择功能顺序。在
  • Red line是无成本方法选择的功能顺序。在
  • Blue vertical line是可用的最大预算(用户参数)

曲线上方或下方的小数字是选定要素的索引。因此,我们可以看到,成本敏感方法选择的第一个变量位于数据集X的第14列。在

书目

  • [1] Dua,D.和Graff,C.(2019年)。UCI机器学习库[http://archive.ics.uci.edu/ml]。加州欧文:加州大学信息与计算机科学学院。在

引用

待定

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题