โครงการวิทยาศาสตร์ข้อมูลโอเพ่นซอร์สที่จะสนับสนุน


15

การมีส่วนร่วมในโครงการโอเพ่นซอร์สนั้นเป็นวิธีที่ดีในการฝึกหัดสำหรับมือใหม่และลองใช้พื้นที่ใหม่สำหรับนักวิทยาศาสตร์และนักวิเคราะห์ข้อมูลที่มีประสบการณ์

คุณมีส่วนร่วมในโครงการใด โปรดระบุลิงก์แนะนำ + บางส่วนใน Github


2
ลองใช้ ELKI (บน github, Java ดู Wikipedia) ฉันใช้สิ่งนี้มากเพราะเป็นโครงการที่สมบูรณ์แบบที่สุดสำหรับการตรวจจับกลุ่มและความผิดปกติ และมักจะเร็วกว่า R เช่นกัน
แล้ว - Anony-Mousse

คำตอบ:


15

โครงการจูเลียเป็นหนึ่งซึ่งผมแข็งขันนำไปสู่การรวมทั้งการประมวลผลขั้นสูงและห้องสมุด XGBoost ดังนั้นฉันสามารถรับรองสำหรับการบำรุงรักษาและคุณภาพของชุมชน

โครงการวิทยาศาสตร์ข้อมูลโอเพ่นซอร์สที่ดีจริงๆซึ่งแม้แต่ผู้เริ่มต้นสามารถมีส่วนร่วมก็คือ:

  • Sklearn : การพัฒนาอย่างรวดเร็วเสมอชุมชน sklearn จะเปิดให้นักพัฒนาใหม่และผู้มีส่วนร่วมเสมอ
  • H2O : H2O เป็นอีกหนึ่งโครงการวิทยาศาสตร์ข้อมูลที่กำลังเติบโตอย่างรวดเร็วโดยทำงานเกี่ยวกับการเรียนรู้ของเครื่องที่ปรับขนาดได้และโซลูชั่นการเรียนรู้ลึก
  • ไป : แผนที่และแหล่งข้อมูลวิทยาศาสตร์ข้อมูลโอเพ่นซอร์ส ไม่ใช่โครงการด้านเทคนิคจริงๆ แต่มีประโยชน์มากสำหรับผู้เริ่มต้นและนักวิเคราะห์ที่ต้องการ
  • Pylearn2 : อีกหนึ่งโครงการการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึกที่เติบโตอย่างรวดเร็ว
  • Vowpal Wabbit : โครงการ Vowpal Wabbit (VW) เป็นระบบการเรียนรู้นอกหลักที่รวดเร็วซึ่งสนับสนุนโดย Microsoft Research และ (ก่อนหน้านี้) Yahoo! การวิจัย.

นี่คือการอภิปราย Quoraในโครงการดังกล่าวและบางส่วนที่ไม่ได้กล่าวถึงในคำตอบนี้

นี่คือการสนทนาที่ดีอีกอย่างเกี่ยวกับโอเพ่นซอร์ส Data Data และ ML ใน Python


2
ฉันยืนยัน - มันง่ายมากที่จะผูกมัดกับ sklearn เพียงแค่เปิดคำขอดึงและนั่นคือมัน
Alexey Grigorev

Pylearn2 ไม่ทำงานอีกต่อไป Keras, lasagne และ blocks เป็นตัวเลือกที่ดีกว่าสำหรับการบริจาค
SHASHANK GUPTA

6

มีให้เลือกมากมาย ฉันไม่ทราบว่าฉันได้รับอนุญาตให้ทำสิ่งนี้หรือไม่ (โปรดแจ้งให้เราทราบหากมันผิด) แต่ฉันพัฒนาขึ้นมาหนึ่งปีแล้วและมันก็มีอยู่มากกว่า 2 ปีแล้วบนศูนย์กลาง git โครงการที่เรียกว่า rapaio อยู่บนศูนย์กลางการคอมไพล์ที่นี่และเมื่อเร็ว ๆ นี้ผมเริ่มที่จะเขียนคู่มือสำหรับมัน (บางส่วนของเพื่อนของฉันถามฉันเกี่ยวกับที่) คู่มือสามารถพบได้ที่นี่

เหมาะกับความต้องการของคุณหากคุณยินดีที่จะพัฒนาใน Java 8 หากคุณต้องการทำเครื่องมือด้วยตัวเองและหากคุณต้องการทดลองใช้ มีเพียงสองหลักการเท่านั้นที่ฉันบังคับใช้ คนแรกคือการเขียนบางสิ่งบางอย่างก็ต่อเมื่อคุณต้องการมัน นั่นเป็นเพราะฉันเชื่อมั่นอย่างยิ่งว่าเมื่อคุณต้องการเครื่องมือที่คุณรู้ว่าสิ่งที่คุณต้องการจากมันในแง่ของการส่งออกประสิทธิภาพการทำงานข้อมูล หลักการที่สองคือคุณขึ้นอยู่เฉพาะใน JDK ถ้าคุณต้องการสิ่งที่คุณจะเขียนมัน ฉันยอมรับว่าฉันแก่แล้ว แต่คุณสามารถปรับแต่งฟีเจอร์ใด ๆ เพื่อจุดประสงค์ของคุณในลักษณะนี้

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


2
+1 ฉันคิดว่ามันเป็นโครงการที่ยอดเยี่ยมสำหรับใครบางคนที่มีส่วนร่วม ขอบคุณสำหรับการแชร์. อย่างน้อยฉันไม่คิดว่ามันจะไม่เกี่ยวข้อง :)
Dawny33

