[問題] 關於線性的近似方法 有點怪

看板R_Language作者 (巴克球)時間9年前 (2016/03/22 11:35), 9年前編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/2 (看更多)
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]:piecewise linear approximation(PLA) 目的:使用線性的方式,切割一個序列 ( 時間序列) 目標方法: 簡單來說連結起點和終點, 依時間依序比較點和線的距離 太大就將點和終點連線, 以新的線再依序和接下來的點比距離, 重複做 以下是原文敘述: http://imgur.com/eUcKxg6
http://imgur.com/BLbYeyJ
問題: (step1): Input time series Q(i : j) and threshold value "error". A vector Bp is used to restore the breakpoints. "k" records the number of the present breakpoints. "pos" denotes the position of the newest breakpoint. Initially, i = 1, j = m, where m is the length of time series. Since the first point and the last point are the special breakpoints, let k = 2, Bp(1) = q1 and Bp(2) = qm. (step2): For time series Q(i : j), create line segment L(i : j) according to the formula (6). Set two variables l = i + 1 and best_so_far = 0. *公式6在我的程式碼中有付 (step3): Calculate the distance of point ql to the line segment L(i : j), that is D(ql,L(i : j)). (step4): If D(ql,L(i : j)) > best_so_far, best_so_far = D(ql,L(i : j)) and pos = l. (step5): l = l + 1. If l>=j, go to the step 6; otherwise, go back to step3. (step6): If best_so_farPe, k = k + 1, Bp(k) = q_pos, go back to the Step 2 and let the two subsequences Q(i : pos) and Q(pos : j) redo the step 2 to step 6, respectively. (step7): Sort the element of vector Bp by an ascending time and output the sorted result. 出自:http://tinyurl.com/hhosdmk -3.1 1.我的程式碼看起來有點問題,尤其是step 6這地方不太會表示,有高手可以解惑嗎? 2.有沒有比較正常的打法?我的打法好像問題很大 3.package方面有試過一些,但是有辦法表達和上面敘述一樣的package目前好像沒找到 程式碼可貼於以下網站: http://ideone.com/TOEISf 求高手救援 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.61.200 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1458617728.A.A17.html

03/22 11:43, , 1F
為啥不直接用approx就好
03/22 11:43, 1F

03/22 11:45, , 2F
圖的字太小,看可不可以直接貼上來,看了眼睛痛
03/22 11:45, 2F

03/22 11:46, , 3F
請忽略第一個推文
03/22 11:46, 3F
※ 編輯: jackhzt (140.123.61.200), 03/22/2016 13:00:59
文章代碼(AID): #1MyBs0eN (R_Language)
文章代碼(AID): #1MyBs0eN (R_Language)