- 主题:求助,拟合的实际问题
这是来自商业软件的实际问题,一个函数,定义域是正整数,值域是(0,1),单调递增,以f(x)=1为渐近线。
已知函数在某些点的近似值。
f(1)=0.77389
f(2)=0.79667
f(3)=0.81728
f(4)=0.835
f(5)=0.85185
f(6)=0.86667
…
f(15)=0.949
…
f(30)=0.984
通过这些点的f(x)有无数个,需要找到一个表达式最简单的。
求思路,有啥软件能暴力求解吗?谢谢
--
FROM 106.120.85.*
f(x)=1不对,和f(1), f(2), ...不近似。
原文的数值值是解析值的四舍五入,或取整。
【 在 zxf 的大作中提到: 】
: 表达式最简单的当然就是f(x)=1。所以,这种问题,还需要有更进一步的要求。
--
FROM 106.120.85.*
感谢各位,实际问题是这样:
一个软件,用于文本数据的处理,统计某些关键字出现的次数。例如统计出现“翻红”“涨停”“拉高”等词汇的次数,算出一篇新闻对应的情绪的分值。
命中关键词的次数阅多,分值越高。所以定义域是正整数,命中0次分数为0,分数不超过1。
以上算法是行业内通行的算法。具体用什么算法,各厂家不一样。我们有一套老旧代码,开发者早离职了,在代码里看到了一楼写着的数值,给定了某些点的值,其它点的值使用线性插值。无公式,无文档,不知道这些值为什么这样定义。
有客户问这些值的具体含义是什么?所以我们要给出一个公式。
关于背景,没有藏着掖着,如果没说清楚,欢迎问我。感谢各位。
对于精度问题。在编程时,如果代码里写了0.995,那么默认解析值在0.994到0.996之间。如果我们找到的f(x)超出范围,说明公式不对。
【 在 cafitren 的大作中提到: 】
: 让人免费回答问题,藏着掖着不太好。我也很好奇是什么实际问题。
:
--
FROM 106.120.85.*
我们觉得这些数值必定有些依据,不是他凭空编造的。
【 在 gloop 的大作中提到: 】
: 他既然都用线性插值了,说明他很可能也没有公式啊,不然何不直接用公式算呢?
--
FROM 106.120.85.*
我想到一个方法,把常见的函数(对数,指数,三角函数等)进行排列组合,加上系数,系数是-30到30的自然数,以及pi, e. 暴力求解。这建立在一个前提下,即f(x)的数写比较简单,系数不奇葩。
希望某个软件已经这样做了,我就不用亲自写代码实现了。
以前用暴力方法解决过f(x)是多项式的商,系数是有理数的情况。
f(4)=0.835 第一反应它是两个不大的整数的商。用这个思路,其它点的值明显不是两个较小的正整数的商。所以f(x)不是多项式的商。
【 在 gloop 的大作中提到: 】
: 在已知公式,但公式中的参数未知的时候,可以用(非线性)最小二乘法拟合参数。但是公式怎么定可能就得靠试验了。
--
修改:operater FROM 106.120.85.*
FROM 106.120.85.*
感谢
感谢楼上各位
【 在 meizhi 的大作中提到: 】
: rbf网络啊,专门做这个。平滑的话可以试试Chebyshev多项式拟合。
: 发自「今日水木 on Redmi Note 7」
--
FROM 120.244.162.*