Scikit-learn 具有使用“特征”的自定义评分函数

2024-05-04

我正在尝试使用一种名为“SERA”(平方误差相关区域)的新指标作为本文中提到的不平衡回归的自定义评分函数。https://link.springer.com/article/10.1007/s10994-020-05900-9 https://link.springer.com/article/10.1007/s10994-020-05900-9

以下是该论文的简要介绍。为了计算 SERA,每个特征标签对都需要用户定义的称为“相关性”的特征。相关性从 0 到 1 变化。0 表示不相关,1 表示高度相关。

这就是SERA 的计算过程。 相关性从 0 到 1 小步变化。对于每个相关性 (phi) 值(例如 0.45),选择训练数据集的一个子集,其中相关性大于或等于该值(例如 0.45)。对于选定的训练子集,计算平方误差之和,即 sum(y_true - y_pred)**2,称为平方误差相关性 (SER)。然后计算我们为 SER 与 phi 和曲线下面积创建的图,即 SERA。

这是我使用 make_scorer 在 python 中为 sklearn 编写的代码。我运行了这段代码,但出现错误。

import pandas as pd
from scipy.integrate import simps
from sklearn.metrics import make_scorer

def calc_sera(y_true, y_pred, x_relevance=None):

    # creating a list from 0 to 1 with 0.001 interval
    start_range = 0
    end_range = 1
    interval_size = 0.001

    list_1 = [round(val * interval_size, 3) for val in range(1, 1000)]
    list_1.append(start_range)
    list_1.append(end_range)
    epsilon = sorted(list_1, key=lambda x: float(x))

    # Initiating lists to store relevance(phi) and squared-error relevance (ser)
    relevance = []
    ser = []

    # Converting the dataframe to a numpy array
    rel_arr = x_relevance.to_numpy()
    # selecting a phi value
    for phi in epsilon:
        relevance.append(phi)
        error_squared_sum = 0
        for i in rel_arr:
            # Getting the subset of the training data
            if i >= phi:
                # Error calculation
                error_squared_sum += (y_true - y_pred)**2
        ser.append(error_squared_sum)

    # squared-error relevance area (sera)
    # numerical integration using simps(y, x)

    sera = simps(ser, relevance)

    return sera

score = make_scorer(calc_sera, x_relevance=df['Relevance'], greater_is_better=False)   

VisibleDeprecationWarning:不推荐从不规则的嵌套序列(这是具有不同长度或形状的列表或元组或 ndarray 的列表或元组)创建 ndarray 。如果您打算这样做,则必须在创建 ndarray 时指定 'dtype=object' 返回数组(a,dtype,复制=假,顺序=顺序) 作业异常:评分必须返回一个数字,而是得到 [.....] () 。 (得分者=得分)

谁能帮我解决这个问题吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scikit-learn 具有使用“特征”的自定义评分函数 的相关文章

