求算法,判断一个曲线和我的标准曲线的趋势是否大致相同,谢谢

「已注销」 2014-08-13 01:59:47
现在我需要判断一个曲线和我的标准曲线的趋势是否大致相同,用什么算法来判断呢?
...全文
5111 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
fos_jpg 2017-05-05
  • 打赏
  • 举报
回复
忍不住挖坟了。。。。
fos_jpg 2017-05-05
  • 打赏
  • 举报
回复
按照需求,把X轴细分成N个点,两条曲线就成了(Y1,Y2,Y3...Yn)这样的向量,用余弦相似度比较向量夹角,夹角越小,相似度越高。关键是如何细分成N个点,理论上无穷细越好,但是计算量是不可能做到的,满足需求就可以了。
qq_28241399 2017-01-13
  • 打赏
  • 举报
回复
请问楼主这个问题怎么解决的啊,感激不尽
huabailixiang 2014-11-26
  • 打赏
  • 举报
回复
可以采用皮尔逊相似性算法
xjq2003 2014-08-18
  • 打赏
  • 举报
回复
可以参照图片相似度的计算方法
孟豆豆 2014-08-18
  • 打赏
  • 举报
回复
引用 16 楼 Yans 的回复:
最小二乘法头都看大了
二元一次最小二乘法有公式可借用,可如果往更高元里发展……那咱还是先研究一下高等数学吧
lhy 2014-08-18
  • 打赏
  • 举报
回复
做相关,其实就是每个点依次相乘,乘积之和。一般来说越相似结果越大。 当然如果一条曲线是个很大正数结果也会很大,所以把整条曲线求平均值,每个点减平均值以后再做相关比较好。 如果关心的是趋势,不考虑幅度,在上一步基础上,那就求出曲线和零点的平均距离,然后每个点除以平均距离,这样就是纯趋势了。 比如曲线A是三个点1,2,3,第一步完成后是:-1,0,1,第二步完成后是:-1.5,0,1.5; 曲线B也是3个点2,4,3,第一步完成后是:-1,1,0,第二步完成后是:-1.5,1.5,0; 曲线C也是3个点3,4,2,第一步完成后是:0,1,-1,第二步完成后是:0,1.5,-1.5; 曲线A自己和自己相关得4.5,曲线A和曲线B相关得2.25,A和C之间是-2.25。A和自己趋势最相似,然后是B,最不相似是C。
「已注销」 2014-08-15
  • 打赏
  • 举报
回复
最小二乘法头都看大了
「已注销」 2014-08-15
  • 打赏
  • 举报
回复
贝塞尔公式为啥要除以n-1,而不是n呢?
1cctv 2014-08-15
  • 打赏
  • 举报
回复
标准差嘛.
「已注销」 2014-08-14
  • 打赏
  • 举报
回复
贝塞尔公式 做相关分析,计算两条曲线之间的相关系数 怎么做?
rickys2080 2014-08-14
  • 打赏
  • 举报
回复
试试 最小二乘法
「已注销」 2014-08-14
  • 打赏
  • 举报
回复
用贝塞尔公式算出来的值好像不能表征曲线的特征,按理说应该是值越小,越接近标准曲线,可是有些明明差异很大的曲线值却很小。
  • 打赏
  • 举报
回复
引用 11 楼 Yans 的回复:
P0、P1... 是每个关键点误差权值,比如0.1/0.2之类的,可以均分,也可以每个不一样。P0.P1平均取值,P0=P1=1/N?
平均取值就是这样,但是也可能曲线上某几个点对相似与否特别关键,就可以权值大一些。
「已注销」 2014-08-14
  • 打赏
  • 举报
回复
P0、P1... 是每个关键点误差权值,比如0.1/0.2之类的,可以均分,也可以每个不一样。P0.P1平均取值,P0=P1=1/N?
jone7319 2014-08-14
  • 打赏
  • 举报
回复
好久不来了,都是新人了
  • 打赏
  • 举报
回复
你可以针对每个标准曲线计算出一个相似度来,选一个相似度最大的就是最匹配的那条。
「已注销」 2014-08-14
  • 打赏
  • 举报
回复
比较难,我这标准曲线太多,很多模凌两可的
  • 打赏
  • 举报
回复
啊,这个应该是“比如N个关键点,每个点占100/N”。
  • 打赏
  • 举报
回复
主要问题在于“相似”不好量化,要看你的具体需要。比如说10个关键点,两条曲线有9个关键点完全重合,剩下一个误差很大,算不算相似?或者两条曲线的10个关键点都不重合,但是误差很小,是不是比前例更相似? 类似2楼说的那样,你可以设定一个误差范围,比如Y轴误差在正负20之内,当然也可以每个点允许的误差范围不一样,然后对给出的曲线按关键点去计算误差,超出误差范围的点越少,误差越小,相似度就越高。 你可以定义一下权值,比如N个关键点,每个点占N%,误差最大允许范围20,那相似度计算公式就可以表达如下: 1 - ABS(Y0 - Ys0)/20*P0 - ABS(Y1 - Ys1)/20*P1 - ... 其中ABS表示绝对值,Y0、Y1... 是给定曲线的关键点Y坐标,Ys0、Ys1... 标准曲线的关键点Y坐标,P0、P1... 是每个关键点误差权值,比如0.1/0.2之类的,可以均分,也可以每个不一样。这样求出的值是一个小于等于1的数字,越接近1相似度越高,数值越小则相似度越低,是可以出现负值的,当然你也可以做一个判断,把负相似度限定为0。
加载更多回复(4)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