มีห้องสมุดคณิตศาสตร์ / สถิติที่ดีสำหรับ Scala หรือไม่? [ปิด]


89

ฉันกำลังมองหาไลบรารีโอเพนซอร์สที่ดีสำหรับ scala สำหรับคณิตศาสตร์และสถิติ หวังว่าจะเป็นเช่น Apache Math หรือ Colt แต่นำไปใช้ใน Scala

ใครช่วยชี้ทิศทางที่ถูกต้องให้ฉันได้ไหม


4
อาจช่วยอธิบายได้ว่าทำไมคุณถึงใช้ไลบรารีใน Scala แทนที่จะเป็นห้องสมุดที่ใช้งานได้จาก Scala เท่านั้น
retronym

อันที่จริงฉันเริ่มใช้commons.apache.org/proper/commons-mathและใช้งานง่ายและทำงานได้ดีใน Scala
tom10271

คำตอบ:


148

ใช่มีบางส่วน:

สเกลาแล็บ

โครงการ ScalaLab มีวัตถุประสงค์เพื่อจัดเตรียมสภาพแวดล้อมการเขียนโปรแกรมทางวิทยาศาสตร์ที่มีประสิทธิภาพสำหรับ Java Virtual Machine ภาษาสคริปต์ใช้ภาษาโปรแกรม Scala ที่ปรับปรุงด้วยตัวดำเนินการทางวิทยาศาสตร์ระดับสูงและด้วยสภาพแวดล้อมแบบบูรณาการที่ให้รูปแบบการทำงานเหมือน Matlab

โค้ดสคริปต์นั้นเร็วมากใกล้เคียงกับ Java (บางครั้งช้ากว่าเร็วกว่าบางครั้ง) และมักจะเร็วกว่าจากสคริปต์ Matlab .m ที่เทียบเท่า!

ตอนนี้ Scalalaถูกแทนที่โดย Breeze

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

Factorie

FACTORIE เป็นชุดเครื่องมือสำหรับการสร้างแบบจำลองความน่าจะเป็นที่นำไปใช้งานได้ซึ่งนำไปใช้เป็นไลบรารีซอฟต์แวร์ใน Scala ให้ผู้ใช้ด้วยภาษาที่กระชับสำหรับการสร้างกราฟปัจจัยเชิงสัมพันธ์การประมาณค่าพารามิเตอร์และการอนุมาน

Cassovary

โดย twitter สำหรับการประมวลผลกราฟ:

Cassovary ได้รับการออกแบบมาตั้งแต่ต้นจนจบเพื่อจัดการกับกราฟที่มีขอบหลายพันล้านได้อย่างมีประสิทธิภาพ มันมาพร้อมกับโครงสร้างข้อมูลโหนดและกราฟทั่วไปและอัลกอริธึมการข้ามผ่าน การใช้งานโดยทั่วไปคือการขุดและวิเคราะห์กราฟขนาดใหญ่

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

Algebird

ห้องสมุดพีชคณิตนามธรรมจาก twitter:

รหัสมีเป้าหมายที่การสร้างระบบการรวม (ผ่าน Scalding หรือ Storm) เดิมได้รับการพัฒนาโดยเป็นส่วนหนึ่งของ Matrix API ของ Scalding โดยที่ Matrices มีค่าซึ่งเป็นองค์ประกอบของ Monoids, Groups หรือ Rings ต่อจากนั้นเป็นที่ชัดเจนว่าโค้ดดังกล่าวมีแอปพลิเคชันที่กว้างขึ้นภายใน Scalding และในโครงการอื่น ๆ ภายใน Twitter

scala_prob

! มีสถานะทดลอง!

sb_probdsl นำเสนอการสนับสนุนการเขียนโปรแกรมความน่าจะเป็นแบบไม่ต่อเนื่องอย่างง่ายโดยใช้การสนับสนุนการต่อเนื่องแบบคั่นใหม่ของสกาล่า

Malakov

ห้องสมุด Markov Chain สำหรับ Scala

Markov Chains เป็นตัวแทนของกระบวนการสุ่มโดยที่การแจกแจงความน่าจะเป็นของขั้นตอนถัดไปขึ้นอยู่กับขั้นตอนปัจจุบัน แต่ไม่ได้ขึ้นอยู่กับขั้นตอนก่อนหน้า ให้ข้อมูลการฝึกอบรมห้องสมุดนี้และจะสร้างข้อมูลสุ่มใหม่ที่มีลักษณะทางสถิติ

รวบรวมสัญญาณ

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

Grizzled คณิตศาสตร์

รวมถึงแพ็คเกจสถิติและยูทิลิตี้ ประกอบด้วยสิ่งที่เป็นพื้นฐานและเป็นที่รู้จักกันดีเช่นหมายถึงมาตรฐาน ...

ความน่าจะเป็น Monad:

แม้ว่าจะไม่ใช่ห้องสมุด แต่ก็สามารถช่วยคุณได้มากในการจัดการกับความน่าจะเป็น


4
คุณสามารถดูการเปรียบเทียบประสิทธิภาพของ Scalala และ Scalalab vs Python ได้ที่นี่
om-nom-nom

15
นอกจากนี้ยังมีSaddle : Saddle เป็นไลบรารีการจัดการข้อมูลสำหรับ Scala ที่จัดเตรียมโครงสร้างข้อมูลแบบอาร์เรย์ที่ได้รับการจัดทำดัชนีหนึ่งและสองมิติซึ่งมีความเชี่ยวชาญอย่างรอบคอบใน JVM primitives เพื่อหลีกเลี่ยงค่าใช้จ่ายในการชกมวยและการแกะกล่อง
om-nom-nom

3
om-nom-nom คุณควรยก Saddle เป็นคำตอบ +1
metasim

1
@SimeonFitch ฉันกำลังรอเวลาว่างเพื่อดูอานอย่างใกล้ชิดและอาจจะเขียนบางอย่างที่มากกว่าข้อความที่ตัดตอนมาข้างต้น
om-nom-nom

1
@ om-nom-nom: ลิงก์ของคุณใช้ไม่ได้อีกต่อไป
Pravesh Jain

9

Figaro เป็นไลบรารี Scala สำหรับ Probabilistic Programming คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Figaro ได้ที่นี่ข้อมูลอ้างอิงของ Figaro

Figaro สามารถดาวน์โหลดได้จากFigaro Github

ผู้เขียนห้องสมุดนี้กำลังเขียนหนังสือเรื่อง Probabilistic Programming โดยใช้ Figaro นี่คือลิงค์ไปยังหน้าหนังสือ: Probabilistic Programming Book


1

ยอดแหลม

Spire เป็นไลบรารีตัวเลขสำหรับ Scala ซึ่งมีไว้เพื่อใช้งานทั่วไปรวดเร็วและแม่นยำ

การใช้คุณสมบัติต่างๆเช่นความเชี่ยวชาญมาโครคลาสประเภทและความหมาย Spire ทำงานอย่างหนักเพื่อต่อต้านภูมิปัญญาดั้งเดิมเกี่ยวกับประสิทธิภาพและการแลกเปลี่ยนที่แม่นยำ เป้าหมายหลักคือเพื่อให้นักพัฒนาสามารถเขียนโค้ดตัวเลขที่มีประสิทธิภาพโดยไม่ต้อง "อบ" ในการแสดงตัวเลขโดยเฉพาะ ในกรณีส่วนใหญ่การใช้งานทั่วไปโดยใช้คลาสชนิดพิเศษของ Spire จะดำเนินการเหมือนกับการใช้งานโดยตรงที่เกี่ยวข้อง

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