คลัสเตอร์ข้อมูลขนาดใหญ่ใน R และการสุ่มตัวอย่างมีความเกี่ยวข้องหรือไม่


13

ฉันยังใหม่กับวิทยาศาสตร์ข้อมูลและมีปัญหาในการค้นหากลุ่มในชุดข้อมูลที่มี 200,000 แถวและ 50 คอลัมน์ใน R

เนื่องจากข้อมูลมีทั้งตัวเลขและตัวแปรที่กำหนดวิธีการแบบ K-mean ซึ่งใช้การวัดระยะทางแบบยุคลิดจึงไม่เป็นทางเลือกที่เหมาะสม ดังนั้นฉันจึงหันไปหา PAM แอกเนสและ hclust ซึ่งยอมรับเมทริกซ์ระยะทางเป็นอินพุต

วิธีเดซี่สามารถทำงานกับข้อมูลแบบผสม แต่เมทริกซ์ระยะทางนั้นใหญ่เกินไป: 200,000 เท่า 200,000 มีขนาดใหญ่กว่า 2 ^ 31-1 มาก (ขีด จำกัด ความยาวเวกเตอร์ก่อน R 3.0.0)

R 3.0.0 ใหม่ที่เผยแพร่เมื่อวานนี้รองรับเวกเตอร์ยาวที่มีความยาวมากกว่า 2 ^ 31-1 แต่เมทริกซ์สองเท่าของ 200,000 โดย 200,000 ต้องใช้ RAM ต่อเนื่องที่มีขนาดใหญ่กว่า 16Gb ซึ่งเป็นไปไม่ได้ในเครื่องของฉัน

ฉันอ่านเกี่ยวกับการคำนวณแบบขนานและแพ็คเกจหน่วยความจำขนาดใหญ่และไม่แน่ใจว่าพวกเขาจะช่วยได้อย่างไร: ถ้าฉันใช้เดซี่มันจะสร้างเมทริกซ์ขนาดใหญ่ที่ไม่สามารถใส่หน่วยความจำได้

ฉันยังอ่านเกี่ยวกับการโพสต์เกี่ยวกับการสุ่มตัวอย่าง: การสุ่มตัวอย่างมีความเกี่ยวข้องในช่วงเวลาของ 'ข้อมูลขนาดใหญ่' หรือไม่

ดังนั้นในกรณีของฉันมันเกี่ยวข้องกับการใช้การสุ่มตัวอย่างในชุดข้อมูลคลัสเตอร์ในตัวอย่างแล้วอนุมานโครงสร้างของชุดข้อมูลทั้งหมดหรือไม่

คุณช่วยแนะนำฉันหน่อยได้ไหม? ขอขอบคุณ!

เกี่ยวกับเครื่องของฉัน:

รุ่น R 3.0.0 (2013-04-03)

แพลตฟอร์ม: x86_64-w64-mingw32 / x64 (64- บิต)

ระบบปฏิบัติการ: Windows 7 64 บิต

RAM: 16.0GB


วิธีการจัดกลุ่มเดียวที่ฉันรู้ว่าเป็นข้อมูลขนาดใหญ่ (เช่นกรณีนับล้าน) และสามารถยอมรับตัวแปรระบุพร้อมกับตัวเลขเป็นคลัสเตอร์ TwoStep ที่พบใน SPSS
ttnphns

คำตอบ:


4

ตามที่คุณสังเกตเห็นวิธีการใด ๆ ที่ต้องการเมทริกซ์ระยะทางแบบเต็มจะไม่ทำงาน หน่วยความจำเป็นสิ่งหนึ่ง แต่อีกอย่างหนึ่งคือรันไทม์ การใช้งานทั่วไปของการจัดกลุ่มแบบลำดับชั้นอยู่ใน (ฉันรู้ว่าELKIมี SLINK ซึ่งเป็นอัลกอริทึมกับการจัดกลุ่มแบบลิงก์เดียว) สิ่งนี้ไม่ได้ขยายเป็นชุดข้อมูลขนาดใหญ่O(n3)O(n2)

PAM นั้นไม่ควรใช้เมทริกซ์ระยะทางที่สมบูรณ์ แต่อัลกอริทึมนั้นทราบว่ามีขนาดไม่ดีเพราะมันจำเป็นต้องคำนวณระยะทางทุกคู่ในแต่ละคลัสเตอร์ในแต่ละการวนซ้ำเพื่อหาองค์ประกอบที่สำคัญที่สุด นี่จะน้อยกว่ามากถ้าคุณมีกลุ่มจำนวนมาก แต่ก็มีราคาค่อนข้างสูง!

คุณควรมองหาวิธีการที่สามารถใช้โครงสร้างดัชนีสำหรับการเร่งความเร็วแทน ด้วยดัชนีที่ดีอัลกอริทึมการจัดกลุ่มดังกล่าวสามารถทำงานในซึ่งดีกว่ามากสำหรับชุดข้อมูลขนาดใหญ่O(nlogn)

