การค้นหาความคล้ายคลึงกันระหว่างอนุกรมเวลาใน Matlab เป็นไปได้ ? ฉันไม่พบการนำ R-tree ไปใช้งานใน Matlab

ฉันต้องการใช้การค้นหาความคล้ายคลึงกันใน Matlab ฉันอยากรู้ว่าเป็นไปได้ไหม?

แผนของฉันคือการใช้การวัดความคล้ายคลึงกันยอดนิยม 2 แบบ ได้แก่ ระยะทางแบบยุคลิด และการแปรปรวนเวลาแบบไดนามิก ทั้งสองอย่างนี้จะถูกนำไปใช้กับชุดข้อมูลอนุกรมเวลา คำถามของฉันในตอนนี้คือ ฉันจะประเมินประสิทธิภาพและความแม่นยำในการวัดทั้งสองนี้ได้อย่างไร ฉันเห็นวรรณกรรมบางเรื่องบอกว่าฉันควรใช้อัลกอริทึม K-NN

จากนั้น ฉันวางแผนที่จะใช้การลดขนาดกับชุดข้อมูลอนุกรมเวลา หลังจากลดมิติของชุดข้อมูลแล้ว ฉันจะต้องจัดทำดัชนีชุดข้อมูลโดยใช้ R-tree หรือเทคนิคการจัดทำดัชนีใดๆ ที่มีอยู่

อย่างไรก็ตาม ปัญหาของฉันคือในการทำเช่นนี้ ฉันต้องการรหัส R-tree Matlab ซึ่งฉันแทบจะไม่พบเลยในอินเทอร์เน็ต ...

ฉันรู้ว่าการใช้งานส่วนใหญ่สำหรับการค้นหาความคล้ายคลึงกันนั้นอยู่ใน C ++, C และ Java ... แต่ฉันไม่คุ้นเคยกับสิ่งเหล่านั้น ฉันหวังว่าฉันจะสามารถนำสิ่งเหล่านี้ไปใช้ใน Matlab ได้ ... กูรูคนไหนสามารถช่วยฉันในเรื่องนี้ได้บ้าง?

นอกจากนี้ ฉันสามารถทำการประเมินแบบใดเพื่อประเมินประสิทธิภาพสำหรับแต่ละอัลกอริทึม

ขอบคุณ


person Jaz    schedule 24.07.2010    source แหล่งที่มา


คำตอบ (2)


เมื่อเร็วๆ นี้ (ฉันเชื่อว่า R2010a) MATLAB ได้เพิ่มฟังก์ชันใหม่สำหรับ k-Nearest Neighbor (kNN) ค้นหาโดยใช้ KD-tree (a การจัดทำดัชนีเชิงพื้นที่ วิธีการที่คล้ายคลึงกับ R-tree) ไปยังกล่องเครื่องมือสถิติ ตัวอย่าง:

load fisheriris                            % Iris dataset
Q = [6 3 4 1 ; 5 4 3 2];                   % query points

% build kd-tree
knnObj = createns(meas, 'NSMethod','kdtree', 'Distance','euclidean');

% find k=5 Nearest Neighbors to Q
[idx Dist] = knnsearch(knnObj, Q, 'K',5);

โปรดดูคำอธิบายที่ดีที่หน้านี้

นอกจากนี้ หากคุณมีกล่องเครื่องมือประมวลผลรูปภาพ กล่องเครื่องมือจะมีการใช้งานการค้นหา kd-tree และ kNN (เป็นเวลานานแล้ว) มันเป็นฟังก์ชั่นส่วนตัวแม้ว่า:

[matlabroot '\images\images\private\kdtree.m']
[matlabroot '\images\images\private\nnsearch.m']

