Math 将一组数字属性转换为一个分数

Math 将一组数字属性转换为一个分数,math,optimization,multidimensional-array,machine-learning,curve-fitting,Math,Optimization,Multidimensional Array,Machine Learning,Curve Fitting,这经常出现,令人惊讶的是,似乎没有一个标准的解决方案。假设我有一组数字属性——你可以想象使用它来根据一组分数对大学或城市进行排名,如学生/教师比率、污染或诸如此类——并希望将它们转化为一个分数 我想举几个例子,插值得到一个一致的评分函数 也许有标准的多维曲线拟合或数据平滑库或其他使这变得简单的东西 更多示例: 将这两个血压值转换为一个分数,以判断您的血压是否接近最佳值 将身体测量转化为一个衡量你离理想体形有多远的单一指标 将一组时间(100米短跑等)转化为某项运动的体能得分 您需要教它什么是正

这经常出现,令人惊讶的是,似乎没有一个标准的解决方案。假设我有一组数字属性——你可以想象使用它来根据一组分数对大学或城市进行排名,如学生/教师比率、污染或诸如此类——并希望将它们转化为一个分数

我想举几个例子,插值得到一个一致的评分函数

也许有标准的多维曲线拟合或数据平滑库或其他使这变得简单的东西

更多示例:

  • 将这两个血压值转换为一个分数,以判断您的血压是否接近最佳值
  • 将身体测量转化为一个衡量你离理想体形有多远的单一指标
  • 将一组时间(100米短跑等)转化为某项运动的体能得分

    • 您需要教它什么是正确的值。没有其他方法可以精确确定什么是正确的解决方案。正如你在上面的评论中所说,你需要一个人来告诉它什么是正确的值(或者什么是正确的方向)

      这正是有监督的机器学习。你需要有一个分类值的集合,然后训练你的算法,给它一个集合的子集来匹配它的值,然后使用集合的剩余子集来衡量它的准确性

      这方面的一个例子是ANN(人工神经网络)和SVM(支持向量机)

      这里我们有一个支持向量机的例子,它将一个模型与具有2个值(表示为X轴和Y轴)且具有2个聚类的数据相匹配。你可以将红色视为心脏病的高风险,蓝色视为心脏病的低风险,其数值可以作为某种度量

      当然,在现实世界的例子中,你会有一个更高维度的值,也许会有更多的类

      如果您需要自己使用答案,您可以在某些情况下使用ANN算法中的值。

      tl;医生:退房。它将允许您快速编写和维护行为合理的评分函数

      为了举例说明您的简单示例,假设您有一个应用程序,它接收一组距离和时间作为输入,您希望将它们映射到1-100分。例如,你得到(1.2英里,8:37),你想返回,比如说,64

      典型的方法是选择几个基函数,然后用这些基函数的系数进一步计算,得到“看起来正确”的分数。例如,您可能有一个以分钟/英里为单位的线性基函数,还有一个以距离为单位的附加基函数(可能是以距离为单位的线性基函数,也可能是以距离的平方根为单位的线性基函数)。例如,您甚至可以在输入范围内使用更复杂的表达能力。(这与其他答案在支持向量机等ML算法方面的建议非常相似。)

      这种方法通常相当快,但也有许多缺点。首先,必须正确使用基函数,这对于更抽象和表达性更强的函数来说可能很困难。第二,你会发现你的分数会很快僵化:如果你发现一个你认为是错误评分的输入,那么在确定评分函数的其余部分“看起来正确”的同时,如何改变它将是一个挑战。第三,为分数添加另一个属性(例如,如果跑步者是男性或女性)可能很困难,因为你可能会发现你需要在基础上添加更多的术语。最后,在这种方法中没有明确的保证,即你的分数会表现得很聪明——根据你选择的基函数和系数,在7:03跑1英里的人可能比在7:01跑1.1英里的人得到更高的分数

      当面临类似问题时,存在一种不同的方法,其形式为。使用HiScore,您可以用分数标记一组参考项,然后生成一个评分函数,智能地通过这些分数进行插值。例如,你可以将最后100条输入输入到你的应用程序中,将它们与你的一些最极端的输入结合起来(可能在(距离、时间)空间中获取你提交的输入的最后一条),标记它们,并使用HiScore生成合理的评分函数。如果它得到了你不同意的分数,只需使用正确的标签将其添加到参考集中,并重新创建评分函数,因为他的核心保证通过参考集进行插值

      HiScore的一个特性是您的属性必须是单调的,或者总是递增或递减的。这对于“运行时间”设置来说不是问题,因为分数应该随着距离的增加而增加(对于固定时间),随着时间的增加而降低(对于固定距离)。HiScore的单调性让你相信你的分数会如预期的那样表现;它保证7:03跑1英里的人不会比7:01跑1.1英里的人得分高


      你提出的血压设置很有趣,因为它不是单调的。低血压是不好的,但高血压也是不好的。不过,你仍然可以在这里使用他的核心:只需将每个测量值分成“高血压”和“低血压”两个分量,其中至少有一个是零。例如,收缩读数160将映射为收缩+属性60和收缩-属性0。这两个新属性的得分都应该降低,因此这种方法将非单调二维问题(具有收缩和舒张属性)转化为单调四维问题(具有收缩+、收缩-、舒张+、舒张-)。(这个技巧类似于帮助线性程序进入的技巧。)

      如果标签信息是有序的(即排名数据),那么您可以