อย่างไรก็ตามสำหรับอัลกอริทึมเหล่านี้ส่วนใหญ่คุณต้องตรวจสอบให้แน่ใจว่าฟังก์ชันระยะทางของคุณนั้นดีจริง ๆ จากนั้นคุณต้องพิจารณาวิธีในการเร่งแบบสอบถามโดยใช้ดัชนีที่เหมาะสม

โปรดทราบว่าในหลายกรณี - และนี่อาจเป็นปัญหาสำหรับ PAM - คุณสามารถเรียกใช้อัลกอริทึมในตัวอย่างก่อนจากนั้นจึงปรับแต่งในชุดข้อมูลแบบเต็มเท่านั้น หากตัวอย่างของคุณเป็นตัวแทนอัลกอริทึมเช่น k-mean และ PAM ควรให้ผลลัพธ์แบบเดียวกับชุดข้อมูลที่สมบูรณ์


จะไม่ช่วย OP ที่นี่ แต่ในกรณีที่มีคนอื่นมาด้วยที่มีหมายเลขตัวอย่าง "ระดับกลาง": ยังมี fastcluster สำหรับ R (ดูmath.stanford.edu/~muellner/fastcluster.html )
cbeleites ไม่มีความสุขกับ SX

สวัสดี Anony-Mousse คุณช่วยชี้ให้ฉันดูอัลกอริทึมที่ใช้การเร่งโครงสร้างดัชนีได้ไหม ขอบคุณมาก!

ตัวอย่างเช่น DBSCAN สามารถเร่งความเร็วได้ดีกับดัชนีที่รองรับการค้นหาช่วง epsilon อาจหมายถึงการจัดกลุ่มการเปลี่ยนแปลงด้วย เลนส์, ซึ่งยังสามารถเร่งวิธีนี้สามารถมองเห็นเป็นรุ่นที่สูงขึ้นของการเชื่อมโยงการจัดกลุ่ม (คุณสามารถเรียกมันว่า "ความหนาแน่นของลำดับชั้นการเชื่อมโยงการจัดกลุ่ม")
เลิก - anony-มูส

2

ลองใช้ฟังก์ชั่น CLARA จากแพ็คเกจคลัสเตอร์ใน R มันใช้อัลกอริทึมแบบ pam โดยการสุ่มข้อมูลของคุณใหม่ (ตรวจสอบให้แน่ใจว่าคุณระบุขนาดตัวอย่างที่เหมาะสมสำหรับข้อมูลของคุณเพราะค่าเริ่มต้นนั้นเล็กเกินไป) มันทำงานได้ดีโดยเฉพาะอย่างยิ่งถ้าสื่อกลางในข้อมูลของคุณสามารถแสดงโดยตัวอย่างเล็ก ๆ ของข้อมูลทั้งหมด (เช่น - มีกลุ่มค่อนข้างน้อยในชุดข้อมูล) วิธีนี้คุณสามารถจัดกลุ่มอย่างมีประสิทธิภาพด้วยตัวอย่างสุ่มขนาดเล็กและเพิ่มคะแนนให้กับโซลูชันการทำคลัสเตอร์ที่คำนวณล่วงหน้า

http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/CLARA


สวัสดี zzk ขอบคุณสำหรับการตอบกลับ ฉันเคยอ่านเกี่ยวกับคลาร่ามาก่อน แต่ดูเหมือนว่าจะให้ยูคลิดและเมตริกแมนฮัตตันเท่านั้น ปัญหาหลักคือชุดข้อมูลของฉันมีทั้งตัวเลขและตัวแปร ดังนั้นการใช้ทั้งตัวชี้วัดสำหรับการวัดระยะทางจึงไม่เหมาะสม

อาใช่แล้วปัจจุบันเป็นข้อ จำกัด สำหรับฉันเช่นกัน ฉันเชื่อว่าวิธีการนั้นสามารถทำได้จริงในระยะทางใดก็ได้ แต่ฉันไม่ได้สนใจที่จะดูซอร์สโค้ด แต่ยังเพื่อดูว่ามันสามารถเปลี่ยนแปลงได้หรือไม่
zzk

0

นอกจากนี้คุณยังสามารถใช้การวิเคราะห์การติดต่อหลายรายการกับตัวแปรเชิงคุณภาพของคุณและทำการแปลงเป็นตัวแปรที่เป็นตัวเลข


2
ดูเหมือนว่าเป็นความคิดที่ดี แต่อาจเบาบางเล็กน้อย คุณช่วยอธิบายเรื่องนี้หน่อยได้ไหมว่าทำไมมันถึงช่วยได้?
gung - Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.