随机推荐

  • 您可以控制借用结构体还是借用字段吗?

    我正在开发一个涉及以下结构的程序 struct App data Vec
  • openGL转png

    我正在尝试将包含大量纹理 没有移动 的 openGL 编辑 我画的卡片 thx unwind 转换为一个 PNG 文件 我可以在框架的另一部分中使用该文件我正在与 有 C 库可以做到这一点吗 thanks 如果您的意思只是 获取由 Open
  • 用于编译/反编译二进制数据文件的通用实用程序或库?

    我有各种二进制文件格式 我需要将其转储为某种文本格式 编辑然后重新编译 可能是二进制格式的稍微不同的版本 当然 我可以用 C C 编写一堆实用程序代码来完成这种事情 并且可能利用一个库来处理文本方面的事情 XML 或 JSON 或其他 但这
  • mysql 查询中的 golang 切片,带有 where in 子句

    我正在运行以下查询 但只获取第一个 id 值 select from table where table id in 1 2 3 4 5 6 7 9 11 13 14 15 17 and table deleted at is null 我
  • AWS Api Gateway:缺少身份验证令牌

    所以我有一个链接到 lambda 函数的 api 网关的自定义域名设置 如果我这样做的话我就可以正常工作https api domain com something https api domain com something行为符合预期
  • Http Auth 不适用于 PHP

    我使用 Laravel Lumen Shield 扩展进行 Http 身份验证 但是在我的本地计算机上一切都很完美 我只在我们的服务器上遇到了问题 问题是在我提交正确的登录数据后 登录屏幕再次出现 我尝试了不同的登录数据 不同的浏览器 登录
  • 用于列出用户和组的 Python 脚本

    我正在尝试编写一个脚本 在自己的行上输出每个用户及其组 如下所示 user1 group1 user2 group1 user3 group2 user10 group6 etc 我正在为此用 python 编写一个脚本 但想知道如何做到这
  • 在Python中解析制表符分隔的文件

    我正在尝试在 Python 中解析一个制表符分隔的文件 其中与行开头分开的 k 个制表符的数字应该放入第 k 个数组中 除了逐行读取并执行简单解决方案将执行的所有明显处理之外 是否有内置函数可以执行此操作 或者有更好的方法 您可以使用the
  • 动态分配对象数组

    我有一个包含动态分配数组的类 例如 class A int myArray A myArray 0 A int size myArray new int size A Note that as per MikeB s helpful sty
  • Python:安装 numpy 时出现损坏的工具链错误

    我正在使用 Python 2 7 3 并尝试在 Windows 计算机上安装 numpy 包 但收到运行时错误 提示 工具链损坏 无法链接到简单的 C 程序 我读了解决方案here https stackoverflow com quest
  • 如何查找组中第一个非空值? (使用dataset api进行二次排序)

    我正在研究一个代表事件流的数据集 例如从网站跟踪事件时触发 所有事件都有一个时间戳 我们经常遇到的一个用例是尝试查找给定字段的第一个非空值 例如 类似的东西最能让我们到达那里 val eventsDf spark read json jso
  • 在 C# 中追加到空字符串是如何工作的?

    我很惊讶地看到一个字符串被初始化为 null 然后在生产环境中附加一些内容的示例 只是闻起来不对劲 我确信它会抛出空对象异常 但这个大大简化的示例也有效 string sample null sample test sample equal
  • 迁移范围的独特性

    我一直在尝试找到一种方法来实现这一目标 但我找不到任何尝试 即使如此 我想也许我的方法是完全错误的 也就是说 我应该做什么移民如果我希望两个字段的组合是唯一的 请注意 我不希望它们成为索引 而只是数据库字段 例如 对于下面的迁移 我可以单独
  • 如何在vba中向形状添加点或节点?

    I am trying to add points or nodes to a shape so instead of having 4 points I can have more 这是我添加形状的代码 Set shap2 w Shape
  • SQL错误:1054,SQLState:42S22“字段列表”中的未知列错误Java Spring Boot Mysql错误

    基本上我正在尝试制作一个简单的促销页面 我收到的错误是 SQL 错误 1054 SQLState 42S22 错误是 字段列表 中的未知列 promotion0 promo type id 这是模型类 package promotions
  • 单击片段中的按钮不起作用

    我在片段中有一个按钮 对于该按钮 我重写了 onClick 方法 但它不起作用 单击按钮时 我也有一个 Taost 和一个日志 public class DataShown extends Fragment implements OnCli
  • 是否有理由使用 Scala 的 StringLike.replaceAllLiterally 而不是 Java 的 String.replace?

    Scala 的 StringLike 有该方法replaceAllLiterally literal String replacement String String https github com scala scala blob 56
  • ListenableFuture 到 scala Future

    我正在围绕 java 库编写一个小型 scala 包装器 java 库有一个对象 QueryExecutor 公开了 2 个方法 执行 查询 结果 asyncExecute 查询 ListenableFuture 结果 在这种情况下 Lis
  • Spring Data Mongo 无法找到 Enum 的 PersistentEntity

    编辑 我发现了一个相关问题here https stackoverflow com questions 28972455 does spring data mongodb support enums 但仅有的两个答案相互矛盾 并且没有足够的
  • Scikit-learn 具有使用“特征”的自定义评分函数

    我正在尝试使用一种名为 SERA 平方误差相关区域 的新指标作为本文中提到的不平衡回归的自定义评分函数 https link springer com article 10 1007 s10994 020 05900 9 https lin