1
คุณได้พิจารณาเข้าร่วมความพยายามของคุณกับหนึ่งในโครงการที่คล้ายกันอื่น ๆ อีกมากมายหรือไม่ พูดว่า ELKI, Weka, JSAT, Smile, Hubminer, ... คุณเปรียบเทียบแล้วหรือยัง? จากรูปลักษณ์ที่รวดเร็วฉันเห็นโครงสร้างบางอย่างที่ดูแพงมากสำหรับฉัน (แม้ว่าอาจจะไม่แย่เท่า R)
มีทางออก - Anony-Mousse

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

1
ELKI คือ AGPL-3 มันไม่ได้กระจาย แต่มีการเพิ่มประสิทธิภาพระดับต่ำบางอย่างสำหรับประสิทธิภาพ "ท้องถิ่น" สูง (ยังไม่มี Java 8) JSAT, Smile, Hubminer - ทั้งหมดเป็นโอเพนซอร์ซอาจเป็นอาปาเช่ส่วนใหญ่ไม่แจกจ่ายและไม่ได้รับการปรับให้เหมาะสมที่สุดหากฉันไม่เข้าใจผิด (ฉันใช้ ELKI เป็นส่วนใหญ่)
มี QUIT - Anony-Mousse

4

ตรวจสอบโครงการนี้บน GitHub: https://github.com/josephmisiti/awesome-machine-learning มันมีรายการที่ครอบคลุมของโครงการโอเพนซอร์สที่จัดกลุ่มตามภาษาที่มีคำอธิบายสั้น ๆ ฉันคิดว่าคุณสามารถพบบางอย่างที่ตรงกับความต้องการของคุณ


4

ELKI (บนGitHub ) เป็นโครงการขุดข้อมูลและวิทยาศาสตร์ข้อมูล มันมีเอกลักษณ์เฉพาะด้วยสถาปัตยกรรมแบบแยกส่วน: คุณสามารถรวมอัลกอริธึม, ฟังก์ชั่นระยะทางและดัชนีสำหรับการเร่งความเร็วด้วยข้อ จำกัด น้อยมาก (แน่นอนอัลกอริทึมที่ไม่ได้ใช้ระยะทางไม่สามารถใช้ร่วมกับระยะทาง) ไม่ใช่รหัสที่ง่ายที่สุดเนื่องจากประสิทธิภาพ สำหรับการขุดข้อมูลคุณจำเป็นต้องระมัดระวังเกี่ยวกับหน่วยความจำ - การใช้ArrayList<Integer>เป็นสิ่งที่ไม่ต้องทำหากคุณต้องการความยืดหยุ่น

เนื่องจากสถาปัตยกรรมแบบโมดูลจึงง่ายต่อการสนับสนุนโมดูลขนาดเล็กเช่นฟังก์ชันระยะทางเดียวหรืออัลกอริทึม

เราเก็บรายการของ แนวคิดการทำเหมืองข้อมูลโดยจัดกลุ่มตามความยากลำบาก โครงการส่วนใหญ่เป็นการใช้งานชุดตัวเลือกบางตัว ELKI มีจุดประสงค์เพื่อให้การศึกษาเปรียบเทียบอัลกอริทึมดังนั้นเราจึงพยายามอนุญาตการรวมกันใด ๆ และครอบคลุมถึงอัลกอริธึมที่หลากหลาย ตัวอย่างเช่นด้วย k-mean เราไม่เพียง แต่มีอัลกอริทึม Lloyds เท่านั้น แต่ยังมีอีก 10 รูปแบบของธีม k-mean ทั่วไป มีบทความมากกว่า 220 รายการ (อย่างน้อยบางส่วน) นำไปใช้ใหม่ใน ELKI

การใช้ทุกอย่างในเครื่องมือเดียวกันทำให้เราได้ผลลัพธ์ที่เปรียบเทียบได้มากขึ้น หากคุณใช้ R เพื่อการเปรียบเทียบคุณมักจะเปรียบเทียบแอปเปิ้ลและส้ม k-mean ใน R นั้นแท้จริงแล้วเป็นโปรแกรม Fortran รุ่นเก่าและรวดเร็วมาก k-mean ใน R แต่ในแพ็คเกจ "flexclust" ช้ากว่า 100 เท่าเพราะเขียนด้วยรหัส R จริง ดังนั้นอย่าเชื่อเกณฑ์มาตรฐานใน R ... ด้วยโมดูล R มักจะไม่เข้ากันดังนั้นคุณมักจะไม่สามารถใช้ระยะทาง A จากโมดูล A กับอัลกอริทึม B จากโมดูล B ใน ELKI เราพยายามแบ่งปันรหัสมากที่สุด ความเป็นไปได้ในการติดตั้งใช้งานเพื่อลดสิ่งประดิษฐ์ (แน่นอนว่ามันจะไม่มีทางเป็นไปได้ที่จะมีเกณฑ์มาตรฐานที่เป็นธรรม 100% - มีพื้นที่สำหรับเพิ่มประสิทธิภาพเสมอ) แต่ยังอนุญาตให้รวมโมดูลได้อย่างง่ายดาย

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

ฉันชอบที่จะเห็น UI ที่ดีกว่าสำหรับ ELKIแต่นั่นก็เป็นความพยายามครั้งสำคัญ


4

หากชอบเครื่องมือการเขียนโปรแกรมภาพข้ามแพลตฟอร์มสีส้มเป็นตัวเลือก เมื่อเร็ว ๆ นี้ย้ายไปยัง Python 3 พวกเขายังไม่ได้ย้ายวิดเจ็ตทั้งหมด มันนำกอง PyData (NumPy, SciPy, SciKit เรียนรู้ ... ) เพื่อหลาม 3 PyQt, PyQtGraph และมันของจีพีบน GitHub

หน้าจอสีส้ม

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