เพื่อเปรียบเทียบสองแนวทางของคุณ (Dynamic Time Warping และ ระยะทางแบบยูคลิด) คุณสามารถออกแบบปัญหาคลาสสิกของการจำแนกประเภทได้ เมื่อพิจารณาชุดของอนุกรมเวลาการฝึกอบรม/การทดสอบที่มีป้ายกำกับ ภารกิจคือการทำนายฉลากของลำดับการทดสอบแต่ละชุดโดยการค้นหาลำดับที่คล้ายกันมากที่สุดโดยใช้ kNN จากนั้นจึงทำนายคลาสส่วนใหญ่ ในการประเมินประสิทธิภาพ ให้ใช้การวัดมาตรฐานในการจำแนกประเภท เช่น ความแม่นยำ/ข้อผิดพลาด ฯลฯ

person Amro    schedule 26.07.2010
comment
ขอบคุณสำหรับคำตอบที่ให้ข้อมูล ฉันค่อนข้างเป็นผู้มาใหม่ในสาขานี้ ดังนั้นโปรดอดทนกับฉันด้วย 1) คุณแนะนำให้ฉันใช้ Matlab เพื่อดำเนินการค้นหาความคล้ายคลึงกันหรือฉันควรใช้โดยใช้ java หรือ c++? 2) จำเป็นต้องจัดทำดัชนีหลังจากการลดขนาดหรือไม่ 3)คุณช่วยฉันด้วยการอธิบายรายละเอียดเกี่ยวกับการประเมินที่คุณเสนอได้ไหม ผลลัพธ์ของการค้นหาความคล้ายคลึงของฉันจะเป็นชุดของอนุกรมเวลาที่คล้ายกับอนุกรมเวลาของแบบสอบถาม ฉันจะดำเนินการต่อจากจุดนี้เพื่อการประเมินได้อย่างไร เมื่อพิจารณาว่าฉันต้องการนำไปใช้กับข้อมูลไม่กี่ประเภท เช่น ข้อมูลหุ้น ข้อมูล ECG - person Jaz; 02.08.2010
comment
1) ฉันขอแนะนำให้คุณใช้ภาษาใดก็ตามที่คุณรู้สึกสบายใจมากกว่า 2) จุดประสงค์หลักของการจัดทำดัชนีคือการเร่งการค้นหา ดังนั้นสำหรับอนุกรมเวลาจำนวนมาก เราจะไม่จำเป็นต้องเปรียบเทียบกับอนุกรมเวลาทั้งหมด แต่เราได้รับชุดผู้สมัครที่มี R-trees แทน สิ่งหนึ่งที่ควรจำไว้ก็คือ สำหรับมิติข้อมูลที่มีขนาดใหญ่กว่า 20 การจัดทำดัชนีเชิงพื้นที่จะลดลงเป็นการค้นหาเชิงเส้น 3) ตามที่ฉันอธิบาย คุณเพียงแค่นำป้ายกำกับส่วนใหญ่ของชุดเวลาที่ผู้สมัครส่งคืนมา และเปรียบเทียบกับป้ายกำกับจริง หากตรงกับการจัดประเภทที่ถูกต้อง ไม่เช่นนั้นจะเกิดข้อผิดพลาด - person Amro; 02.08.2010
comment
ขอบคุณ ฉันตัดสินใจค้นหาความคล้ายคลึงกันแบบง่ายๆ ฉันกำลังวางแผนที่จะใช้การค้นหาช่วงโดยที่ระยะทางที่คำนวณภายในขอบเขตข้อผิดพลาด ,e จะถือว่าคล้ายกัน ปัญหาคือฉันจะกำหนดค่าของ e นี้ได้อย่างไร รหัสใดที่อธิบายการค้นหาช่วง / การค้นหาตามลำดับ - person Jaz; 17.08.2010

ปรากฎว่าการสแกนตามลำดับโดยใช้ชุด UCR สำหรับทั้ง ED และ DTW นั้นเร็วกว่ามาก

ดูวิดีโอนี้ https://www.youtube.com/watch?v=d_qLzMMuVQg

หรือสิ่งนี้

https://www.youtube.com/watch?v=c7xz9pVr05Q

รหัสฟรี http://www.cs.ucr.edu/~eamonn/UCRsuite.html

person user2313186    schedule 29.10.2014